About

I didn’t really like the idea of using a WhatsApp group for organising weekly badminton sessions. Why not make a dedicated web app just for that? So, Jonathan built the frontend, and I the backend.

My friends and I now use this web app to manage every badminton session’s details, its attendees and proof of payments. It makes it really easy for admins to keep track of everything all through the web app.

You might have noticed that I’ve deployed it onto a Kubernetes cluster and think that it’s overkill. You’d be absolutely right about that. That being said, I’m genuinely interested in everything DevOps, so why not?

Source Code

As usual, in FOSS spirit, all source code and full documentation is available on the GitHub repo should you want to host it for yourself or verify the code for security vulnerabilities.

Developer Highlights

  • GitOps Workflow
  • Kubernetes HA Deployment
  • Automated staging and production Deployments
  • Bastion-host restricted staging environment
  • Automated setup and configuration with Terraform and Ansible code
  • Hybrid Cloud architecture

User Features

  • Passwordless authentication
  • Badminton session creation and participation
  • Custom groups (rooms)
  • Payment receipt upload and retrieval
  • Admin tooling

Tech Stack

Infrastructure Continuous Integration Container Orchestration Backend Frontend

System Design and Cloud Architecture

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

cloud-architecture

Achievements

  • Architected GitOps hybrid-cloud deployments; automated staging and prod environments; system health notifiers
  • Engineered secure GitHub Actions CI + GitOps ArgoCD pipelines; code quality, tests and automated deployments
  • Developed robust Kubernetes manifests for containerised deployments
  • Configured automated Cloudflare DNS records to cloud resources with Terraform and Ansible
  • Integrated Google login to the onboarding flow for passwordless JWT authentication and to decrease user friction
  • Ensured security of cloud resources; proper AWS IAM usage, hashed secrets, principle of least privilege
  • Liaised with stakeholders to implement feature requests