← Portfolio

CASE STUDY 03 · Open-source project

TickBoard

A full-stack task board delivered through Docker and GitOps.

React + Gin + MongoDB task board. Dockerized services with Swagger API and optional HTTPS via Nginx.

ReactGo / GinMongoDBDockerTerraformKubernetesArgo CD

Engineering challenge

A small application becomes a useful platform exercise when its delivery path, runtime boundaries, and operational behavior are documented alongside the code. TickBoard provides a concrete full-stack workload for practicing containerization, API design, infrastructure provisioning, and GitOps delivery.

Architecture & design

  • Use a React frontend and Go / Gin API as independently deployable services.
  • Persist application data in MongoDB and expose a Swagger-documented API for inspection and integration.
  • Package the stack with Docker Compose for local development and describe the Terraform, Kubernetes, and Argo CD path for cluster delivery.
  • Place Nginx at the edge for HTTPS and route frontend, API, and database administration paths explicitly.
Application delivery path
  1. 01React frontend
  2. 02Gin API
  3. 03MongoDB
  4. 04Container stack
  5. 05Kubernetes / GitOps delivery

Implementation

  • Built task, user, registration, and authentication flows across the React and Gin services.
  • Added JWT-based authentication, Swagger documentation, health checks, and Dockerized local development.
  • Documented Terraform infrastructure, Kubernetes manifests, Kustomize overlays, and Argo CD application synchronization.
  • Recorded operational boundaries and called out development-only storage and secret handling decisions.

Validation & impact

  • The repository documents local startup, API health, Swagger, and production reverse-proxy checks.
  • The project is presented as a demonstrable application and deployment exercise; production availability and service-level outcomes are not claimed.

Limitations & next steps

  • The documented MongoDB deployment uses emptyDir for development and should be replaced with durable storage for production.
  • Secrets, image publishing, ingress, and cluster acceptance still require environment-specific configuration and verification.
  • The repository is a small project, so the portfolio value comes from the end-to-end delivery path rather than application complexity.