TaskMaster Pro is a modern, production-grade To-Do application built to showcase real-world DevOps skills. This project demonstrates a full DevOps pipeline, infrastructure-as-code, containerization, Kubernetes, monitoring, and more—perfect for your portfolio!
taskmaster-pro/
├── src/ # Frontend (Node.js, HTML, CSS, JS)
│ ├── static/ # Static assets (css, js)
│ └── templates/ # HTML templates
├── backend/ # FastAPI backend (Python)
├── infrastructure/ # Terraform configs (infra-as-code)
├── kubernetes/ # Helm chart & K8s manifests
│ ├── taskmaster/ # Backend, DB, Redis
│ └── taskmaster-frontend/ # Frontend Helm chart
├── ci-cd/ # Jenkins pipeline configs/scripts
├── monitoring/ # Prometheus, Grafana setup
├── docs/ # Daily docs & screenshots
│ ├── day1.md ... day6.md
│ └── screenshots/
└── README.md
- 📖 Daily logs: See
docs/day1.md...docs/day6.mdfor step-by-step progress, learnings, and DevOps best practices. - 🖼️ Screenshots: Visual progress in
docs/screenshots/(cluster setup, health checks, dashboards, etc.).
- Backend: FastAPI (Python)
- Frontend: Node.js, HTML, CSS, JS (Dockerized)
- Database: PostgreSQL (Helm subchart)
- Cache: Redis (Helm subchart)
- Containerization: Docker, Docker Compose
- Orchestration: Kubernetes (kind), Helm
- Infrastructure: Terraform
- Monitoring: Prometheus, Grafana
- CI/CD: Jenkins (see
ci-cd/for pipeline scripts)
- Docker & Docker Compose
- Python 3.8+
- Node.js 14+
- Git
- WSL2 (recommended for Windows)
- kind (Kubernetes in Docker)
- Helm
- Clone the repo:
git clone https://github.com/YOUR_USERNAME/taskmaster-pro.git cd taskmaster-pro - Backend setup:
cd backend python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate pip install -r requirements.txt uvicorn main:app --reload
- Frontend setup:
cd ../src # (If needed: npm install) node server.js
- Run with Docker Compose:
docker-compose up --build
- Backend Helm chart:
kubernetes/taskmaster/ - Frontend Helm chart:
kubernetes/taskmaster-frontend/ - Deploy backend:
helm install taskmaster ./kubernetes/taskmaster -n taskmaster --create-namespace
- Deploy frontend:
helm install taskmaster-frontend ./kubernetes/taskmaster-frontend -n taskmaster
- Port-forward backend API:
kubectl port-forward -n taskmaster svc/taskmaster 9000:8000 # Access API at http://localhost:9000 - Port-forward frontend:
kubectl port-forward -n taskmaster svc/taskmaster-frontend 3001:3000 # Access UI at http://localhost:3001
- Start all port-forwards as above.
- Visit:
- Frontend UI: http://localhost:3001
- API Docs: http://localhost:9000/api/docs
- Health Endpoint: http://localhost:9000/health
- Prometheus Metrics: http://localhost:9000/metrics
- Grafana: http://localhost:3000 (login with admin/prom-operator)
- Show:
- Creating, updating, and deleting tasks in the UI
- API endpoints in Swagger UI
- Health and metrics endpoints
- Live traffic and metrics in Prometheus/Grafana
- Jenkins pipeline (see
ci-cd/README.md)
- Screenshots:
- See
docs/screenshots/README.mdfor a list of demo screenshots
- See
- Cloud Hosting:
- Use a managed Kubernetes service (GKE, EKS, AKS, DigitalOcean, etc.)
- Push images to Docker Hub or a private registry
- Set up Ingress + DNS for your domain
- Use a cloud database/cache or deploy PostgreSQL/Redis in-cluster
- Domain:
- Buy a domain from a registrar (Namecheap, GoDaddy, etc.)
- Point DNS to your cloud ingress controller
- Limitations of Local Hosting:
- Local port-forwarding only works while your PC is running
- For public access, use a cloud provider or tunneling service (ngrok, Cloudflare Tunnel)
- Prometheus & Grafana manifests in
monitoring/. - See
docs/day4.md,docs/day6.md, and screenshots for dashboards and setup.
- Jenkins-based CI/CD pipeline automates linting, testing, Docker build/push, and deployment.
- Pipeline uses Docker agent for isolation and reproducibility.
- Key stages:
- Lint: Runs flake8 for Python code quality.
- Test: Runs backend tests (pytest).
- Build: Builds Docker image for backend.
- Push: Pushes Docker image to registry.
- Deploy: Deploys to Kubernetes (via Helm or kubectl).
- Triggering:
- Pipeline can be triggered by code push (webhook), manual run, or PR.
- See
ci-cd/README.mdfor more details and troubleshooting steps.
- Full stack (frontend, backend, DB, cache) running in Kubernetes
- Monitoring and metrics available
- CI/CD pipeline green
- Screenshots and documentation up to date
- Ready for demo and portfolio
- Add ArgoCD for GitOps-style deployment
- Integrate GitHub Actions for cloud-native CI/CD
- Add advanced monitoring/alerting (Alertmanager, custom dashboards)
- Set up public cloud hosting and domain
- Implement best practices (RBAC, secrets management, autoscaling)
- Add more tests and code quality gates
- Document interview Q&A and demo scripts
- Fork the repo
- Create a feature branch
- Commit your changes
- Push and open a Pull Request
MIT License. See LICENSE.
Follow the journey: Check daily docs and screenshots in
docs/for a transparent, real-world DevOps build process!
Checkpoint: See
docs/day6.mdfor the latest milestone and demo instructions.