Cloud Native App For Creating Countdowns
July 10, 2025

A simple cloud-native app that implements the key Kubernetes (K8s) concepts. Everything can be deployed via a Helm chart. The app allows users to create and remove countdowns for events. Once an event is less than 24 hours away, a notification is sent via email using the fake SMTP service Mailhog.
Architecture
- Deployment 1: HTML and JS for the UI, Python and FastAPI for the API
- Deployment 2: Fake SMTP (Mailhog) and inbox for testing emails
- Service: NodePort for accessing the website via browser
- StatefulSet, Volume: Persistent database (Postgres)
- CronJob: Checks every 5 minutes if an event is < 24h away and sends a notification email (Notifier)
- RBAC: ServiceAccount, Role, RoleBinding for the Notifier
- ConfigMap (nginx-conf), Secret (db-secret): HTTP routing and DB password
- LimitRange, ResourceQuota: CPU and memory limits, as well as namespace budget
Container Registry
After testing in the development environment, I pushed the images for the UI, Notifier, and API to the GitLab Container Registry of our repository from university to be able to deploy the app to production.
Example for pushing the UI image to the registry:
docker buildx build --platform linux/amd64 -t $REG/countdown-ui:$TAG ./src/ui --push
Demo Videos
Countdown Board Demo
Pods, jobs and more
Mail notification logs
API logs
Database logs