You can find the code for this website here.
The blog displays a list of my projects and adventures. You can click on posts to read them, watch videos and see images. You can subscribe and get an automatic welcome email that is sent by Flask-mail. Once you've logged in, you can create posts, upload images, send emails (including view previews and send test emails) and eventually edit/delete posts. These functions are reserved for my use only.
This explanation could get fairly involved, but I'll try to keep it simple in the following three paragraphs:
The first key is flask. Flask is a wonderful python framework that allows you to create dynamic websites. You define each of the website's routes (aka website paths such as /home or /create) to render an html page (using the GET method) and/or perform some sort of function such as add data to a database or send emails (using the POST method). You can also populate the html pages with information that is generated when you call the functions defined by these routes.
There are several packages you can install such as Flask-login, flask-mail and flask-SQLAlchemy that allow you to easily add additional functionalities beyond the basic framework.
CSS makes everything pretty. I wanted a simple minimalistic design that was focused on clean lines and a black and white color palette. This way the focus would be on the text and images. I played around a lot with floats and flex box to display the banners and top menu the way I liked. My goal was to not use bootstrap and I'm proud to say I did not.
Fun project. It took me 6 days to get this MVP model up and running. This project could go on and on and on because there's so many little features I could add, but it's time to tie a pretty little bow on it for now. Hopefully, I actually post on it.