# πŸ“š Documentation Index Quick navigation to all project documentation and important files. ## πŸš€ Start Here | Document | Purpose | Time | |----------|---------|------| | [README.md](README.md) | Project overview, features, quick start | 10 min | | [BUILD_SUMMARY.md](BUILD_SUMMARY.md) | What was built, what's included, next steps | 5 min | | [QUICK_REFERENCE.md](QUICK_REFERENCE.md) | CLI commands, common tasks | As needed | ## πŸ—οΈ Architecture & Development | Document | Purpose | Audience | |----------|---------|----------| | [DEVELOPMENT.md](DEVELOPMENT.md) | Architecture, design patterns, how to extend | Developers | | [FILE_INVENTORY.md](FILE_INVENTORY.md) | Complete file listing, project structure | Everyone | | [backend/app/db.py](backend/app/db.py) | Database schema & initialization | Developers | | [frontend/src/api.js](frontend/src/api.js) | API client design | Frontend developers | ## 🚒 Deployment | Document | Purpose | Environment | |----------|---------|-------------| | [DEPLOYMENT.md](DEPLOYMENT.md) | Step-by-step deployment instructions | All | | [docker-compose.yml](docker-compose.yml) | Local development | Local | | [helm/dating-app/README.md](helm/dating-app/README.md) | Kubernetes deployment | K8s | | [helm/dating-app/values-lab.yaml](helm/dating-app/values-lab.yaml) | Home-lab config | Lab | | [helm/dating-app/values-aws.yaml](helm/dating-app/values-aws.yaml) | AWS config | AWS | ## πŸ“– Feature Documentation ### Authentication & Security - Location: `backend/app/auth/` - Files: `utils.py`, `__init__.py` - Features: JWT tokens, bcrypt hashing, authorization ### User Profiles - Location: `backend/app/services/profile_service.py` - Endpoints: `backend/app/routers/profiles.py` - Frontend: `frontend/src/pages/ProfileEditor.jsx` ### Photos - Location: `backend/app/services/photo_service.py` - Endpoints: `backend/app/routers/photos.py` - Frontend: Photo upload in `ProfileEditor.jsx` ### Likes & Matches - Location: `backend/app/services/like_service.py` - Endpoints: `backend/app/routers/likes.py` - Frontend: `frontend/src/pages/Matches.jsx` ### Chat & Messaging - Location: `backend/app/services/chat_service.py` - Endpoints: `backend/app/routers/chat.py` - Frontend: `frontend/src/pages/Chat.jsx` ### Discovery/Swiping - Location: `backend/app/services/profile_service.py` (discover method) - Endpoints: `backend/app/routers/profiles.py` (discover endpoint) - Frontend: `frontend/src/pages/Discover.jsx` ## πŸ”§ Configuration Files ### Environment Variables - Backend: `backend/.env.example` - Frontend: `frontend/.env.example` - Docker Compose: `docker-compose.yml` (inline env) - Kubernetes: `helm/dating-app/values*.yaml` (configmap) ### Helm Configuration - Default: `helm/dating-app/values.yaml` - Lab/On-prem: `helm/dating-app/values-lab.yaml` - AWS: `helm/dating-app/values-aws.yaml` ## πŸ“± Frontend Structure ### Pages - Login: `frontend/src/pages/Login.jsx` - Register: `frontend/src/pages/Register.jsx` - Profile Editor: `frontend/src/pages/ProfileEditor.jsx` - Discover: `frontend/src/pages/Discover.jsx` - Matches: `frontend/src/pages/Matches.jsx` - Chat: `frontend/src/pages/Chat.jsx` ### Styles - Global: `frontend/src/index.css`, `frontend/src/App.css` - Auth: `frontend/src/styles/auth.css` - Profile: `frontend/src/styles/profileEditor.css` - Discover: `frontend/src/styles/discover.css` - Matches: `frontend/src/styles/matches.css` - Chat: `frontend/src/styles/chat.css` ### API Integration - All API calls: `frontend/src/api.js` - Main app: `frontend/src/App.jsx` - Vite config: `frontend/vite.config.js` ## πŸ”Œ Backend API Endpoints ### Authentication - `POST /auth/register` - [auth.py L6](backend/app/routers/auth.py#L6) - `POST /auth/login` - [auth.py L18](backend/app/routers/auth.py#L18) - `GET /auth/me` - [auth.py L30](backend/app/routers/auth.py#L30) ### Profiles - `POST /profiles/` - [profiles.py L6](backend/app/routers/profiles.py#L6) - `GET /profiles/me` - [profiles.py L18](backend/app/routers/profiles.py#L18) - `GET /profiles/{user_id}` - [profiles.py L28](backend/app/routers/profiles.py#L28) - `GET /profiles/discover/list` - [profiles.py L38](backend/app/routers/profiles.py#L38) ### Photos - `POST /photos/upload` - [photos.py L6](backend/app/routers/photos.py#L6) - `GET /photos/{photo_id}` - [photos.py L30](backend/app/routers/photos.py#L30) - `DELETE /photos/{photo_id}` - [photos.py L42](backend/app/routers/photos.py#L42) ### Likes - `POST /likes/{user_id}` - [likes.py L6](backend/app/routers/likes.py#L6) - `GET /likes/matches/list` - [likes.py L18](backend/app/routers/likes.py#L18) ### Chat - `GET /chat/conversations` - [chat.py L6](backend/app/routers/chat.py#L6) - `GET /chat/conversations/{id}/messages` - [chat.py L14](backend/app/routers/chat.py#L14) - `POST /chat/conversations/{id}/messages` - [chat.py L25](backend/app/routers/chat.py#L25) ## πŸ“Š Database Schema - **users** - User accounts - **profiles** - User profile data - **photos** - User photos - **likes** - Like relationships - **conversations** - Chat conversations - **messages** - Chat messages Complete schema: [backend/app/db.py](backend/app/db.py) ## 🐳 Docker & Containers ### Build Images - Backend: `backend/Dockerfile` - Frontend: `frontend/Dockerfile` - Compose: `docker-compose.yml` ### Running Containers ```bash # Local development docker-compose up -d # Check status docker-compose ps # View logs docker-compose logs -f ``` See [QUICK_REFERENCE.md](QUICK_REFERENCE.md) for more commands. ## ☸️ Kubernetes ### Helm Chart - Chart metadata: `helm/dating-app/Chart.yaml` - Values (production): `helm/dating-app/values.yaml` - Values (lab): `helm/dating-app/values-lab.yaml` - Values (AWS): `helm/dating-app/values-aws.yaml` ### Resources - Namespace: `helm/dating-app/templates/namespace.yaml` - Config: `helm/dating-app/templates/configmap.yaml` - Secrets: `helm/dating-app/templates/secret.yaml` - Database: `helm/dating-app/templates/postgres.yaml` - Backend: `helm/dating-app/templates/backend.yaml` - Frontend: `helm/dating-app/templates/frontend.yaml` - Ingress: `helm/dating-app/templates/ingress.yaml` ## πŸ“ Configuration Management ### Kubernetes ConfigMaps Defined in: `helm/dating-app/templates/configmap.yaml` - Backend config - Frontend config - Database URL - API URLs ### Kubernetes Secrets Defined in: `helm/dating-app/templates/secret.yaml` - PostgreSQL credentials - JWT secrets (update values.yaml) ### Docker Compose Environment Inline in: `docker-compose.yml` - Service-specific environment variables - Database credentials - API configuration ## πŸ” Security ### Implemented - JWT authentication with expiration - Password hashing with bcrypt - CORS configuration - Protected endpoints - SQL injection prevention ### Files - Auth utilities: `backend/app/auth/utils.py` - Auth dependency: `backend/app/auth/__init__.py` - Password handling: `backend/app/services/auth_service.py` ### To Implement (Production) See [DEVELOPMENT.md - Security Considerations](DEVELOPMENT.md#security-considerations) ## πŸ§ͺ Testing ### Manual Testing See [QUICK_REFERENCE.md - Testing](QUICK_REFERENCE.md#-testing) ### API Documentation - Interactive Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ### Health Checks - Backend: `GET /health` - Frontend: `GET /health` ## 🚨 Troubleshooting ### Common Issues - Database connection: [DEVELOPMENT.md - Common Issues](DEVELOPMENT.md#common-issues--solutions) - Pod won't start: [DEPLOYMENT.md - Troubleshooting](DEPLOYMENT.md#troubleshooting) - Image pull errors: [QUICK_REFERENCE.md - Kubernetes](QUICK_REFERENCE.md#-kubernetes--helm) ### Debug Commands See [QUICK_REFERENCE.md](QUICK_REFERENCE.md) for: - Docker debugging - Kubernetes debugging - Database troubleshooting - API testing ## πŸ“š External Resources ### Project Documentation - FastAPI: https://fastapi.tiangolo.com/ - React: https://react.dev/ - Vite: https://vitejs.dev/ - Kubernetes: https://kubernetes.io/docs/ - Helm: https://helm.sh/docs/ ### Local Resources - API Docs: http://localhost:8000/docs (when running) - Frontend: http://localhost:3000 or http://localhost (compose) - PostgreSQL docs: https://www.postgresql.org/docs/ ## 🎯 Quick Navigation ### I want to... **Understand the project** 1. Read [README.md](README.md) 2. Review [BUILD_SUMMARY.md](BUILD_SUMMARY.md) 3. Study [DEVELOPMENT.md](DEVELOPMENT.md) **Set up locally** 1. Copy environment files 2. Run `docker-compose up -d` 3. Use [QUICK_REFERENCE.md](QUICK_REFERENCE.md) **Deploy to Kubernetes** 1. Read [DEPLOYMENT.md](DEPLOYMENT.md) 2. Choose values file (lab or AWS) 3. Follow deployment commands in [QUICK_REFERENCE.md](QUICK_REFERENCE.md) **Add a new feature** 1. Read [DEVELOPMENT.md](DEVELOPMENT.md) - Development Workflow 2. Update backend service/router 3. Update frontend API client and components 4. Test with docker-compose **Debug an issue** 1. Check [QUICK_REFERENCE.md](QUICK_REFERENCE.md) 2. Review [DEVELOPMENT.md](DEVELOPMENT.md) - Common Issues 3. Check appropriate logs 4. Consult [DEPLOYMENT.md](DEPLOYMENT.md) for K8s issues **Understand architecture** 1. Read [DEVELOPMENT.md](DEVELOPMENT.md) 2. Review [FILE_INVENTORY.md](FILE_INVENTORY.md) 3. Study key files: - Backend: `backend/app/db.py`, `backend/app/services/` - Frontend: `frontend/src/api.js`, `frontend/src/App.jsx` - Kubernetes: `helm/dating-app/values.yaml` ## πŸ“‹ Documentation Checklist - βœ… Main README with overview and quick start - βœ… Deployment guide with step-by-step instructions - βœ… Development guide with architecture and patterns - βœ… Quick reference with CLI commands - βœ… Build summary with what's included - βœ… File inventory with complete listing - βœ… Documentation index (this file) - βœ… Helm chart README with AWS migration - βœ… Environment templates (.env.example files) - βœ… Inline code documentation --- **Last Updated**: December 16, 2025 **Status**: Complete and Production-Ready **Total Documentation**: 6 markdown files, 10,000+ words