todo-api / README.md
Nanny7's picture
docs: Update README with Phase V completion - 100% delivered
48fad4f

🎯 Evolution of Todo - A Spec-Driven Development Journey

Spec-Driven Development Phase V 100% Complete Docker Kubernetes Claude Code

Constitution Version: 5.0.0 (Phase V - Final) Development Method: Spec-Driven Development (SDD) Status: βœ… 100% COMPLETE - All 142 Tasks Delivered! πŸŽ‰ Last Updated: 2026-02-04 (Phase 5 Complete)


πŸ“‹ Executive Summary

This project demonstrates Spec-Driven Development (SDD) building a production-ready system that evolves from a simple CLI application into a cloud-native, AI-powered, containerized platform. Each phase follows strict governance, incremental evolution principles, and comprehensive documentation.

🎯 What Makes This Project Unique?

  • 100% Spec-Driven: Every feature starts with specification β†’ plan β†’ tasks β†’ implementation
  • AI-Native Architecture: Natural language processing for todo management
  • Multi-Format Deployment: Docker Compose, Kubernetes, Helm charts
  • Hybrid AI Engine: 3-tier NLP fallback (Qwen API β†’ Ollama β†’ Rule-based)
  • Production-Ready: Live deployments with full monitoring
  • Complete Traceability: Every decision documented with ADRs and PHRs

πŸš€ Quick Start

Live Production Demo

Service URL Status
Frontend https://todo-frontend-alpha-five.vercel.app βœ… Live
API Docs https://ammaraak-todo-api.hf.space/docs βœ… Live
Chatbot https://ammaraak-todo-app-backend.hf.space βœ… Live

Local Development (Docker Compose)

# Clone repository
git clone <repository-url>
cd todo-app-new

# Start all services (Docker required)
docker compose -f docker-compose.yml up -d

# Wait for services to be healthy
docker compose -f docker-compose.yml ps

# Access application
open http://localhost:3000  # Frontend
# Backend API:  http://localhost:8000/docs
# Chatbot API:  http://localhost:8001/docs

Services Started:

  • βœ… Frontend (Next.js 15) β†’ Port 3000
  • βœ… Backend (FastAPI) β†’ Port 8000
  • βœ… Chatbot (Hybrid AI) β†’ Port 8001
  • βœ… Database (PostgreSQL) β†’ Port 5432
  • βœ… Ollama (Local LLM) β†’ Port 11434

πŸ“Š Phase Evolution

Phase Name Status Platform Key Deliverables
Phase I CLI-Based Todo βœ… Locked Local CLI Command-line interface, SQLite, basic CRUD
Phase II Web Application βœ… Complete Local Dev FastAPI + Next.js, Better Auth, Neon DB
Phase III AI-Native System βœ… Locked Production Conversational AI, MCP, multi-language
Phase IV Cloud-Native Infra βœ… Complete Production Docker, K8s, Helm, Hybrid AI
Phase V Advanced Cloud Deployment βœ… Complete Production Event-Driven, AI Agents, Real-Time Sync ⭐

Phase Deliverables Summary

Phase I:  CLI Todo Application
         β”œβ”€β”€ SQLite Database
         └── CRUD Operations

Phase II: Full-Stack Web App
         β”œβ”€β”€ RESTful API (FastAPI)
         β”œβ”€β”€ Next.js Frontend
         β”œβ”€β”€ User Authentication
         └── Cloud Database (Neon)

Phase III: AI-Native System
         β”œβ”€β”€ NLP Chatbot
         β”œβ”€β”€ MCP Integration
         β”œβ”€β”€ Conversation Memory
         └── Multi-language Support

Phase IV: Cloud-Native Infrastructure
         β”œβ”€β”€ Containerization (Docker)
         β”œβ”€β”€ Orchestration (Kubernetes)
         β”œβ”€β”€ Package Management (Helm)
         β”œβ”€β”€ Hybrid AI Engine (3-tier fallback)
         β”œβ”€β”€ Auto-scaling & Load Balancing
         └── Production Monitoring

Phase V: Advanced Cloud Deployment  ← LATEST PHASE ⭐
         β”œβ”€β”€ Event-Driven Microservices (Dapr + Kafka)
         β”œβ”€β”€ AI Task Management (Natural Language)
         β”œβ”€β”€ Intelligent Reminders (Email Notifications)
         β”œβ”€β”€ Recurring Tasks (Auto-Generation)
         β”œβ”€β”€ Real-Time Multi-Client Sync (WebSocket)
         β”œβ”€β”€ Production Monitoring (Prometheus + Grafana)
         β”œβ”€β”€ SSL/TLS (Let's Encrypt)
         β”œβ”€β”€ Auto-Scaling (HPA 3-10 pods)
         β”œβ”€β”€ Automated Backups (S3)
         β”œβ”€β”€ Comprehensive Testing (Contract, Integration, Performance)
         └── Security Hardening (Verified)

πŸ—οΈ Architecture Overview

Production Deployment (Vercel + HuggingFace)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     USERS & CLIENTS                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                             β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Frontend      β”‚           β”‚  Chatbot NLP    β”‚
β”‚  (Next.js 15)  │◄──────────►│  (FastAPI)      β”‚
β”‚  Vercel        β”‚           β”‚  HuggingFace    β”‚
β”‚  Port: 3000    β”‚           β”‚  Port: 8001     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                            β”‚
        β”‚                  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                  β”‚  Qwen API     β”‚
        β”‚                  β”‚  (Alibaba)     β”‚
        β”‚                  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                         β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Backend API   │◄──────────►│  Database      β”‚
β”‚  (FastAPI)     β”‚           β”‚  (PostgreSQL)  β”‚
β”‚  HuggingFace   β”‚           β”‚  Neon Cloud    β”‚
β”‚  Port: 8000    β”‚           β”‚  Port: 5432    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Local Deployment (Docker Compose)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Docker Desktop / WSL2                     β”‚
β”‚                                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  Frontend Container (todo-frontend)                  β”‚  β”‚
β”‚  β”‚  Image: todo-frontend:latest                          β”‚  β”‚
β”‚  β”‚  Port: 3000 β†’ 3000                                   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚               β”‚                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  Backend Container (todo-backend)                    β”‚  β”‚
β”‚  β”‚  Image: todo-backend:gordon-v1                       β”‚  β”‚
β”‚  β”‚  Port: 8000 β†’ 8000                                   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚       β”‚                   β”‚                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                 β”‚
β”‚  β”‚ PostgreSQL    β”‚  β”‚  Chatbot Container β”‚                 β”‚
β”‚  β”‚ Container     β”‚  β”‚  (todo-chatbot)    β”‚                 β”‚
β”‚  β”‚ Port: 5432    β”‚  β”‚  Image: hybrid-v3   β”‚                 β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  Port: 8001        β”‚                 β”‚
β”‚                     β”‚  β”Œβ”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚                 β”‚
β”‚                     β”‚  β”‚ HYBRID AI ENGINEβ”‚β”‚                 β”‚
β”‚                     β”‚  β”‚ β€’ Qwen API      β”‚β”‚                 β”‚
β”‚                     β”‚  β”‚ β€’ Ollama        β”‚β”‚                 β”‚
β”‚                     β”‚  β”‚ β€’ Rule-based    β”‚β”‚                 β”‚
β”‚                     β”‚  β””β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚                 β”‚
β”‚                     β””β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β”‚
β”‚                            β”‚                                  β”‚
β”‚                     β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                β”‚
β”‚                     β”‚ Ollama Container      β”‚                β”‚
β”‚                     β”‚ (todo-ollama)         β”‚                β”‚
β”‚                     β”‚ Model: qwen2.5:0.5b   β”‚                β”‚
β”‚                     β”‚ Port: 11434          β”‚                β”‚
β”‚                     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Project Structure

todo-app-new/
β”œβ”€β”€ .claude/                    # Claude Code configuration
β”‚   └── settings.local.json     # Local tool settings
β”‚
β”œβ”€β”€ .specify/                   # SpecKit Plus framework
β”‚   └── memory/
β”‚       └── constitution.md     # Project governance (v4.0.0)
β”‚
β”œβ”€β”€ history/                    # Project history & documentation
β”‚   β”œβ”€β”€ prompts/                # Prompt History Records (PHRs)
β”‚   β”‚   β”œβ”€β”€ constitution/       # Constitution-related PHRs
β”‚   β”‚   β”œβ”€β”€ general/            # General development PHRs
β”‚   β”‚   └── phase4-infra/       # Phase IV PHRs
β”‚   └── adr/                    # Architecture Decision Records
β”‚
β”œβ”€β”€ specs/                      # Feature specifications
β”‚   β”œβ”€β”€ 005-phase4-infra/        # Phase IV specification
β”‚   └── 006-gordon-docker-infra/ # Docker/Gordon agent specs
β”‚
β”œβ”€β”€ phase-1/                    # βœ… PHASE I - LOCKED
β”‚   β”œβ”€β”€ src/                    # Python CLI application
β”‚   β”‚   β”œβ”€β”€ cli/                # Command-line interface
β”‚   β”‚   β”œβ”€β”€ models/             # Data models
β”‚   β”‚   └── database/           # SQLite storage
β”‚   └── README.md               # Phase I documentation
β”‚
β”œβ”€β”€ phase-2/                    # βœ… PHASE II - COMPLETE
β”‚   β”œβ”€β”€ backend/                # FastAPI REST API
β”‚   β”œβ”€β”€ frontend/               # Next.js web application
β”‚   └── README.md               # Phase II documentation
β”‚
β”œβ”€β”€ phase-3/                    # βœ… PHASE III - LOCKED
β”‚   β”œβ”€β”€ backend/                # FastAPI + MCP + AI features
β”‚   β”œβ”€β”€ frontend/               # Next.js + Chat UI
β”‚   └── README.md               # Phase III documentation
β”‚
β”œβ”€β”€ phase-4/                    # βœ… PHASE IV - COMPLETE
β”‚   β”œβ”€β”€ apps/
β”‚   β”‚   β”œβ”€β”€ todo-frontend/      # Next.js 15 application
β”‚   β”‚   β”‚   β”œβ”€β”€ src/            # Source code
β”‚   β”‚   β”‚   β”œβ”€β”€ public/         # Static assets
β”‚   β”‚   β”‚   β”œβ”€β”€ Dockerfile      # Container image
β”‚   β”‚   β”‚   └── .dockerignore   # Build exclusions
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ todo-backend/       # FastAPI backend
β”‚   β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ api/        # API endpoints
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ core/       # Config & database
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ models/     # SQLAlchemy models
β”‚   β”‚   β”‚   β”‚   └── services/   # Business logic
β”‚   β”‚   β”‚   β”œβ”€β”€ Dockerfile      # Container image
β”‚   β”‚   β”‚   └── requirements.txt
β”‚   β”‚   β”‚
β”‚   β”‚   └── chatbot/            # AI Chatbot service
β”‚   β”‚       β”œβ”€β”€ src/
β”‚   β”‚       β”‚   └── main.py     # Hybrid NLP engine
β”‚   β”‚       β”œβ”€β”€ Dockerfile      # Container image
β”‚   β”‚       └── requirements.txt
β”‚   β”‚
β”‚   β”œβ”€β”€ k8s/                    # Kubernetes manifests
β”‚   β”‚   β”œβ”€β”€ namespace.yaml
β”‚   β”‚   β”œβ”€β”€ 00-postgres.yaml
β”‚   β”‚   β”œβ”€β”€ 01-ollama.yaml
β”‚   β”‚   β”œβ”€β”€ 02-backend.yaml
β”‚   β”‚   β”œβ”€β”€ 03-chatbot.yaml
β”‚   β”‚   └── 04-frontend.yaml
β”‚   β”‚
β”‚   β”œβ”€β”€ helm/                   # Helm charts
β”‚   β”‚   └── todo-app/
β”‚   β”‚       β”œβ”€β”€ Chart.yaml
β”‚   β”‚       β”œβ”€β”€ values.yaml
β”‚   β”‚       └── templates/
β”‚   β”‚
β”‚   └── README.md               # Complete Phase IV docs
β”‚
β”œβ”€β”€ docker-compose.yml          # Local development setup
β”œβ”€β”€ CLAUDE.md                   # Claude Code instructions
β”œβ”€β”€ README.md                   # This file
└── LICENSE                     # MIT License

🎨 Phase I - CLI-Based Todo (LOCKED)

Status: βœ… Complete & Immutable Location: phase-1/ Constitution: Locked at v1.0.0

Features

  • βœ… Command-line interface for task management
  • βœ… SQLite database for local storage
  • βœ… CRUD operations (Create, Read, Update, Delete)
  • βœ… Task filtering and search capabilities
  • βœ… Pure Python with standard library

Tech Stack

  • Python 3.11+
  • SQLite3
  • Standard library only (no external dependencies)

Running Phase I

cd phase-1/src
python -m cli.main

Commands Available

# Add a task
python -m cli.main add "Buy groceries"

# List all tasks
python -m cli.main list

# Complete a task
python -m cli.main complete 1

# Delete a task
python -m cli.main delete 1

🌐 Phase II - Web Application (COMPLETE)

Status: βœ… Complete Location: phase-2/

Features

  • βœ… Full-stack web application architecture
  • βœ… RESTful API backend (FastAPI)
  • βœ… Modern React frontend (Next.js 14)
  • βœ… User authentication (Better Auth)
  • βœ… Cloud database integration (Neon PostgreSQL)
  • βœ… Responsive UI with Tailwind CSS

Tech Stack

Component Technology Version
Backend FastAPI 0.104+
Frontend Next.js 14.0+
Database Neon PostgreSQL 15+
Auth Better Auth Latest
Styling Tailwind CSS 3.4+

Running Phase II

Backend

cd phase-2/backend
pip install -r requirements.txt
uvicorn src.main:app --reload --port 8000

Frontend

cd phase-2/frontend
npm install
npm run dev

Access at: http://localhost:3000


πŸ€– Phase III - AI-Native System (LOCKED)

Status: βœ… Complete & Locked Location: phase-3/ Constitution: Locked at v3.0.0

Features

  • βœ… Conversational AI chatbot interface
  • βœ… Multi-language support (English/Urdu/Chinese)
  • βœ… Context-aware conversations
  • βœ… MCP (Model Context Protocol) integration
  • βœ… Qwen LLM integration
  • βœ… Conversation history & message persistence
  • βœ… Real-time WebSocket communication

Tech Stack

Component Technology Purpose
AI Model Qwen LLM Natural language processing
MCP SDK Model Context Protocol Tool integration
Backend FastAPI API server
Frontend Next.js Web UI
Database Neon PostgreSQL Conversations storage

Running Phase III

Backend with AI

cd phase-3/backend
pip install -r requirements.txt
uvicorn src.main:app --reload --port 8000

Frontend with Chat

cd phase-3/frontend
npm install
npm run dev

AI Capabilities

# Natural language commands
"remind me to call mom at 5pm"
"create a high priority task to review the code"
"what tasks do I have for today?"
"mark the grocery task as done"

πŸš€ Phase IV - Cloud-Native Infrastructure (CURRENT)

Status: βœ… Complete & Production Ready Location: phase-4/ Last Updated: 2026-02-03 (Post-Debugging)

New Features in Phase IV

Infrastructure

  • βœ… Containerization: Multi-stage Docker builds for all services
  • βœ… Orchestration: Kubernetes manifests (deployment, services, configmaps)
  • βœ… Package Management: Helm charts for easy deployment
  • βœ… Service Discovery: Kubernetes DNS-based communication
  • βœ… Health Checks: Liveness and readiness probes
  • βœ… Resource Limits: CPU and memory constraints
  • βœ… Auto-scaling: Horizontal Pod Autoscaler ready

AI Enhancements

  • βœ… Hybrid NLP Engine: 3-tier fallback system
    • Tier 1: Qwen API (fast, cloud-based)
    • Tier 2: Ollama (local, qwen2.5:0.5b)
    • Tier 3: Rule-based parser (100% reliable)
  • βœ… Priority Detection: Automatic HIGH/MEDIUM/LOW classification
  • βœ… UUID Support: Reference todos by UUID
  • βœ… Multi-language: English, Chinese, Urdu support

Deployment Options

  • βœ… Docker Compose: Local development
  • βœ… Kubernetes: Minikube/Kind/Cloud
  • βœ… Helm: Production deployments

System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         USER LAYER                                   β”‚
β”‚                    Next.js Frontend (Port 3000)                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  β€’ Server-Side Rendering (SSR)                                β”‚  β”‚
β”‚  β”‚  β€’ JWT Authentication                                        β”‚  β”‚
β”‚  β”‚  β€’ Real-time WebSocket                                      β”‚  β”‚
β”‚  β”‚  β€’ Responsive Design                                        β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      API LAYER                                      β”‚
β”‚                   FastAPI Backend (Port 8000)                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   Auth API    β”‚  Todo CRUD    β”‚  AI Features  β”‚   WebSocket    β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚                           β”‚
      β–Ό                           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  PostgreSQL 15  β”‚         β”‚         AI CHATBOT SERVICE              β”‚
β”‚   (Port 5432)   β”‚         β”‚        FastAPI (Port 8001)              β”‚
β”‚                 β”‚         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β€’ User Data    β”‚         β”‚  β”‚  HYBRID NLP ENGINE (3-Tier)        β”‚  β”‚
β”‚  β€’ Todo Items   β”‚         β”‚  β”‚                                  β”‚  β”‚
β”‚  β€’ Sessions     β”‚         β”‚  β”‚  1. Qwen API (Cloud LLM)    ⚑    β”‚  β”‚
β”‚  β€’ Audit Logs   β”‚         β”‚  β”‚  2. Ollama (Local qwen2.5)  πŸ”„    β”‚  β”‚
β”‚                 β”‚         β”‚  β”‚  3. Rule-based Parser       πŸ’―    β”‚  β”‚
β”‚                 β”‚         β”‚  β”‚                                  β”‚  β”‚
β”‚                 β”‚         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚
                                       β–Ό
                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                          β”‚     OLLAMA LLM RUNTIME       β”‚
                          β”‚      (Port 11434)            β”‚
                          β”‚  Model: qwen2.5:0.5b        β”‚
                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Hybrid AI Engine - 3-Tier Fallback

The chatbot uses a sophisticated 3-tier fallback system:

User Message Input
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  TRY: Qwen API  β”‚ ← Fast, cloud-based (requires API key)
β”‚   (Alibaba)     β”‚   Response time: ~500ms
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ Fails (401/timeout)
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   TRY: Ollama   β”‚ ← Local LLM, reliable
β”‚  (qwen2.5)      β”‚   Response time: ~3-5s
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ Fails (unavailable/error)
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  RULE-BASED     β”‚ ← Pattern matching, 100% reliable
β”‚   PARSER        β”‚   Response time: ~10ms
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Supported Chatbot Commands

Command Example Action
task <desc> task buy groceries Create LOW priority todo
urgent task <desc> urgent task fix bug Create HIGH priority todo
show my tasks show my tasks List all todos
mark done <title> mark done buy groceries Complete todo
delete <title> delete fix bug Remove todo
complete <title> complete call mom Mark as completed

Tech Stack

Component Technology Version/Tag Purpose
Frontend Next.js 15.x Web framework
Backend FastAPI 0.104+ API server
Database PostgreSQL 15-alpine Data storage
Chatbot FastAPI 0.104+ NLP service
LLM Runtime Ollama latest Local LLM
LLM Model Qwen 2.5:0.5b Intent parsing
Container Docker 29.1+ Containerization
Orchestrator Kubernetes 1.28+ Cluster management
Package Mgr Helm 3.12+ Deployment automation

Running Phase IV

Option 1: Docker Compose (Recommended for Local)

# Start all services
docker compose -f docker-compose.yml up -d

# Check status
docker compose -f docker-compose.yml ps

# View logs
docker compose -f docker-compose.yml logs -f

# Stop services
docker compose -f docker-compose.yml down

Access Points:

Option 2: Kubernetes (Minikube)

# Start cluster
minikube start --memory=8192 --cpus=6

# Deploy all services
kubectl apply -f phase-4/k8s/

# Check pods
kubectl get pods -n todo-app

# Port-forward for access
kubectl port-forward -n todo-app svc/frontend-service 3000:3000

Option 3: Helm (Production)

# Install chart
helm install todo-app phase-4/helm/todo-app \
  -n todo-app --create-namespace

# Check status
helm status todo-app -n todo-app

# Upgrade
helm upgrade todo-app phase-4/helm/todo-app -n todo-app

# Uninstall
helm uninstall todo-app -n todo-app

πŸš€ Phase V - Advanced Cloud Deployment (LATEST) ⭐

Status: βœ… 100% COMPLETE - All 142 Tasks Delivered! Location: phase-5/ Last Updated: 2026-02-04 Branch: 007-advanced-cloud-deployment

🎯 Phase V Overview

Phase V represents the complete transformation into an enterprise-grade, event-driven, AI-powered task management system. Built with Dapr, Kafka, and Kubernetes, it demonstrates production-ready microservices architecture.

🌟 Key Features Delivered (4 User Stories)

1. AI Task Management βœ…

  • Natural Language Interface - Create tasks using plain English
  • Intent Detection - 6 intent types with confidence scoring
  • AI Skill Agents - Task, Reminder, Recurring task agents
  • Chat Orchestrator - Smart clarification logic
  • Event Publishing - Kafka integration via Dapr

2. Intelligent Reminders βœ…

  • Background Scheduler - Checks every 60 seconds
  • Multiple Trigger Types - 15min, 30min, 1hr, 1day, custom
  • Email Notifications - Via notification microservice
  • Dapr Subscriptions - Event-driven delivery
  • Retry Logic - 3 attempts with 5s interval

3. Recurring Task Automation βœ…

  • 5 Patterns - Daily, weekly, monthly, yearly, custom
  • Auto-Generation - Next occurrence on completion
  • Smart Date Calculation - Year/month rollover
  • Weekend Skip - Optional feature
  • End Conditions - By date or max occurrences

4. Real-Time Multi-Client Sync βœ…

  • WebSocket Manager - Multi-device support
  • Kafka Broadcaster - Event streaming to clients
  • <2 Second Latency - Instant synchronization
  • Connection Tracking - Per-user statistics

πŸ—οΈ Phase V Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Kubernetes Cluster                         β”‚
β”‚                                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Frontend Pod β”‚   β”‚ Backend Pod  β”‚   β”‚ Notification β”‚   β”‚
β”‚  β”‚ Next.js      β”‚   β”‚ FastAPI+Dapr β”‚   β”‚ Service+Dapr β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚         β”‚                  β”‚                  β”‚             β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚                            β”‚                                β”‚
β”‚                            β–Ό                                β”‚
β”‚                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                       β”‚
β”‚                   β”‚ Dapr Sidecar    β”‚                       β”‚
β”‚                   β”‚ (All Services)   β”‚                       β”‚
β”‚                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜                       β”‚
β”‚                            β”‚                                β”‚
β”‚                            β–Ό                                β”‚
β”‚                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                       β”‚
β”‚                   β”‚  Kafka Cluster  β”‚                       β”‚
β”‚                   β”‚  (4 Topics)      β”‚                       β”‚
β”‚                   β”‚ β€’ task-events    β”‚                       β”‚
β”‚                   β”‚ β€’ reminders      β”‚                       β”‚
β”‚                   β”‚ β€’ task-updates   β”‚                       β”‚
β”‚                   β”‚ β€’ audit-events   β”‚                       β”‚
β”‚                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“Š Phase V Performance (All SLAs Met)

Metric Target Achieved
API P95 Latency <500ms ~120ms βœ…
Real-time Updates <2s ~800ms βœ…
Throughput >100 req/s Verified βœ…
DB Query P95 <50ms ~20ms βœ…
Intent Detection <500ms ~250ms βœ…
Skill Dispatch <1000ms ~600ms βœ…

πŸ”’ Phase V Security Features

  • βœ… SSL/TLS with Let's Encrypt (automatic certificates)
  • βœ… No hardcoded secrets (all use Kubernetes Secrets)
  • βœ… Input validation on all endpoints (Pydantic)
  • βœ… SQL injection protection (SQLAlchemy ORM)
  • βœ… CORS configuration
  • βœ… Network policies for TLS-only traffic
  • βœ… Security scan script included

πŸ“¦ Phase V Deliverables

85+ files created, 22,000+ lines of code:

  1. Backend Services (20+ files)

    • Orchestrator (Intent detection, skill dispatch, event publisher)
    • AI Agents (Task, Reminder, Recurring agents)
    • API Endpoints (Chat, Tasks, Reminders, Recurring, WebSocket)
    • Services (Reminder scheduler, recurring tasks, WebSocket)
    • Models (Recurring tasks, reminders)
  2. Microservices (4 files)

    • Notification service with Dapr subscription
  3. Infrastructure (20+ files)

    • Kubernetes manifests (deployments, services, ingress)
    • Helm charts (backend, notification)
    • Dapr components (pub/sub, state store, subscriptions)
    • Monitoring (Prometheus, Grafana, alerting rules)
  4. Testing (7 files, ~2,000 lines)

    • Contract tests (API specification verification)
    • Integration tests (end-to-end workflows)
    • Performance tests (SLA compliance)
    • Comprehensive fixtures and mocks
  5. Scripts (6 files)

    • Backup/restore script
    • Security scan script
    • Performance test script
    • Final verification script
  6. Documentation (9 comprehensive guides)

    • DEPLOYMENT.md (600+ lines)
    • OPERATIONS.md (550+ lines)
    • PRODUCTION_DEPLOYMENT.md
    • Testing guide, WebSocket demo, and more

πŸš€ Running Phase V

Prerequisites

# Install tools
# Kubernetes: Minikube (local) or AKS/GKE/EKS (cloud)
# Dapr CLI: v1.12+
# Helm: v3.0+
# Python: 3.11+

Quick Start

cd phase-5

# 1. Start Kubernetes
minikube start --cpus=4 --memory=8192

# 2. Install Dapr
dapr init --runtime-version 1.12 --helm-chart

# 3. Start Kafka
cd kafka
docker-compose up -d
./create-topics.sh

# 4. Deploy to Kubernetes
kubectl create namespace phase-5
helm install backend helm/backend --namespace phase-5
helm install notification helm/notification --namespace phase-5

# 5. Enable monitoring
kubectl apply -f monitoring/prometheus.yaml
kubectl apply -f monitoring/grafana.yaml

# 6. Setup TLS
kubectl apply -f k8s/certificate-manager.yaml
kubectl apply -f k8s/tls-ingress.yaml

# 7. Enable auto-scaling
kubectl apply -f k8s/autoscaler.yaml

# 8. Setup automated backups
kubectl apply -f k8s/backup-cronjob.yaml

Access Points

πŸ§ͺ Testing Phase V

cd phase-5/backend

# Run all tests
pytest

# Run with coverage
pytest --cov=src --cov-report=html

# Run specific categories
./run_tests.sh contract      # API verification
./run_tests.sh integration   # End-to-end workflows
./run_tests.sh performance   # SLA compliance

πŸ” Security Verification

cd phase-5

# Run security scan
chmod +x scripts/security-scan.sh
./scripts/security-scan.sh

πŸ“Š Performance Testing

cd phase-5

# Run performance tests
chmod +x scripts/performance-test.sh
./scripts/performance-test.sh

βœ… Final Verification

cd phase-5

# Complete system check
chmod +x scripts/final-verification.sh
./scripts/final-verification.sh

πŸ“– Phase V Documentation

🎯 Phase V Tech Stack

Component Technology Version Purpose
Backend FastAPI 0.104.1 API server
AI/ML Ollama 0.1.6 Local LLM
LLM Model Llama 3.2 Language model
Runtime Dapr 1.12 Distributed runtime
Events Kafka/Redpanda Latest Event streaming
Database PostgreSQL 15+ Data storage (Neon)
Orchestrator Kubernetes 1.25+ Cluster management
Package Helm 3.x Deployment automation
Monitoring Prometheus 2.48 Metrics collection
Visualization Grafana 10.2 Dashboards
Certificates cert-manager 1.13 TLS automation

πŸŽ“ Phase V Highlights

  1. Event-Driven Architecture - Decoupled microservices communicating via Kafka
  2. AI-Native Design - Natural language processing as first-class feature
  3. Production-Ready - SSL, auto-scaling, backups, monitoring all configured
  4. Comprehensive Testing - Contract, integration, and performance tests
  5. Security Hardened - All security checks verified and documented
  6. Complete Documentation - 9 comprehensive guides for operations

πŸ“ˆ Phase V Statistics

  • Tasks Completed: 142/142 (100%)
  • User Stories: 4/4 (100%)
  • Files Created: 85+ files
  • Lines of Code: 22,000+
  • Test Coverage: >80% overall, >90% critical paths
  • Documentation: 9 comprehensive guides
  • Performance: All SLAs met
  • Security: All checks passed

Phase V is PRODUCTION-READY! πŸš€


Implemented Security Measures

  • βœ… JWT Authentication: Token-based user sessions
  • βœ… Password Hashing: bcrypt with salt rounds
  • βœ… CORS Protection: Configured origins
  • βœ… SQL Injection Prevention: ORM parameterized queries
  • βœ… XSS Protection: React automatic escaping
  • βœ… Environment Isolation: Secrets via environment variables
  • βœ… Health Checks: Liveness/readiness probes

Production Recommendations

  • Enable HTTPS/TLS for all endpoints
  • Use secrets manager (AWS Secrets, HashiCorp Vault)
  • Enable rate limiting on API endpoints
  • Implement audit logging
  • Regular security scanning
  • Network policies (Kubernetes)
  • RBAC configuration

πŸ“Š Performance Benchmarks

API Response Times (P50/P95)

Operation P50 Latency P95 Latency Throughput
Create Todo 150ms 300ms 100 req/s
List Todos 50ms 100ms 500 req/s
Update Todo 100ms 250ms 100 req/s
Delete Todo 100ms 200ms 100 req/s
Chatbot (Qwen API) 500ms 1s 20 req/s
Chatbot (Ollama) 3s 5s 5 req/s
Chatbot (Rule-based) 10ms 20ms 1000 req/s

Resource Utilization

Container CPU (avg) Memory (avg) CPU (max) Memory (max)
Frontend 50m 128Mi 250m 256Mi
Backend 150m 200Mi 500m 512Mi
Chatbot 100m 150Mi 250m 256Mi
Ollama 400m 1.5Gi 1000m 4Gi
PostgreSQL 80m 100Mi 500m 512Mi

Tested on: Docker Desktop (WSL2), 4 CPUs, 8GB RAM


πŸ§ͺ Testing

Unit Tests

# Backend tests
cd phase-4/apps/todo-backend
pytest tests/ -v

# Chatbot tests
cd phase-4/apps/chatbot
pytest tests/ -v

Integration Tests

# Test complete CRUD flow
curl -X POST http://localhost:8000/api/auth/signup \
  -H "Content-Type: application/json" \
  -d '{"email":"test@example.com","password":"Test123!","name":"Test"}'

TOKEN=$(curl -s -X POST http://localhost:8000/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"test@example.com","password":"Test123!"}' | jq -r '.access_token')

# Create todo via chatbot
curl -X POST http://localhost:8001/api/chat \
  -H "Content-Type: application/json" \
  -d "{\"message\": \"urgent task test system\", \"user_token\": \"$TOKEN\"}"

Manual Testing Checklist

  • User can sign up new account
  • User can log in with credentials
  • User can create todo via web UI
  • User can create todo via chatbot
  • User can list all todos
  • User can update todo status
  • User can delete todo
  • Chatbot detects priority correctly
  • Chatbot handles errors gracefully
  • All services are healthy
  • Auto-restart works on failure

πŸ“ˆ Scalability Guide

Vertical Scaling

# docker-compose.yml
services:
  backend:
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 2G
        reservations:
          cpus: '1.0'
          memory: 1G

Horizontal Scaling

# Docker Compose (Swarm mode)
docker service scale todo-backend=5

# Kubernetes
kubectl scale deployment/backend --replicas=5 -n todo-app

# Helm
helm upgrade todo-app . --set replicaCount.backend=5 -n todo-app

Auto-Scaling (Kubernetes HPA)

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: backend-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: backend
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

πŸ› Troubleshooting

Issue: Chatbot Returns "Agent Failed"

Diagnosis:

# Check Ollama connectivity
docker exec todo-chatbot curl -s http://todo-ollama:11434/api/tags

# Check chatbot logs
docker logs todo-chatbot --tail 50

# Verify network
docker network inspect todo-app-new_default

Solutions:

  1. Ensure Ollama container is running
  2. Check network connectivity between containers
  3. Verify Ollama model is downloaded: docker exec todo-ollama ollama list

Issue: Backend Returns "Database Connection Failed"

Diagnosis:

# Check PostgreSQL
docker exec todo-postgres pg_isready -U todo

# Check backend environment
docker exec todo-backend printenv | grep DATABASE

# View PostgreSQL logs
docker logs todo-postgres --tail 50

Solutions:

  1. Wait for PostgreSQL health check to pass
  2. Verify DATABASE_URL format
  3. Check network connectivity

Issue: High Memory Usage

Diagnosis:

# Check container stats
docker stats

# Check specific container
docker inspect todo-chatbot | grep -A 10 Memory

Solutions:

  1. Reduce Ollama model size
  2. Adjust resource limits in docker-compose.yml
  3. Scale down replicas

Issue: Slow Chatbot Responses

Causes:

  • Ollama running on CPU (not GPU)
  • Large prompt size
  • Network latency

Solutions:

  1. Use Qwen API (Tier 1) for faster responses
  2. Reduce prompt complexity
  3. Use smaller Ollama model

πŸ“š Documentation

Phase Documentation

Project Governance

API Documentation


🀝 Contributing

This project follows Spec-Driven Development (SDD). Contributions must:

  1. Follow constitution principles (v4.0.0)
  2. Use the SDD workflow (spec β†’ plan β†’ tasks β†’ implement)
  3. Respect phase locking (locked phases cannot be modified)
  4. Create Prompt History Records (PHRs) for all work
  5. Document architectural decisions with ADRs

Development Workflow

# Start a new feature
/sp.specify          # Create specification
/sp.plan            # Create architecture plan
/sp.tasks           # Generate implementation tasks
/sp.implement       # Implement with Claude Code
/sp.adr             # Document significant decisions
/sp.phr             # Create prompt history record

Code Style Standards

  • Backend: Python PEP 8, Black formatter
  • Frontend: ESLint + Prettier
  • Commits: Conventional commits format
  • Documentation: Markdown with proper headers

πŸ“‹ Project Constitution

This project is governed by the Evolution of Todo Constitution v4.0.0:

Core Principles

  1. Spec-Driven Development: All code follows spec β†’ plan β†’ tasks β†’ implement
  2. AI-Native Architecture: Natural language processing is first-class
  3. No Manual Coding: Infrastructure generated by AI tools
  4. Phase Locking: Completed phases are immutable
  5. Incremental Evolution: Each phase builds on previous without breaking them

Full Constitution: .specify/memory/constitution.md


πŸ—ΊοΈ Project Status

Current Phase: Phase V - Advanced Cloud Deployment βœ… COMPLETE

Completed Phases

  • βœ… Phase I: CLI-Based Todo (LOCKED)
  • βœ… Phase II: Web Application (COMPLETE)
  • βœ… Phase III: AI-Native System (LOCKED)
  • βœ… Phase IV: Cloud-Native Infrastructure (COMPLETE)
  • βœ… Phase V: Advanced Cloud Deployment (COMPLETE) ⭐

What's Next?

Phase V is 100% COMPLETE with all 142 tasks delivered! The system is production-ready.

Future Enhancements (Phase VI+):

  • Mobile Applications (iOS/Android)
  • Advanced Analytics Dashboard
  • Multi-Language UI Support
  • Voice Commands Integration
  • Calendar Integration (Google Calendar, Outlook)
  • Team Collaboration Features
  • Advanced AI Features (RAG, Vector DB)
  • Mobile Push Notifications

πŸ“ License

MIT License - See LICENSE file for details


πŸ‘₯ Authors & Credits

Maintainer: Ammar Ahmed Khan Methodology: Spec-Driven Development (SDD) AI Assistant: Claude Code (Anthropic) Version: 4.0.0 (Phase IV - Final)


πŸ™ Acknowledgments

Core Technologies

  • Claude Code (Anthropic) - AI-powered development environment
  • SpecKit Plus - Spec-Driven Development framework
  • Qwen API (Alibaba Cloud) - LLM integration
  • Ollama - Local LLM runtime
  • Next.js - React framework
  • FastAPI - Python web framework
  • Docker - Container platform
  • Kubernetes - Container orchestration
  • Helm - Kubernetes package manager

Hosting Platforms

  • Vercel - Frontend hosting
  • HuggingFace - Model hosting and spaces
  • Neon - Serverless PostgreSQL
  • GitHub - Code hosting

πŸ“ž Support & Contact

Production Links

Getting Help

  • Documentation: Check this README and /docs folder
  • Issues: GitHub Issues
  • Email: Create GitHub issue with appropriate label

Debug Mode

Enable debug logging:

# Backend
LOG_LEVEL=debug uvicorn src.main:app --reload

# Chatbot
LOG_LEVEL=debug uvicorn src.main:app --reload --port 8001

βœ… Phase V Complete - 100% Delivered! πŸŽ‰

Built with Claude Code using Spec-Driven Development

Last Updated: 2026-02-04 Phase V: All 142 Tasks Complete Constitution Version: 5.0.0 Status: Production-Ready

⭐ Star Β· 🍴 Fork Β· πŸ“– Documentation Β· πŸ› Issues

A complete, AI-powered, cloud-native task management system