Designing a Coherent DevOps Pipeline for a Full-Stack Web Application: A TinyLink Case Study - #3009
Open
sangeetha-murugesan-sda9 wants to merge 2 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Assignment Proposal
Title
Designing a Coherent DevOps Pipeline for a Full-Stack Web Application: A TinyLink Case Study
Names and KTH ID
Deadline
Category
Description
We will build TinyLink, a small full-stack URL shortening service a Node.js/Express backend exposing a REST API to create and resolve short links, a React frontend providing a minimal UI over that API, and PostgreSQL for storage and wrap it in a complete, coherent DevOps pipeline. The frontend and backend are packaged into a single Docker image via a multi-stage build, so one container is the unit that moves through the entire pipeline. The pipeline will include:
Build and test (CI): a GitHub Actions workflow that lints the code, runs the test suite against a real PostgreSQL service container, submits the code to a SonarCloud quality gate, and verifies the Docker image builds all gating the merge into main.
Deployment (CD): a GitHub Actions workflow triggered on merge to main that builds the final Docker image, pushes it to GitHub Container Registry, applies the Terraform configuration for the application infrastructure, and runs a smoke test against the newly deployed endpoint.
Infrastructure as code: a Terraform stack provisioning the application infrastructure a Render web service, a Neon PostgreSQL database, and GitHub Container Registry re-applied on every deployment.Quality and security automation: SonarCloud paired with Renovate, with every Renovate PR routed back through the same CI gate as a human-authored change.
AI-assisted tools: documented in the final report
Relevance
This project demonstrates a complete, working DevOps pipeline built around a single Docker image: the same artifact is linted, tested, scanned, and deployed, so what CI validates is exactly what runs live. Continuous integration and continuous deployment run as two GitHub Actions workflows, Terraform provisions the application infrastructure as code, and SonarCloud and Renovate together provide the project's quality and security automation. Every design decision, along with the project's limitations, is explained and justified in the final report.