This series will be a deep dive into a Django project I developed and the thought process behind each step.
Background
I don’t have a traditional Computer Science background. I never went to school for it. I am a Mechanical Engineer who has taken an interest in Python and specifically enjoy building things in Django. In the summer of 2020, the deepest part of the COVID pandemic, I came up with an idea that I could create in Django. I wanted to create a tool to collect my deepest thoughts and worries that I didn’t want to share with anyone right now, but I do want to after I’m no longer around. So, I started development on my project I named Time Capsule Journal.
Time Capsule Journal was a web based, rich text editor, that would allow a user to create journal entries. Those entries could either be marked for public release or tied to a contact. The user could create contacts which would be a name and an email or phone number. The user would have to visit the site every so often to “check-in”. If the person failed to check in after the required number of days (configured in the user’s settings) then his journal entries would be released. Once released, the contacts would be notified they have journal entries from the user that they could read. Contacts could only read entries they were tied to and any entries that were marked as “public release”. This explains the basic concepts of the application, but there are many nuances that I will explain below or other parts, for instance:
- Failsafe for accidental, unwanted release
- Subscription based pricing model
- Contact notification and user reminder email templates
- Django testing using “coverage”
- Initial project setup using cookiecutter-django
