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:
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:
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