This is a scoreboard application designed for the Women's Flat Track Derby Association roller derby ruleset. 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 is alpha software. It still has many bugs that could seriously impact your game. Use this app at your own risk!
Click your operating system below to download NSO Bridge:
If you would prefer to run the server from the command-line, see the command-line interface section below.
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 simple 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 and team performances in bouts.
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 and Vite, the popular Javascript web-development frameworks. Tanstack Query is used for data caching. The Mantine library is used for UI design with assistance from Tailwind CSS. WebSockets are used for bidirectional, client-server communication.
The backend server is provided a GUI written in PySide6. This app is distributed using the Python bundler PyInstaller so that users may easily run this app. Additional frontend documentation and frontend testing is provided by Storybook.
Everything in this app was created and reviewed by a human being. The code is heavily documented to ensure that it is maintainable and easy to make contributions. If you'd like to contribute to this app, more information and guides can be found in the NSO Bridge wiki.
This application offers a command-line interface for advanced users.
To install this application npm and Python 3.12 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 on Windows or source .venv/bin/activate on Linux or MacOS 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 runningnpm 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.