Skip to content

Makeystreet/django-dev-hiring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

#Assignment This is a sample exercise which is similar to the kind of work you would be doing as an Intern at Makeystreet.

Technologies: Python, Django, REST APIs, GitHub.

Objective: Integrate GitHub with a Django application via the GitHub REST API.

Environment setup:

  1. Setup an empty Django project on Heroku (its free)
  2. Register an oAuth application from your Github account
  3. Create a dummy repository on your Github profile for this assignment - We’ll get to what you should do with this later.
  4. Clone this repo and use it for versioning your work. Don't push it back to GitHub. - From here on, commit, version and push everything you do to this repo. Atleast one commit for each specification mentioned below.
  5. Use Django 1.5.9, PostgreSQL 9.2.7 and Django ORM for db access.
  6. Alright. You're good to go! Now implement the following specs.

Specifications - Start with the first and progress downwards

  1. I should be able to register as a user and then login to the application. Use the standard Django auth models for user management. Keep it simple - name, username, password.
  2. After logging in, I should see a Link GitHub account button. On clicking this, I should be asked to authorize your app (remember the one you created in Step 2 of setup) to access my Github account.
  3. Persist my oAuth credentials in the db.
  4. After I authorize, I should be provided with a list of my public repositories on Github and given an option to select one.
  5. Store this selection in the db.
  6. When I select one, set up web hooks on that repository that will relay any events on the repository, specifically, pull request merged and code pushed to an URL endpoint on the Django app.
  7. Create this URL endpoint that accepts the web hooks from my repo and store the event payload in the db.
  8. Show me a list of all the web hooks events received from my repo in another page.
  9. Test this out with the dummy repository created in Setup step 3.
  10. Send us the link to your Heroku app.
  11. Almost done! There is another branch on this repo called merge-me. Pull, resolve conflict and merge into master.

Extra

You are free to integrate directly with the API or use one of the suggested python wrappers. There are 10 suggested libraries as of this moment. Tell us why you chose the one you did.

Reminder: Please do not push your work into any public repositories till we tell you to.

Good luck!

About

Take home assignment for hiring entry level Django devs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published