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:
FAIRS\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:
FAIRS\start_on_windows.batBuild desktop artifacts:
release\tauri\build_with_tauri.batBuild output:
release/windows/installersrelease/windows/portable
Runtime profile files:
- Template:
FAIRS/settings/.env.example - Active profile:
FAIRS/settings/.env - Database settings:
FAIRS/settings/configurations.json
Initialize .env once:
copy /Y FAIRS\settings\.env.example FAIRS\settings\.envUse .env to control host/port/runtime behavior and configurations.json for database mode/settings.
Database backend selection is defined in FAIRS/settings/configurations.json (database.embedded_database).
SQLite(embedded_database=true):- The application initializes the database automatically on startup only when
FAIRS/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:
FAIRS\setup_and_maintenance.batSelect Initialize database to run FAIRS/scripts/initialize_database.py.
FAIRS/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:
FAIRS\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:
tests\run_tests.batOptional direct pytest commands:
uv run pytest -q tests\unit
uv run pytest -q tests\e2eUse:
FAIRS\setup_and_maintenance.batAvailable maintenance actions include log cleanup, local uninstall/runtime cleanup, desktop build artifact cleanup, and database initialization.
- Application data and artifacts:
FAIRS/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
Overview of dataset upload, dataset selection, and checkpoint management:

Synthetic generator wizard (step configuration for training setup):

Inference controls with checkpoint/dataset pairing and live session panel:

This project is licensed under the MIT License. See LICENSE for details.