App for chess club.
- Java 17
- Spring 6
- Spring Boot 3
- React
- EPIC: User profiles
- DESCRIPTION: As a user, I would like to be able to login using username and password, then access and edit my user profile (username, name, password, email)
- TECH: Reactive login (rerender components on login/logout)
- EPIC: Tournament participant registration
- DESCRIPTION: As a user, I would like to register on tournament by my own on the tournament page.
- UI: Button "Participate in tournament"
- EPIC: Tournament management
- DESCRIPTION: As a user with admin role, I would like to create and manage tournaments.
- Create tournament, specify the date and location (address) of the tournament according to the Swiss System
- See the tournament overall results as well as intermediate round results.
- The results are the table with the participant data such as:
- Official name and last name
- Unofficial temporary nickname (for fun)
- Points (1 point for win, 0 points for loose and 0.5 points for a draw)
- Buchholz coefficient (see Wiki)
- The results are the table with the participant data such as:
- DESCRIPTION: As a user with admin role, I would like to create and manage tournaments.
-
Install Maven and Java 17
curl -s "https://get.sdkman.io" | bash
Then close and open terminal.
sdk install maven
-
Run
make dev_java_build
-
Setup Backend (Java) App properties
Create new file
./src/main/resources/application-local.properties
directory.spring.datasource.url=jdbc:postgresql://localhost:9797/postgres spring.datasource.username=postgres spring.datasource.password=password ## Create yours Google Oauth2 credentials # (https://support.google.com/cloud/answer/6158849?hl=en) spring.security.oauth2.client.registration.google.clientId=CLIENT_ID spring.security.oauth2.client.registration.google.clientSecret=SECRET_ID
-
Run to run docker container with postgres:
docker run -d \ --name chessgrinder_postgres \ -e POSTGRES_PASSWORD=password \ -p 9797:5432\ postgres
-
Setup nginx:
brew install nginx # (command for macOS only)
(command for macOS only)
cd deployment/local
Edit local_nginx_setup.sh, change path to nginx conf directory
sudo chmod +x local_nginx_setup.sh
sudo ./local_nginx_setup.sh
sudo brew services restart nginx
-
Start java app with local profile
-
Run frontend app:
- Install NodeJS 16
- Frontend App is located in
frontend
directorycd frontend
- Install frontend dependencies
npm install
- Run application in development mode
npm start