Skip to content

jensborch/go-foosball

Repository files navigation

Foosball tournament applications

Go CI build JS CI build Go Report Card codecov

Go-foosball is an application to manage your foosball tournaments. It supports multiple tournaments, and you can easily add players and tables. Each players receives a rating based on a chess like rating system (Elo).

Screenshot

The application is using a REST service back-end written in Go and a front-end created using TypeScript and React.

Run

Start the application on MacOS using:

./go-foosball-darwin

or on Linux:

./go-foosball-linux

or on Windows:

go-foosball.exe

The GUI can then be accessed using [http://localhost:8080/]

Use --help to list command line options - e.g.:

./go-foosball-darwin --help

This will output:

Usage of ./go-foosball-darwin:
  -db string
        the database file (default "foosball.db")
  -debug
        enable debug
  -port uint
        the port number (default 8080)

Build

Build the back-end using:

make build

or

go build -o go-foosball

Go must be installed.

The front-end will be embed in the back-end executable when build using:

make client build

but back-end and front-end can also run separately. To only build the front-end use:

cd client
pnpm build

To only start the front-end use:

cd client
pnpm start

Node.js version 14 or above and Yarn must be installed.

Test

Test the back-end using:

make test

or

go test -cover ./...

Test the front-end using:

cd client
pnpm test

Swagger

make swagger

or

$(go env GOPATH)/bin/swag init

Swagger can be viewed using [http://localhost:8080/swagger/index.html]