Personal Website

Ongoing

Backend-DevelopmentWeb-DevelopmentAWS

My personal website where this page is syndicated from. Surprised how simple the web development basics actually are, but Django definitely did a lot of heavy lifting here, so my next web project should really use something lighter, as I enjoyed building the logic most compared to integrating the building blocks that the framework provides. In a way it directed me into using to the correct MVT or MVP design pattern in the future if I decide to leave Django behind.

Probably my second largest project to date in pure code base size and commit count it definitely was a massive learning experience, but not in the way I though it would be since translating skills from the Qt GUI framework was much easier than anticipated. Similar design patterns made this a breeze and the bigger issue were getting used to web technologies and standards.

Luckily HTMX caught my eye which gave me easy implementation of the frontend with Bootstrap 5 without needing a lot of frontend code except a few lines CSS & JavaScript here and there in order too increase the functionality of the site.

My choice for a database is definitely bit overkill, but I wanted something more robust so I used PostgreSQL as I am excited what I can do with it with further development of the site when looking at the extensibility of the actual database with Trunk extensions. A Redis instance is also definitely not needed as much here, but I am running a Celery task queue in the background for some automation, so the message broker functionality comes in handy while providing some cache in memory.

Tools such as Terraform & Ansible enable easy management of the websites VM node which all of this hosted on with static content being served from S3 style buckets. The more experiment with these tools the more I want to integrate them in order to automate basic management tasks of the site, as so many menial tasks can be easily orchestrated with these YAML like files.

Technologies:

PythonDjangoAnsibleTerraformCeleryPostgresDockerNginxRedisBootstrapHTMXBashJavaScript