FAIRS is a research web application for roulette training and inference experiments. It includes:
- A FastAPI backend for dataset ingestion, training orchestration, checkpoint management, inference sessions, and persistence.
- A React + Vite frontend for training and inference workflows.
- An optional Tauri desktop shell for packaged Windows distribution.
Work in Progress: This project is still under active development. You may encounter bugs, issues, or incomplete features.
Run from repository root:
start_on_windows.batThe launcher prepares local runtimes/dependencies and starts backend + frontend.
Prerequisites:
- Rust installed with default toolchain configured (
rustup default stable). - Local runtimes already prepared at least once:
start_on_windows.batBuild desktop artifacts:
release\tauri\build_with_tauri.batBuild output:
release/windows/installersrelease/windows/portable
Runtime profile files:
- Template:
settings/.env.example - Active profile:
settings/.env - Database settings:
settings/configurations.json
Initialize .env once:
copy /Y settings\.env.example settings\.envUse .env to control host/port/runtime behavior and configurations.json for database mode/settings.
Database backend selection is defined in settings/configurations.json (database.embedded_database).
SQLite(embedded_database=true):- The application initializes the database automatically on startup only when
app/resources/database.dbis missing. - Initialization creates schema objects and seeds required data.
- If
database.dbalready exists, startup skips initialization.
- The application initializes the database automatically on startup only when
PostgreSQL(embedded_database=false):- The application does not initialize PostgreSQL automatically during startup.
- Initialization is manual via:
setup_and_maintenance.batSelect Initialize database to run app/scripts/initialize_database.py.
app/scripts/initialize_database.py can also initialize SQLite when SQLite mode is selected, but this is normally unnecessary because SQLite initialization is already handled automatically by app startup.
- Start the app:
start_on_windows.bat - Open the UI and upload or generate dataset data.
- Run training and manage checkpoints.
- Start inference sessions using a selected checkpoint.
- Optionally package a desktop build with Tauri when needed.
Run full automated tests:
run_tests.batOptional direct pytest commands:
uv run pytest -q app/tests/unit
uv run pytest -q app/tests/e2eUse:
setup_and_maintenance.batAvailable maintenance actions include log cleanup, local uninstall/runtime cleanup, desktop build artifact cleanup, and database initialization.
- Application data and artifacts:
app/resources - Launcher-managed runtimes and environment:
runtimes
Detailed operational guidance is available in:
assets/docs/USER_MANUAL.mdassets/docs/PACKAGING_AND_RUNTIME_MODES.mdassets/docs/ARCHITECTURE.md
Desktop view of dataset upload, dataset selection, checkpoint panels, and the live training monitor.
Mobile rendering of the training workspace for narrow viewports.
Inference controls for checkpoint and dataset pairing with session playback history.
This project is licensed under the MIT License. See LICENSE for details.


