# ASTRAIN ASTRAIN is a dark-mode, mobile-first workout logbook. It runs a Blazor WebAssembly frontend and an ASP.NET Core minimal API backend (both on .NET 10) in a single container. The API is served under `/api`, while the UI is served at `/`. ## Features - Exercises and routines management - Routine runs with last-run weights - User identification via 8-character key in the URL - SQLite storage via Entity Framework Core ## Local development ### Run API (serves UI when published) 1. Restore/build: - `dotnet restore` 2. Run the API: - `dotnet run --project src/ASTRAIN.Api/ASTRAIN.Api.csproj` ### Run Client (for UI-only development) - `dotnet run --project src/ASTRAIN.Client/ASTRAIN.Client.csproj` ## Docker Build and run the single-container setup: - `docker compose -f docker/docker-compose.yml up --build` The app will be available at http://localhost:8080 ## URLs - `/exercises` or `/{userId}/exercises` - `/routines` or `/{userId}/routines` Opening a URL without a user id will generate a new user and redirect to `/{userId}/routines`. ## Data SQLite database file is stored in `src/ASTRAIN.Api/Data/astrain.db` (or `/app/Data/astrain.db` in Docker).