Merge branch 'main' into remove-plinko
All checks were successful
CI / Get Changed Files (pull_request) Successful in 16s
Label PRs based on size / Check PR size (pull_request) Successful in 17s
CI / Backend Tests (pull_request) Has been skipped
Pull Request Labeler / labeler (pull_request_target) Successful in 6s
CI / Checkstyle Main (pull_request) Has been skipped
CI / Docker backend validation (pull_request) Has been skipped
Claude PR Review / claude-code (pull_request) Successful in 27s
CI / oxlint (pull_request) Successful in 31s
CI / eslint (pull_request) Successful in 44s
CI / prettier (pull_request) Successful in 49s
CI / test-build (pull_request) Successful in 58s
CI / Docker frontend validation (pull_request) Successful in 1m38s
All checks were successful
CI / Get Changed Files (pull_request) Successful in 16s
Label PRs based on size / Check PR size (pull_request) Successful in 17s
CI / Backend Tests (pull_request) Has been skipped
Pull Request Labeler / labeler (pull_request_target) Successful in 6s
CI / Checkstyle Main (pull_request) Has been skipped
CI / Docker backend validation (pull_request) Has been skipped
Claude PR Review / claude-code (pull_request) Successful in 27s
CI / oxlint (pull_request) Successful in 31s
CI / eslint (pull_request) Successful in 44s
CI / prettier (pull_request) Successful in 49s
CI / test-build (pull_request) Successful in 58s
CI / Docker frontend validation (pull_request) Successful in 1m38s
This commit is contained in:
commit
565420103f
4 changed files with 552 additions and 416 deletions
40
README.md
40
README.md
|
@ -15,96 +15,113 @@ Please refer to our [Style Guide](https://git.kjan.de/SZUT/casino/wiki/Frontend#
|
|||
## Tech Stack
|
||||
|
||||
### Frontend
|
||||
- Angular 19
|
||||
|
||||
- Angular 20
|
||||
- TailwindCSS
|
||||
- Keycloak integration
|
||||
- Stripe payment integration
|
||||
|
||||
### Backend
|
||||
|
||||
- Spring Boot (Java)
|
||||
- PostgreSQL database
|
||||
- Keycloak for authentication/authorization
|
||||
- Stripe API for payment processing
|
||||
|
||||
### Infrastructure
|
||||
|
||||
- Docker containerization for all services
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
* [Docker](https://docs.docker.com/get-docker/)
|
||||
* [Docker Compose](https://docs.docker.com/compose/install/) (included with Docker Desktop for Windows and Mac)
|
||||
* Java JDK 17+
|
||||
* Node.js 18+
|
||||
|
||||
- [Docker](https://docs.docker.com/get-docker/)
|
||||
- [Docker Compose](https://docs.docker.com/compose/install/) (included with Docker Desktop for Windows and Mac)
|
||||
- Java JDK 17+
|
||||
- Node.js 18+
|
||||
|
||||
### Setting Up the Environment
|
||||
|
||||
1. Clone the repository
|
||||
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd casino
|
||||
```
|
||||
|
||||
2. Start the Docker services
|
||||
|
||||
```bash
|
||||
cd docker
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
This will start:
|
||||
|
||||
- PostgreSQL database
|
||||
- Keycloak authentication server
|
||||
|
||||
### Running the Backend
|
||||
|
||||
1. Navigate to the backend directory
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
```
|
||||
|
||||
2. Start the Spring Boot application
|
||||
|
||||
```bash
|
||||
./gradlew bootRun
|
||||
```
|
||||
|
||||
You may optionally install [watchexec](https://github.com/watchexec/watchexec?tab=readme-ov-file) and use this command to autorecompile the backend on file changes:
|
||||
|
||||
```bash
|
||||
watchexec -r -e java ./gradlew :bootRun
|
||||
```
|
||||
|
||||
The backend will be available at:
|
||||
- API endpoint: http://localhost:8080
|
||||
- Swagger documentation: http://localhost:8080/swagger
|
||||
|
||||
- API endpoint: <http://localhost:8080>
|
||||
- Swagger documentation: <http://localhost:8080/swagger>
|
||||
|
||||
### Running the Frontend
|
||||
|
||||
1. Navigate to the frontend directory
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
```
|
||||
|
||||
2. Install dependencies
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
3. Start the development server
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
The frontend will be available at http://localhost:4200
|
||||
The frontend will be available at <http://localhost:4200>
|
||||
|
||||
### Local Stripe integration
|
||||
|
||||
1. Install the Stripe CLI
|
||||
https://stripe.com/docs/stripe-cli
|
||||
<https://stripe.com/docs/stripe-cli>
|
||||
|
||||
2. Login to the casino stripe account
|
||||
|
||||
```
|
||||
stripe login --api-key <casino-stripe-secret-key>
|
||||
```
|
||||
|
||||
3. Start webhook forwarding
|
||||
|
||||
```
|
||||
stripe listen --forward-to localhost:8080/webhook
|
||||
```
|
||||
|
@ -114,6 +131,7 @@ stripe listen --forward-to localhost:8080/webhook
|
|||
### Postgres Management
|
||||
|
||||
#### Database cleanup (if needed)
|
||||
|
||||
```bash
|
||||
cd docker
|
||||
docker-compose down
|
||||
|
@ -122,6 +140,7 @@ docker-compose up -d
|
|||
```
|
||||
|
||||
#### Setting up IntelliJ Database View
|
||||
|
||||
1. Run the Docker container with PostgreSQL database
|
||||
2. Open `application.properties` in the resources folder and copy the database URL
|
||||
3. Open the Database tab in IntelliJ
|
||||
|
@ -148,6 +167,7 @@ We follow semantic commit messages to maintain clear project history.
|
|||
Format: `<type>(<scope>): <subject>`
|
||||
|
||||
Where `<type>` is one of:
|
||||
|
||||
- `feat`: New feature
|
||||
- `fix`: Bug fix
|
||||
- `docs`: Documentation changes
|
||||
|
@ -157,6 +177,7 @@ Where `<type>` is one of:
|
|||
- `chore`: Updating build tasks, etc; no production code change
|
||||
|
||||
Examples:
|
||||
|
||||
```
|
||||
feat: add user balance display
|
||||
fix(auth): resolve token expiration issue
|
||||
|
@ -164,6 +185,7 @@ docs: update API documentation
|
|||
```
|
||||
|
||||
References:
|
||||
|
||||
- [Conventional Commits](https://www.conventionalcommits.org/)
|
||||
- [Semantic Commit Messages](https://seesparkbox.com/foundry/semantic_commit_messages)
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -14,16 +14,16 @@
|
|||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular/animations": "^19.0.0",
|
||||
"@angular/cdk": "~19.2.0",
|
||||
"@angular/common": "^19.0.0",
|
||||
"@angular/compiler": "^19.2.4",
|
||||
"@angular/core": "^19.0.0",
|
||||
"@angular/forms": "^19.0.0",
|
||||
"@angular/platform-browser": "^19.0.0",
|
||||
"@angular/platform-browser-dynamic": "^19.0.0",
|
||||
"@angular/router": "^19.0.0",
|
||||
"@fortawesome/angular-fontawesome": "^1.0.0",
|
||||
"@angular/animations": "^20.0.0",
|
||||
"@angular/cdk": "~20.0.0",
|
||||
"@angular/common": "^20.0.0",
|
||||
"@angular/compiler": "^20.0.0",
|
||||
"@angular/core": "^20.0.0",
|
||||
"@angular/forms": "^20.0.0",
|
||||
"@angular/platform-browser": "^20.0.0",
|
||||
"@angular/platform-browser-dynamic": "^20.0.0",
|
||||
"@angular/router": "^20.0.0",
|
||||
"@fortawesome/angular-fontawesome": "^2.0.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.7.2",
|
||||
"@fortawesome/free-brands-svg-icons": "^6.7.2",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.7.2",
|
||||
|
@ -39,12 +39,12 @@
|
|||
"tslib": "^2.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^19.0.0",
|
||||
"@angular/cli": "^19.2.5",
|
||||
"@angular/compiler-cli": "^19.0.0",
|
||||
"@angular/compiler-cli": "^20.0.0",
|
||||
"@angular-devkit/build-angular": "^20.0.0",
|
||||
"@angular/cli": "^20.0.0",
|
||||
"@types/jasmine": "~5.1.0",
|
||||
"angular-eslint": "19.7.1",
|
||||
"eslint": "^9.25.1",
|
||||
"eslint": "^9.28.0",
|
||||
"jasmine-core": "~5.7.0",
|
||||
"karma": "~6.4.0",
|
||||
"karma-chrome-launcher": "~3.2.0",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { ApplicationConfig, provideExperimentalZonelessChangeDetection } from '@angular/core';
|
||||
import { ApplicationConfig, provideZonelessChangeDetection } from '@angular/core';
|
||||
import { provideRouter } from '@angular/router';
|
||||
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
||||
|
||||
|
@ -12,7 +12,7 @@ export const appConfig: ApplicationConfig = {
|
|||
provideRouter(routes),
|
||||
FontAwesomeModule,
|
||||
provideHttpClient(withInterceptors([httpInterceptor])),
|
||||
provideExperimentalZonelessChangeDetection(),
|
||||
provideZonelessChangeDetection(),
|
||||
provideAnimationsAsync(),
|
||||
],
|
||||
};
|
||||
|
|
Reference in a new issue