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.
- 01React frontend
- 02Gin API
- 03MongoDB
- 04Container stack
- 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.