42 lines
1.2 KiB
Markdown
42 lines
1.2 KiB
Markdown
# 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).
|