About Mycoll
overview
MyColl is a web app for cataloging your media collection. With MyColl you can search The Movie Database API to effortlessly add movies to your collection, then record any copies you may own along with their format and platform details. Now you'll know if your copy of Michael Chrichton's 1998 aquatic-horror thriller, Sphere, is a DVD sitting at home on your shelf, a VOD on a service like Amazon's Prime Video, or both!
GitHub Repos:
https://github.com/mycoll-org/
Tools: django
, pipenv
,
nginx
, docker-compose
, node
,
react
, postgresql
, gunicorn
,
certbot
, sass
Services: DigitalOcean Droplets, Google Domains
documentation
apis and models
Production API: Postman
Development API: Postman
Entity Relationship Diagram: Lucidchart
fullstack diagram
This diagram represents the first deployed version of MyColl. It was later moved over to the skybur.io domain and droplet at mycoll.skybur.io and db.mycoll.skybur.io. The overall structure with Nginx enforcing HTTPS and serving both ends remained the same. The project server is no longer running.
challenges and successes
Deploying frontend and backend services on a DigitalOcean Droplet running Ubuntu 18.04 |
Managing a custom domain from Google Domains and utilizing Let's Encrypt's Certbot to obtain SSL certificates |
Configuring Nginx to serve both the frontend and backend services from the same host, and enforcing HTTPS on incoming requests |
Creating a Gunicorn socket to bind to the backend server so Nginx can proxy pass to Gunicorn for database requests |
Building a backend API server in Django that handles authorization and requests for media data using an integration with The Movie Database |
Composing a responsive web design using React components without an external styling library or framework |
Implementing authorization with JSON web tokens being passed between a React frontend and Django backend |