Competition judging and management system designed for wushu.
Offers ring-based scoring and interfaces for competition management and score displays.
Supports scoring and rulesets for wushu / kung fu competitions.
- Offers hints for common deductions and scoring guidelines
- Scoring interfaces for A, B, and C panel judges
- Deduction validation and timing for A panel judges
- Simple interface with scoring guidelines for B panel judges
- Nandu sheet with descriptive names and point values for C panel judges
./tpz server
Given a file of competition data exists at ./install/pg/competition.sql
:
cd install/scripts
sudo -u postgres ./reset_database.sh
./createuser
Current security relies on a secured local network where all the clients are trusted.
NOTE: The installer will create a user, tpzadmin
to administer the tpz
database.
- Unpack the archive
tar -xzf ten-point-zero.tar.gz
- Go to the installation scripts
cd ten-point-zero/install/bin
- Install or configure PostgreSQL (other SQL dbs, ie. MySQL, may work -- untested)
- Install PostgreSQL:
sudo ./install_pg.sh
- OR configure existing installation:
sudo ./config_pg.sh
- Install PostgreSQL:
- Create the
tpz
database as the superuser (postgres)sudo -u postgres ./setup_database.sh
- Insert competition data as the superuser
sudo -u postgres psql -d tpz --file=competition.sql
- Wired LAN to ensure stable connectivity between all nodes
- Run
go mod tidy
to pull the necessary dependencies - Build scripts target Linux as the platform
- Alternatively: build manually from the project home with
go build [-tags <TAG> [,TAG2 ...]] -o main.go .
- Example:
go build -tags debug,nodb -o tpz.exe .
- Example:
Build the binary with these tags to alter normal behavior
debug
: enable debug outputnodb
: use a mock (in-memory) database for testingpg
: use PostgreSQL database (default)
- Install code generators
- Install the Go stringer tool:
go install golang.org/x/tools/cmd/stringer@latest
- Install the Go stringer tool:
- Generate code (must be run any time respective definitions are changed)
- Generate string enumerations:
go generate ./...
- Generate string enumerations:
app/
- client-side files and server code that create the views for the user.tpz.html
defines the main template- Go code points to the file and provides values to be used with the template
- Other views are organized in their own subdirectories
cmd/
- defines commandline options and flags available for the binaryconfig/
- parses and monitors the configuration filedata/
- models, current state, and interfaces with the underlying databaseinstall/
- files to assist with installing the softwareref/
- official documents relevant to the sport for referenceserver/
- routes for requests and connection management- Requests for views are controlled here
tools/
- convenience apps
User passwords are hashed first with SHA-512 and followed by bcrypt
This software has been used at the following competitions:
- Presidential Wushu Cup (2023)
- Terpwushu Intercollege Wushu Games 2023
- Terpwushu 16th University Wushu Games (2022)
- Terpwushu Intercollege Wushu Games 2022
- Terpwushu 15th University Wushu Games (2019)
- Terpwushu 14th University Wushu Games (2018)
- Terpwushu 13th University Wushu Games (2017)