Complete ecosystem for race management, registration, timing, and web interface
--- π― Under full development since January 2024, this app is on target to release v1.2 or version 1.3 which will be the last release from the 2025 V1.x codebase with the fully integrated TRMS setup, as well as the free open source MIT Licensed TRTS.
--- π³ As of August 2025, we are in the current development of a single click script, which builds, istalls TRMS Server, and configured Docker Containers to host various services. We have standardized on using either the Docker debian-latest or the redhat/ubi89 as the console server software. The benefits of this will be a quick intall, with a tested codebase, which will allow for Midwest Event Services, Inc. to easily support our users in the event they need any fixes. We have a standard configuration for a Wordpress database server (physical, virtual or docker - the installs are identical, repeatable and supportable), a standard configuration for a Wordpress web server (physical, virtual or docker - the installs are identical, repeatable and supportable), a standard configuration for a Race Database server physical, virtual or docker - the installs are identical, repeatable and supportable)
--- β± We are working on really develiping the richness that goes into the ALWAYS-FREE TRTS: The Race Timing Solution. This includes a new timing clock application that syncs the start time from the database, and hosts a full screen monitor (or HDMI TV) standard configuration for a timing apps system, either a laptop or computer that will be the actual scoring apps server.
--- We also have a case for a single All-in-on, laptop or NUC mini-pc and monitor, that will ack as a timing clock synced to the race clock, another single All-in-1, laptop or NIC mini-pc and monitor, for a timing point about 50 meters from the finish line, so that we can kinow and announce for "Everyone put your hands together for John Smith, from Carmel, Indiana. John is currently in 3rd place in his age group. Put your hands together for John, as he crosses thw finish line.
--- In Q3, we have been developing Containers Docker & Kubernatis with monitoring the servers/services.Additionally, we can host your Wordpress DB, Wordpress Web and your PostgresSQL Race Database instances in the cloud. That would leave you will a local intall for TRTS: The Race Timing Solution for raceday tiing apps, which include the RFID Polling service, the race timing clock, the race timing application GUI and the Announcer application.
TRMS: The Race Management Solution/
βββ π TRRS: The Race Registration Solution/ # Race registration management
βββ β±οΈ TRTS: The Race Timing Solution/ # Race timing (from GitHub)
βββ π TRWS: The Race Web Solution/ # Unified web interface
βββ ποΈ TRDS: The Race Data Solution/ # Shared data & configuration
-
Install GTK4 dependencies:
# Ubuntu/Debian sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-4.0 gir1.2-adw-1 # Fedora sudo dnf install python3-gobject gtk4 libadwaita # macOS brew install pygobject3 gtk4 libadwaita
-
Setup TRMS:
chmod +x TRMS_Complete_Setup.sh ./TRMS_Complete_Setup.sh
-
Install Python dependencies:
pip install -r requirements.txt
-
Launch the GTK4 GUI (supports both Wayland and X11):
# Auto-detect display server (recommended) ./trms_launcher_gui.py # Force Wayland GDK_BACKEND=wayland ./trms_launcher_gui.py # Force X11 (fallback) GDK_BACKEND=x11 ./trms_launcher_gui.py
# Use console-based launcher
./trms_launcher.sh
# Or launch individual components
./run_trrs_console.sh # Registration console
./run_trts_console.sh # Timing console- Modern graphical interface for managing all TRMS components
- Real-time status monitoring of all services
- Integrated console output for debugging
- One-click launching of all applications
- See GTK4_GUI_README.md for details
- Text-based interfaces for terminal users
- Scriptable operations for automation
- Lightweight and fast
- Console:
./run_trrs_console.sh - GUI: Via GTK4 launcher
- Features: Race management, participant registration, payment processing
- Console:
./run_trts_console.sh - GUI: Available (from GitHub repository)
- Features: Race timing, chip timing, results processing
- Status: Coming soon
- Features: Unified web interface for all components
- Shared libraries for database, configuration, and models
- Cloud/local database support with automatic failover
- Centralized logging and configuration management
TRMS supports both cloud and local databases with automatic failover:
# Local database (default)
export DB_HOST=localhost
export DB_PASSWORD=your_password
# Cloud database (optional)
export CLOUD_DB_HOST=your.cloud.host
export USE_CLOUD_DB=true
# General settings
export TRMS_ENV=development- Attempts cloud connection first (if configured)
- Falls back to local database automatically
- Status visible in all applications and GUI launcher
- Each solution is self-contained
- Shared libraries in
TRDS/libraries/ - Centralized configuration in
TRDS/config/ - Unified logging in
TRDS/logs/
- Update models in
TRDS/libraries/models/ - Add database migrations to
TRDS/sql/migrations/ - Implement features in respective solutions
- Update configuration if needed
- Real-time status dashboard
- Visual indicators for all components
- Database connection monitoring
- Environment detection
./trms_launcher.sh
# Select option 6: System Status- Launch GTK4 GUI:
./trms_launcher_gui.py - Click "Console Application" under TRRS card
- Select "Race Management" β "Create New Race"
- Fill in race details
- Race is available to both TRRS and TRTS
- Launch:
./run_trrs_console.sh - Select: "1. Race Management"
- Select: "1. Create New Race"
- Fill in race details
- Race is available to both TRRS and TRTS
- Launch from GUI or use:
./run_trts_console.sh - Load race from shared database
- Configure timing settings
- Start race timing
- Results saved to shared database
| Interface | Type | Description | Best For |
|---|---|---|---|
| GTK4 Launcher | GUI | Modern graphical launcher | Desktop users, visual management |
| Console Launcher | TUI | Text-based menu system | SSH sessions, automation |
| TRRS Console | CLI | Registration management | Data entry, batch operations |
| TRTS GUI | GUI | Timing interface | Race day operations |
| TRTS Console | CLI | Timing management | Remote timing, scripting |
- Ensure GTK4 and libadwaita are installed
- Check PyGObject installation:
python3 -c "import gi" - Wayland (modern Linux): Check
echo $WAYLAND_DISPLAY - X11 (legacy/fallback): Set
export DISPLAY=:0for SSH - Force backend if needed:
GDK_BACKEND=waylandorGDK_BACKEND=x11 - See GTK4_GUI_README.md for more
- Check environment variables
- Verify database is running
- Check network connectivity for cloud databases
- Review logs in
TRDS/logs/
- Ensure you're in TRMS base directory
- Check virtual environment activation
- Verify TRMS_BASE environment variable
- TRTS is cloned from GitHub automatically
- If missing, manually clone:
git clone https://github.com/tjtryon/TRTS-The-Race-Timing-Solution.git \ "TRTS: The Race Timing Solution"
- Python 3.8+
- 2GB RAM
- 100MB disk space
- MariaDB/MySQL 5.7+
- Python 3.10+
- 4GB RAM
- GTK 4.6+
- libadwaita 1.2+
- Wayland compositor (GNOME 40+, KDE Plasma 5.24+) or X11
- Hardware acceleration
- Work within the established directory structure
- Use shared libraries for common functionality
- Follow naming conventions (TRXS format)
- Update documentation and requirements
- Test with both GUI and console interfaces
- GTK4 GUI Documentation
- Component docs in each solution's
docs/directory - API documentation in
TRDS/docs/api/ - Database schema in
TRDS/sql/
This project is open source under the MIT License. See LICENSE file for details.
- GUI Issues: See GTK4_GUI_README.md
- Documentation: Check each solution's
docs/directory - Logs: Review logs in
TRDS/logs/ - System Status: Use GUI launcher or console menu
- GitHub Issues: Report bugs and feature requests
- TRTS: TJ Tryon's Race Timing Solution
- GTK Team: For the GTK4 framework
- GNOME Project: For libadwaita
- Community: For feedback and contributions
TRMS provides a complete, professional solution for race management with both modern GUI and efficient console interfaces.