Skip to content

Latest commit

 

History

History
64 lines (50 loc) · 2.27 KB

README.md

File metadata and controls

64 lines (50 loc) · 2.27 KB

Galex

Django app deployed on production:

http://protected-journey-8694.herokuapp.com/

Full Stack:

  • FrontEnd, UI: jQuery, Ajax, HTML/CSS
  • Middlewear, API: Django Rest Framework
  • Backend: PostGre (Prod), SQLite3 (Dev)

Environment:

  • Python virtualenv
  • Heroku App Deployment Cloud (versioning: requirements.txt and Running the server: Procfile)
  • Gunicorn WebServer

Model, Template, Views:

Admin Page

Rest APIs:

Exception Handling and Logging:

Non Functional Requirements:

  • Performance: File based caching of views (Article list refreshed every 10 mins and Detail every 15 mins), Template fragmented caching for sidebar
  • Scaling: Gunicorn works on multiple worker processes (eliminates GIL), Setting on Heroku dynamo is WEB_CONCURRENCY=3
  • Memory Handling: Used --max-requests 1200 on unicorn to restart a worker once 1200 requests are done
  • Async requests: Could also work with gevent (greenlets) for better handling of I/O requests
  • Throttling of Requests: UserRateThrottle for Rest APIs

Testing:

To be done

  • Security: Authentication, Authorization for Rest APIs & CSRF token
  • Template inheritance can be done & carousel to be added in What Read Next