While my homepage discusses a lot of what I got out of rebuilding my website, I would like to point out some of the reasons that prompted me to rebuild it along with a few of the new features. In addition, I came up with some ideas I might implement in the future just so I can try them out. If you're interested in seeing the code used to generate the site, please check out the "website-rebuild" repository in my GitHub account.
My previous website was a collection of static html pages. It was initially created as a project in college and was static by design so that I could simply practice html and css. I kept the website and expanded it into a blog-like format, but this came with a drawback. Namely, updating my site with a new post took a considerable amount of effort as I had to not only create the html for the new post, but I had to edit several other pages each time I did so. This was compounded by the fact that if I wanted to make changes to something like the navigation bar I had to copy and paste the change onto every single page of the site. Needless to say this rapidly snowballed into a tedious process which discouraged me from updating it further. Additionally, my then new job at NetSVS pulled enough of my attention away that I disregarded the site for quite a while.
Eventually, I came back to it and realized that I missed the opportunity to be creative that my website had given me and decided that I would like to get some of that spark back and increase my web development capabilities. I realized that in order to avoid the pitfalls of my first site, I would have to design the site to be dynamically generated from the outset. For a while I experimented with PHP, but ultimately went with Python as my server-side language of choice. I had more experience with it from my programming courses in college and I felt that its extensibility and general purpose nature would enable me to not only rebuild my website, but reinforce my actual programming skills too. I went with the Flask framework over Django because I wanted to build my site from scratch more than adapt it to work with Django. Plus Flask just seemed like it was less complicated and had less bells and whistles. This also meant I would get to learn how to setup a connection to and interact with a MySQL database directly through Python.
In addition to rebuilding my site, I ended up implementing some administrative pages needed for the site's development. This includes a post creation page, post creation confirmation page, and a generic error page. I realized that it might be beneficial to learn how to implement a login system in the future so I can limit access to the post creation page. It also occurred to me that it would be cool if I could implement a file upload page which stored files as blobs in a database so that I don't have to transfer files manually or via git. Whether I will make these changes is still up for debate, but now I at least have the ability to add posts to my site easily.