Skip to content

Comic hosting website made using Python, Django, PostgreSQL, Docker, and deployed on Heroku

Notifications You must be signed in to change notification settings

tu-nguyen/django-comichost

Repository files navigation

django-comichost

Comic hosting site using Python, Django, Docker, and PostgreSQL featuring user registration, user authentication, search, image uploads, and admin panel.

Table of Contents

  1. About
  2. Tools
  3. Note
  4. Screenshots
  5. Links

About

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.

Tools

  1. Python 3.9+
  2. Django 4.0.10
  3. PostgreSQL 13
  4. Docker 24.0.6
  5. Deployed via Heroku

Note

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.

Screenshots

About

Comic hosting website made using Python, Django, PostgreSQL, Docker, and deployed on Heroku

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published