A web application where users save airline reservations and track changes to them over time. The system retrieves reservation data from carrier APIs, normalizes it, detects changes between refreshes, and serves it through a REST API.
Atlas/
├── worker/ Reservation retrieval and database writes
├── backend/ Read-only API server
├── frontend/ Web UI
└── CLAUDE.md Architecture decisions and project context
Two containerized Python services sharing a PostgreSQL database, split by read/write responsibility, plus a web frontend. The split exists because the worker runs headless Chromium (heavy) while the API server just serializes JSON (light).
- Worker — Authenticates with airline APIs, fetches and normalizes reservation data, writes to the database. Supports on-demand retrieval and periodic background sweeps.
- Backend — Read-only FastAPI server. Serves normalized reservation data as JSON via a REST API.
- Frontend — Web UI for managing and viewing reservations.
See each service's readme for details, and claude.md for full
architecture rationale.