Comic hosting site using Python, Django, Docker, and PostgreSQL featuring user registration, user authentication, search, image uploads, and admin panel.
A small functional comic hosting application built using Django. Users can create an account and depending on permissions may be restricted from viewing specific pages. Comics can be searched by name or author, and also receive reviews. Obviously, comics can have many chapters, and every chapter will have pages, which are displayed stacked on top of one another when reading. When reading the previous and next button will be active only if they exist.
- Python 3.9+
- Django 4.0.10
- PostgreSQL 13
- Docker 24.0.6
- Deployed via Heroku
Some things to note about the deployment, apparently Heroku's heroku-postgresql:hobby-dev is no more :( , so obviously after these screenshots below I'll probably shut it down.
Another interesting problem I came across was the fact that despite static files working with the use of WhiteNoise, since heroku's dyno sleep after 30 minutes and does not preserve user uploaded media between dynos restart, I couldn't serve the images from the Comic and Pages model. I could've just used Amazon S3 service to serve the files, but I decided to be lazy and serve static files dynamically for my demo. This was easy since the example pages I have were just the chapter number, so stripping the full image.url to just the filename and dynamically putting it through the template did the job just fine.