# ASTRAIN Work Log Date: 2026-01-29 ## Summary - Created a .NET 10 solution with a Blazor WebAssembly client, ASP.NET Core minimal API backend, and shared models. - Implemented SQLite storage via EF Core and user ID creation/ensure flow (8-char alphanumeric key). - Added API endpoints for users, exercises, routines, and routine runs under `/api`. - Built a dark, mobile-first UI with bottom navigation, routines/exercises pages, and routine run view. - Added PWA assets (manifest, app icons) and splash/loading screen. - Added Dockerfile and docker-compose for single-container hosting and documentation. ## Key Features Implemented - Routes: `/exercises`, `/{userId}/exercises`, `/routines`, `/{userId}/routines`. - User creation/redirect when missing. - Exercises: list/add/edit. - Routines: list/add/edit, start run, save run, last-run weight preload. - Run UI: checkboxes for completion, weight input with `kg` suffix, completed highlight. - UI: red/white theme, centered + buttons, nav refinement, top brand header. - PWA: `manifest.json`, icon/splash with `logo_square.png`. ## Docker - Single container serves API at `/api` and the client at `/` (published WASM static files). ## Files of Interest - Client: `src/ASTRAIN.Client` - API: `src/ASTRAIN.Api` - Shared: `src/ASTRAIN.Shared` - Docker: `src/ASTRAIN.Api/Dockerfile`, `docker-compose.yml` - PWA: `src/ASTRAIN.Client/wwwroot/manifest.json`