Concurrent score tracking app for disc golf and golf. Made with Go & Vue. Live demo available. Automatic deployment with Github Actions.
It seems no one wants to be an accountant when we are playing. I wrote this so that the accountant can be switched in the middle of the game.
Created for mobile use. For best usability add app to homescreen.
Live.
Create pars automatically if the user is close to a supported course.
Accountant can be switched in the middle of the game.
Easy to use.
Demonstrates Go’s concurrency features nicely.
Server can save and restore it’s state.
Each game in memory has it’s own mutex instead of one global for all games.
Automatic deployment with Github Actions.
JSON structure is designed to be easily upgradable.
Azure Pipelines & Docker.
Good rendering time.
Hosted on DigitalOcean behind nginx.
nginx gzip & cache (may vary during development).
Clone repo
git clone https://github.com/tuommii/scoreboard.git
Start server
cd scoreboard
make
Start dev-server in a new terminal window
cd frontend
npm i
npm run serve
Go to: http://localhost:8081
Every time when code is pushed to production branch, new binary will be compiled and sended to server.
Build
docker build . -t scoreboard
Run
docker run -p 8000:8000 scoreboard -port="8000" -static="public"
{
"id": "jt1",
"basketCount": 1,
"active": 1,
"hasBooker": true,
"baskets": {
"1": {
"orderNum": 1,
"par": 3,
"scores": {
"Jian Yang": {
"score": 3,
"total": 0,
"ob": 0
},
"Tiger King": {
"score": 3,
"total": 0,
"ob": 0
}
}
}
},
"createdAt": "2020-05-01T20:06:42.283050923+03:00",
"editedAt": "2020-05-01T20:06:42.283052041+03:00",
"name": "Default"
}
Contributions are more than welcome