# 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`
