The Personal Lifecycle Tracker implements a zero-trust, multi-service architecture:
┌────────────────────────────────────────────────────────┐
│ Production │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Caddy 2 Reverse Proxy (Frontend Container) :80 │ │
│ │ ├── / -> React 19 SPA (Static Dist) │ │
│ │ ├── /api/* -> Reverse proxy to Backend :8000 │ │
│ │ └── /health -> Reverse proxy to Backend :8000 │ │
│ └───────────────────────┬──────────────────────────┘ │
│ │ │
│ ┌───────────────────────▼──────────────────────────┐ │
│ │ FastAPI Backend Service (Python 3.11) :8000 │ │
│ │ ├── Auth & Multi-User JWT Engine │ │
│ │ ├── Lifecycle Items (Renewals, Warranties, Maint)│ │
│ │ ├── Groups & Invitation Engine │ │
│ │ └── Reminders & Daily Digest Service │ │
│ └───────────────────────┬──────────────────────────┘ │
│ │ │
│ ┌───────────────────────▼──────────────────────────┐ │
│ │ PostgreSQL 16 Database :5432 │ │
│ │ └── Automatic schema migration & pooling │ │
│ └──────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘
contracts/openapi.yaml.The production architecture is deployed serverless on AWS:
[User Browser] ──HTTPS──> [AWS CloudFront CDN Edge]
│
┌──────────────────┴──────────────────┐
/* (React 19 SPA) /api/* & /health
│ │
▼ ▼
[Amazon S3 Private] [AWS Lambda Web Adapter]
│
▼
[FastAPI Backend Container]
│
▼
[Neon Serverless Postgres]
alex@example.com / password123