About

This project, largely based on PCPartPicker , is a rather simple webapp that lets users save and share parts lists for custom PCs.

An important thing to note about this project is that the webapp is not the focus of this project. Instead, I am more interested in how the DevOps Engineering and Server Adminstration side of things tie in with this webapp. DevOps aspects like CI/CD pipelines, Monitoring and Observability and general Cloud Engineering are what I’m passionate about so this webapp merely serves as a guinea pig for such DevOps processes.

With that being said, I did put in effort into creating the webapp as best I find programming in general quite gratifying. While frontend web development isn’t my preference at all, it was a rather pleasant experience working with SvelteKit and was one of the primary reasons why it was chosen over other popular frameworks like React or Vue.

Source Code

Read the official full-fat documentation in the GitHub repository .

Tech Stack

Infrastructure DevOps Backend Frontend

Note: The PCPartsTool project consists of multiple repositories. Here are all the related repositories:

Repository Description
PCPartsTool The SvelteKit MongoDB WebApp
PCPartsTool-Scraper Scraping Script to Gather E-commerce Item Data
terraform-infra Terraform IaC for PCPartsTool Cloud Infrastructure
ansible-ec2 Ansible CaC for AWS EC2 Bootstraping, Observability and Maintenance

System Design and Cloud Architecture

Here’s an overview of the implemented system design and cloud architecture for the project:

cloud-architecture

Findings

Seeing as this project also served as my degree’s final year project, I had to make an accompanying report for my findings. I do not plan to publish said report, but in case you are someone who has seen my resume, you might be wondering how I got the claimed numbers for the reduced deployment times due to the use of Ansible, Terraform or Jenkins. Hence, here’s the data for that:

terraform ansible jenkins playwright

Achievements

  • Architected and designed full stack cloud web app
  • Leveraged IaC and CaC to programmatically set up and tear down one-click cloud infrastructure deployments with full observability and monitoring across multiple platforms
  • Engineered CI/CD pipelines with GitHub Webhooks integration to automatically run Docker builds, E2E tests and deployment onto servers
  • Designed and implemented a SvelteKit MongoDB CRUD WebApp with Tailwind CSS
  • Composed and formatted precise and informative documentation to aid understanding and deployment process of the project, providing explanations of our DevOps practices