Personal Website for Coding Projects and Web Apps


I created this personal website so I could showcase my coding projects and host some small web apps where they can be accessed by my friends and family. The website is built using various frameworks and languages, including Amazon AWS, Amazon EC2, Amazon RDS, Amazon Route 53, nginx, Flask, PostgreSQL, Bootstrap, HTMX, HTML, CSS, Python, JavaScript, and SQL.

The main objective of this project was to create a secure and private platform where I can share my coding projects and web apps with my selected audience. To ensure the security of my website, I have implemented SSL certification and different user accounts that allow access to only the pages that I approve. User registration has been disabled since this is my personal website, and I just manually create accounts for any potential users that I want to give access to.

Features:

  1. Homepage: The homepage of the website showcases a brief introduction of myself and my skills, along with the latest coding projects that I have completed or am currently working on.
  2. Blog Section: The blog section of the website allows me to post articles describing my coding projects in detail. This section is accessible to all users who visit the website.
  3. Web Apps: The website hosts small web apps that can be accessed by my friends and family. These web apps are built using Flask and PostgreSQL and are hosted on Amazon EC2.
  4. User Accounts: The website has a user account system that allows me to control who has access to certain pages and features of the website. Users can log in to their accounts to access restricted content.

Technologies Used:

The following technologies have been used to build this personal website:

  • Web Domain Registration: The website domain has been registered to ensure that it has a unique and memorable name.
  • SSL Certification: SSL certification has been implemented to ensure the security of the website.
  • Git and Git CLI: Git and Git CLI have been used for version control and for keeping the site up to date on the EC2 server.
  • Amazon AWS: Amazon AWS has been used to host the website and its various components.
  • Amazon EC2: Amazon EC2 has been used to host the web apps that are built using Flask and PostgreSQL.
  • Amazon RDS: Amazon RDS has been used to host the PostgreSQL database.
  • Amazon Route 53: Amazon Route 53 has been used to manage the DNS routing for the website.
  • Nginx: Nginx has been used as the web server for the website.
  • Flask: Flask has been used as the web framework for the web apps.
  • PostgreSQL: PostgreSQL has been used as the database management system for the web apps.
  • Bootstrap: Bootstrap has been used as the CSS framework for the website.
  • HTMX: HTMX has been used to provide dynamic updates to the website without the need for full page refreshes.
  • HTML, CSS, Python, JavaScript, SQL: These languages have been used to build the website and its various components.
Diagram of website architecture.
Network Architecture

Conclusion:

This personal website has been built with the aim of showcasing my coding skills and sharing my web apps with my friends and family. The use of various technologies and frameworks has ensured that the website is secure and efficient, while the user account system allows me to control who has access to the website's content. I am proud of this project and believe that it showcases my abilities as a software engineer.