5
0
mirror of https://github.com/AJMicke/KickerELO.git synced 2026-03-11 05:21:07 +01:00

Update README.md

This commit is contained in:
Anton Micke
2025-07-09 17:16:39 +02:00
parent 37f6a2be00
commit de5b2fd8c4
2 changed files with 23 additions and 73 deletions

View File

@@ -5,8 +5,8 @@ It uses **Spring Boot** for the backend, **Vaadin** for the frontend, and **Mari
## Requirements ## Requirements
- **Java 23** or later - **Java 21** or later
- **Maven** (if not integrated) - **Maven**
- **MariaDB** (for production use) - **MariaDB** (for production use)
## Installation ## Installation
@@ -22,50 +22,58 @@ If you want to run the application in production mode, you can skip to [Producti
### Testing ### Testing
To run the application in a test environment, you can use an embedded H2 database. This is useful for development and testing purposes. You can run the application in test mode without setting up a database or authentication. In this mode, any page of
the app is available to any user without a login.
To build the project and run the application with the embedded H2 database, use the following commands: The result data will be stored in an in-memory H2 database. You can change the test data by modifying the `data.sql` file
or just delete it for a clean slate.
To start the application in test mode, run:
```sh ```sh
mvn clean package
mvn spring-boot:run -Ptest mvn spring-boot:run -Ptest
``` ```
The app can then be accessed at `http://localhost:8080`.
### Production ### Production
The application requires a database to store the data. If MariaDB is already installed, make sure the database and In production mode, the application requires an external database to store the data. If MariaDB is already installed, make sure the
credentials are correctly configured in `application-prod.properties` and skip to step [Build the project](#build-the-project). credentials are correctly configured in `application-prod.properties` and the database conforms to the schema given in `schema.sql`.
#### Set up database #### Set up the database
You can quickly start a database using Docker and update its schema using the provided `update-schema.sql` file. If you don't have a database, you can quickly start one using Docker and update its schema using the provided `schema.sql` file:
```sh ```sh
docker run --name kickerelo-db -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=kickerelo -p 3306:3306 -d mariadb:latest docker run --name kickerelo-db -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=kickerelo -p 3306:3306 -d mariadb:latest
docker exec -i kickerelo-db mysql -u root -p kickerelo < update-schema.sql docker exec -i kickerelo-db mysql -u root -p kickerelo < schema.sql
``` ```
#### Set up authentication
In order for the application to start up in production mode, an OIDC provider must be configured in `application-prod.properties`.
Some pages of the app are inaccessible without a login.
#### Build the project #### Build the project
To generate the file `target/kickerelo.jar`: To generate the file `kickerelo.jar` target, run:
```sh ```sh
mvn clean package -Pproduction mvn package -Pproduction
``` ```
### Run the application #### Run the application
You can run the application in two ways: You can run the application in two ways:
1. Using Maven: 1. Directly using Maven:
```sh ```sh
mvn spring-boot:run -Dspring-boot.run.profiles=prod mvn spring-boot:run -Dspring-boot.run.profiles=prod
``` ```
2. Using the built .jar file: 2. Using the .jar file:
```sh ```sh
java -jar target/kickerelo.jar --spring.profiles.active=prod java -jar target/kickerelo.jar --spring.profiles.active=prod

View File

@@ -1,58 +0,0 @@
CREATE SEQUENCE ergebnis1vs1_seq INCREMENT BY 50 START WITH 1;
CREATE SEQUENCE ergebnis2vs2_seq INCREMENT BY 50 START WITH 1;
CREATE SEQUENCE spieler_seq INCREMENT BY 50 START WITH 1;
CREATE TABLE ergebnis1vs1
(
id BIGINT NOT NULL,
gewinner INT NOT NULL,
verlierer INT NOT NULL,
tore_verlierer SMALLINT NOT NULL,
zeitpunkt datetime NULL,
CONSTRAINT pk_ergebnis1vs1 PRIMARY KEY (id)
);
CREATE TABLE ergebnis2vs2
(
id BIGINT NOT NULL,
gewinner_vorn INT NOT NULL,
gewinner_hinten INT NOT NULL,
verlierer_vorn INT NOT NULL,
verlierer_hinten INT NOT NULL,
tore_verlierer SMALLINT NOT NULL,
zeitpunkt datetime NOT NULL,
CONSTRAINT pk_ergebnis2vs2 PRIMARY KEY (id)
);
CREATE TABLE spieler
(
id INT NOT NULL,
name VARCHAR(255) NOT NULL,
elo1vs1 FLOAT NOT NULL,
elo2vs2 FLOAT NOT NULL,
elo_alt FLOAT NULL,
CONSTRAINT pk_spieler PRIMARY KEY (id)
);
ALTER TABLE spieler
ADD CONSTRAINT uc_spieler_name UNIQUE (name);
ALTER TABLE ergebnis1vs1
ADD CONSTRAINT FK_ERGEBNIS1VS1_ON_GEWINNER FOREIGN KEY (gewinner) REFERENCES spieler (id);
ALTER TABLE ergebnis1vs1
ADD CONSTRAINT FK_ERGEBNIS1VS1_ON_VERLIERER FOREIGN KEY (verlierer) REFERENCES spieler (id);
ALTER TABLE ergebnis2vs2
ADD CONSTRAINT FK_ERGEBNIS2VS2_ON_GEWINNER_HINTEN FOREIGN KEY (gewinner_hinten) REFERENCES spieler (id);
ALTER TABLE ergebnis2vs2
ADD CONSTRAINT FK_ERGEBNIS2VS2_ON_GEWINNER_VORN FOREIGN KEY (gewinner_vorn) REFERENCES spieler (id);
ALTER TABLE ergebnis2vs2
ADD CONSTRAINT FK_ERGEBNIS2VS2_ON_VERLIERER_HINTEN FOREIGN KEY (verlierer_hinten) REFERENCES spieler (id);
ALTER TABLE ergebnis2vs2
ADD CONSTRAINT FK_ERGEBNIS2VS2_ON_VERLIERER_VORN FOREIGN KEY (verlierer_vorn) REFERENCES spieler (id);