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. :heavy_check_mark: Create pars automatically if the user is close to a supported course. :heavy_check_mark: Accountant can be switched in the middle of the game. :heavy_check_mark: Easy to use.
✔️ Demonstrates Go's concurrency features nicely. ✔️ Server can save and restore it's state. :heavy_check_mark: Each game in memory has it's own mutex instead of one global for all games. :heavy_check_mark: Automatic deployment with Github Actions. :heavy_check_mark: JSON structure is designed to be easily upgradable. :heavy_check_mark: Azure Pipelines & Docker. :heavy_check_mark: Good rendering time. :heavy_check_mark: Hosted on DigitalOcean behind nginx. :heavy_check_mark: 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
- Create MVP
- Circular navigation
- Split frontend to Vue-components
- Create my most played courses automatically based on location
- Light theme because of sunshine
- Let user choose basket count
- Make UI suitable for desktop also
- Use forced style guide for .vue-files
- Create courses automatically in Helsinki/Finland/World
- Add a lot of tests
- Frontend router
- Github actions
- More server-side validations
- If project grows much, refactor to vuex
- PWA (Offline support)
- User specific friends
- Fix typos
- UI improvements
- Show spinner when waiting response
- More organized CSS
- CSS Animations
- Random or selected avatars
- Secure cookie
- Sound effects
- Copy id to clipboard
- Create some graph
- For some users add possibility store game to database (validate time spent)
- When stats is implemented add support for marking OB (out of bounds)