Skip to content

[Project Proposal] Matjakt: A Reproducible DevOps Pipeline with Terraform - #3147

Merged
ericcornelissen merged 1 commit into
KTH:2026from
einhar1:project
Oct 8, 2026
Merged

ericcornelissen merged 1 commit into
KTH:2026from
einhar1:project

Conversation

@einhar1

@einhar1 einhar1 commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Assignment Proposal

Title

Matjakt: A Reproducible DevOps Pipeline with Terraform

Names and KTH ID

Deadline

Task 3

Category

Project

Description

We will build an integrated DevOps workflow for Matjakt, an existing grocery price comparison application using React, TypeScript, Vite and Supabase. Originally developed as a thesis project by one team member, the application will be deployed to a separate course environment on Google Cloud Run.

The project will include:

  • CI: GitHub Actions will run ESLint, TypeScript checks, Vitest, database tests, Playwright end-to-end tests and a production build. Integration tests will use real local Supabase; external routing and map requests will be mocked.
  • Infrastructure as Code: Terraform will manage Cloud Run, Artifact Registry, APIs, IAM and OIDC identities within a separate Google Cloud project. HCP Terraform will store state, provide speculative PR plans and automatically plan/apply infrastructure changes pushed to main.
  • CD: After successful main checks, Actions will apply course migrations, package the verified build into a container and deploy a tagged revision without live traffic. Smoke tests will precede promotion of that same revision. Releases will record their commit and support frontend rollback.
  • Reproducibility: Versioned Supabase configuration, migrations, synthetic fixtures, pinned dependencies and Docker-based local development will support starting from a clean clone. Creating the hosted Supabase project will be a documented bootstrap step.
  • Quality and collaboration: GitHub pull requests and required checks, ESLint, Dependabot and dependency auditing will support change control. Google authentication will use short-lived OIDC credentials.

The course database will use a catalog-only production snapshot, excluding accounts and profiles. Local development and CI will use deterministic synthetic data. Price collection will remain outside scope.

We will document AI assistance and provide a 2–3-page report explaining architecture, verification, decisions and limitations, alongside repository instructions and pipeline evidence.

Relevance

The project will connect testing, infrastructure provisioning and deployment into one reproducible workflow. It will demonstrate CI/CD, Infrastructure as Code and recovery, including the trade-offs of managed services and a shared preview/live database.

This README outlines the project proposal for Matjakt, detailing the integrated DevOps workflow, technologies used, and project goals.
@tctev

tctev commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Hi! Me (@tctev) and Jafar are looking for a project to give feedback on for the feedback task, and we were wondering if you'd be up for it. We're pretty flexible with timing, we can meet on campus or online whenever works for you. You can answer here or email me at georgith@kth.se

@einhar1

einhar1 commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

Hi @tctev, are you avaliable tomorrow at 13 on campus?

@tctev

tctev commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Hi @tctev, are you avaliable tomorrow at 13 on campus?

I'm available from 13:00 to 14:00. As for my partner, I gotta consult with him if it's possible.

Update: He accepts the schedule. I will let you know through e-mail a more comfortable way to contact each other.

@ericcornelissen ericcornelissen self-assigned this Oct 8, 2026
@ericcornelissen
ericcornelissen merged commit f8d81ae into KTH:2026 Oct 8, 2026
13 of 18 checks passed
@einhar1
einhar1 deleted the project branch October 8, 2026 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants