A modern, cloud-native task management system with AI assistant powered by Groq Llama 3.3
- π€ AI-Powered Chat - Natural language task management using Groq Llama 3.3 70B
- β Task Management - Create, update, delete, and organize tasks with priorities
- π Authentication - Secure user authentication with Better Auth
- π¨ Modern UI - Responsive design with Tailwind CSS and cyberpunk theme
- βοΈ Cloud-Native - Fully containerized and orchestrated with Kubernetes
- π Scalable - Horizontal pod autoscaling for high availability
- π Real-time - Live updates and seamless user experience
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β KUBERNETES CLUSTER β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Frontend β β Backend β β MCP Server β β
β β (Next.js) ββββ€ (FastAPI) ββββ€ (AI Tools) β β
β β Port: 3000 β β Port: 8000 β β Port: 8001 β β
β ββββββββββββββββ ββββββββ¬ββββββββ ββββββββββββββββ β
β β β
β βΌ β
β ββββββββββββββββ β
β β PostgreSQL β β
β β (Database) β β
β β Port: 5432 β β
β ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Better Auth - Authentication library
- FastAPI - Modern Python web framework
- SQLAlchemy - SQL toolkit and ORM
- Alembic - Database migrations
- PostgreSQL 16 - Relational database
- Groq API - AI inference (Llama 3.3 70B)
- Docker - Containerization
- Kubernetes - Container orchestration
- Helm - Kubernetes package manager
- Minikube - Local Kubernetes cluster
Before you begin, ensure you have installed:
- Docker Desktop (v20.10+)
- Minikube (v1.30+)
- kubectl (v1.28+)
- Helm (v3.8+)
- Git
git clone https://github.com/yourusername/todo-app.git
cd todo-appGet your free Groq API key from console.groq.com
Edit the Helm values file:
# Windows
notepad helm/todo-app/values.yaml
# Linux/Mac
nano helm/todo-app/values.yamlUpdate the groqApiKey value:
backend:
secrets:
groqApiKey: "your-groq-api-key-here"Option A: Automated Setup (Recommended)
# Windows
.\scripts\minikube-setup.ps1
# Linux/Mac
./scripts/minikube-setup.shThis script will:
- β Start Minikube
- β Build Docker images
- β Deploy with Helm
- β Open the app in your browser
Option B: Manual Setup
# 1. Start Minikube
minikube start --driver=docker --cpus=4 --memory=8192
# 2. Configure Docker to use Minikube's daemon
# Windows PowerShell
& minikube -p minikube docker-env --shell powershell | Invoke-Expression
# Linux/Mac
eval $(minikube docker-env)
# 3. Build images
docker build -t todo-frontend:latest ./frontend
docker build -t todo-backend:latest ./backend
docker build -t todo-mcp:latest ./backend
# 4. Deploy with Helm
helm upgrade --install todo-app ./helm/todo-app \
--namespace todo-app \
--create-namespace \
--set backend.image.tag=latest \
--set frontend.image.tag=latest \
--set mcp.image.tag=latest
# 5. Access the application
minikube service frontend -n todo-appThe app will open automatically in your browser at:
- Local: http://127.0.0.1:xxxxx (dynamic port)
- Cluster: http://192.168.49.2:30432
Note: Keep the terminal running to maintain the tunnel!
- HOW_IT_WORKS.md - Comprehensive beginner-friendly guide explaining the entire architecture
- QUICK_START_K8S.md - Detailed Kubernetes deployment guide
- KUBERNETES.md - Complete Kubernetes documentation
- helm/todo-app/README.md - Helm chart documentation
Traditional Way:
- Click "Dashboard" in navigation
- Click "Add Task"
- Enter task details
- Click "Create"
AI Way:
- Click "Chat" in navigation
- Type: "Create a task to buy groceries"
- AI creates the task for you!
You: "Show me all my urgent tasks"
AI: Here are your urgent tasks: [lists tasks with high priority]
You: "Create a task to finish the project report by Friday"
AI: Created task "Finish project report" with due date February 16, 2026
You: "Mark the grocery task as completed"
AI: Task "Buy groceries" marked as completed β
You: "What tasks do I have for today?"
AI: You have 3 tasks due today: [lists tasks]
todo-app/
βββ frontend/ # Next.js application
β βββ app/ # Pages and routes
β βββ components/ # React components
β βββ hooks/ # Custom hooks
β βββ lib/ # Utilities
β βββ Dockerfile
β
βββ backend/ # FastAPI application
β βββ app/
β β βββ models/ # Database models
β β βββ routers/ # API routes
β β βββ schemas/ # Pydantic schemas
β β βββ services/ # Business logic
β β βββ mcp_server.py # AI tools server
β βββ alembic/ # Migrations
β βββ Dockerfile
β
βββ helm/todo-app/ # Helm chart
β βββ templates/ # K8s manifests
β βββ values.yaml # Configuration
β
βββ k8s/ # Raw K8s manifests
βββ scripts/ # Deployment scripts
βββ HOW_IT_WORKS.md # Architecture guide
# View all pods
kubectl get pods -n todo-app
# View logs
kubectl logs -l app=backend -n todo-app --tail=50
kubectl logs -l app=frontend -n todo-app --tail=50
# Scale deployments
kubectl scale deployment backend --replicas=3 -n todo-app
# Restart deployment
kubectl rollout restart deployment backend -n todo-app
# Access database
kubectl exec -it deployment/postgres -n todo-app -- psql -U postgres -d todo_db
# Port forward backend
kubectl port-forward svc/backend 8000:8000 -n todo-app
# Kubernetes dashboard
minikube dashboardBackend (backend-config ConfigMap):
DEBUG- Debug mode (default: false)ALGORITHM- JWT algorithm (default: HS256)ACCESS_TOKEN_EXPIRE_MINUTES- Token expiry (default: 30)ALLOWED_ORIGINS- CORS origins
Secrets (backend-secret):
GROQ_API_KEY- Groq API key for AI featuresSECRET_KEY- Application secret keyBETTER_AUTH_SECRET- Auth encryption key
Database (postgres-secret):
POSTGRES_PASSWORD- Database password
All services expose health endpoints:
- Frontend: http://localhost:3000/
- Backend: http://localhost:8000/health
- MCP Server: http://localhost:8001/health
# Pod status
kubectl get pods -n todo-app
# Services
kubectl get svc -n todo-app
# Events
kubectl get events -n todo-app --sort-by='.lastTimestamp'
# Resource usage (requires metrics-server)
kubectl top pods -n todo-appcd backend
pytestcd frontend
npm test# Modify code, then rebuild images
docker build -t todo-backend:v2 ./backend
# Update deployment
helm upgrade todo-app ./helm/todo-app \
--set backend.image.tag=v2 \
-n todo-app# View history
helm history todo-app -n todo-app
# Rollback to previous version
helm rollback todo-app -n todo-app
# Rollback to specific revision
helm rollback todo-app 3 -n todo-app# helm/todo-app/values.yaml
backend:
secrets:
secretKey: "CHANGE-THIS-IN-PRODUCTION"
betterAuthSecret: "CHANGE-THIS-IN-PRODUCTION"
groqApiKey: "your-actual-groq-api-key"
postgresql:
auth:
password: "CHANGE-THIS-IN-PRODUCTION"- β Use external secret management (Vault, AWS Secrets Manager)
- β Enable TLS/HTTPS for all endpoints
- β Implement network policies
- β Use non-root containers (already configured)
- β Scan images for vulnerabilities
- β Enable pod security policies
- β Regular backups of PostgreSQL data
# Delete Helm release
helm uninstall todo-app -n todo-app
# Stop Minikube
minikube stop
# Delete Minikube cluster (removes all data)
minikube deleteContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
- Groq - For providing free AI inference
- Better Auth - For the authentication library
- FastAPI - For the amazing Python framework
- Next.js - For the React framework
- Kubernetes - For container orchestration
- Add task categories and tags
- Implement task sharing between users
- Add calendar view
- Email notifications
- Mobile app (React Native)
- Export tasks to various formats
- Integration with Google Calendar
- Voice commands for task management
Made with β€οΈ using Kubernetes, Next.js, FastAPI, and AI
β Star this repository if you find it helpful!