This is a scoreboard application designed for the Women's Flat Track Derby Association roller derby ruleset. This project is in its early infancy and still has a ways to go before it will be ready for scrimmages or sanctioned bouts. This is a free, open-source project which means users will never need to pay to use it, and anyone from the wonderful roller derby community (or anyone from any community) may contribute to its success!
This app currently supports running in a command-line interface which is an advanced installation method. Users who wish to run this app as a command-line program should read below. An easy installation method is coming soon!
This application offers a command-line interface for advanced users.
To install this application npm and Python 3.13 (or greater) are needed. Clone this repository to a directory on your device. It is recommended to install Astral uv as a Python package manager. Create a Python virtual environment with uv venv. Source the newly created Python environment with .venv/Scripts/activate and then call uv sync to download the required Python dependencies. The Node.js dependencies can be installed by running npm install. Finally, the frontend can be compiled by running npm run build.
After all the required packages have been installed and the frontend has been built, the application can be served on all interfaces. Run the application with python backend/src/main.py 0.0.0.0. For more information on how to use the command-line interface, run python backend/src/main.py --help.
The primary goal of this app is to make it easier for new NSOs to learn how to operate the scoreboard. This app achieves this goal by exposing users to a simpler interface and a streamlined workflow.
This app also allows for roller derby statistics as a use-case. In addition to WFTDA IGRF stats, skaters and coaches will be able to use this app to gain insights about individual performances in bouts. For example, coaches will be able glean which skaters are most successful against a particular wall. This will ensure that coaches have the information that they need to field the best skaters for the jam. Skaters will be able to track their stats over time. This will ensure that skaters can set smart goals to improve their skills over time.
This project uses the Python framework, FastAPI, to host an ASGI server backend. Saved data is stored using SQLAlchemy as an ORM framework and data is serialized using Pydantic models. The Typescript frontend uses React, the popular Javascript web-development framework. Tanstack Query is used for data caching and Mantine is used as a UI framework. WebSockets are used for bidirectional, client-server communication.
A proper server-side GUI is planned for this app, but it is not yet supported. Until then, this app is command-line only.
This app will be distributed using a Python bundler, such as pyinstaller, so that users may easily run this app. Python bundling is not yet supported.
If you'd like to contribute to this app, more information can be found in the NSO Bridge wiki.