Skip to content

This is a backend challenge from united remote hiring process

Notifications You must be signed in to change notification settings

rakati/United-remote_Backend_challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Udacity logo

Gemography backend-coding-challenge

Nouredin Ouhaddou (rakati)

code license

Code in this repository is provided under the terms of the MIT license.

Table of Contents

About the challenge

Gemography backend-coding-challenge is about creating REST microservice that list the languages used by the 100 trending public repos on GitHub.

  • For every language, we need to calculate the attributes below 👇:
    • Number of repos using this language
    • The list of repos using the language
    • Framework popularity over the 100 repositories

App overview

This is a simple REST API that list the list the languages used by the 100 based on straightforward algorithm which is the most starred repositories created on last month, also the api provide also the trending Github developers.

Notes

  • For Framework popularity over the 100 repositories the github API doesn't provide repository framework, so I didn't do it.

Technologies used

- Flask			: lightweight WSGI web application framework
- Flask-limiter 	: for rate limiting
- Flask-swagger-ui	: for the documentation
- Flask-caching		: for caching responses

Quick Start

Requirements

- Docker
- Web browser (chrome)

Install

  1. clone the project git clone https://github.com/rakati/United-remote_Backend_challenge.git
  2. cd into project directory cd United-remote_Backend_challenge
  3. Build docker image of the API docker build -t flaskapp .
  4. Run the docker container docker run -it -d -p 8100:8100 flaskapp

Now the API is working on http://localhost:8100/

Documentation

The documenation is built with Swagger UI, A beautiful and interactive documentation check this url documentation Image of API DOCS

Entry points

Entry point description
/ get global info
/languages list all languages in 100 trending github repos
/developers list github trending developers (optional query since=['daily', 'weekly', 'monthly])
/developers/language list github trending developers by language (optional query since=['daily', 'weekly', 'monthly])

About

This is a backend challenge from united remote hiring process

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published