All checks were successful
Release / Release (push) Successful in 49s
Reviewed-on: #106 |
||
---|---|---|
.gitea/workflows | ||
backend | ||
docker | ||
frontend | ||
.gitignore | ||
CLAUDE.md | ||
LICENSE | ||
README.md | ||
release.config.cjs | ||
renovate.json |
Casino Gaming Platform
An online gaming platform offering various casino-style games with virtual currency support. This project features a modern tech stack with Angular frontend, Spring Boot backend, and complete user authentication.
Please refer to our Style Guide for design guidelines and component standards.
Features
- Multiple casino games: Poker, Blackjack, Slots, Plinko, Liars Dice, and Lootboxes
- User authentication and account management via Keycloak
- Virtual currency deposit system using Stripe payments
- Transaction history tracking
- Responsive modern UI built with Angular and TailwindCSS
Tech Stack
Frontend
- Angular 18
- 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
- Docker Compose (included with Docker Desktop for Windows and Mac)
- Java JDK 17+
- Node.js 18+
Setting Up the Environment
- Clone the repository
git clone <repository-url>
cd casino
- Start the Docker services
cd docker
docker-compose up -d
This will start:
- PostgreSQL database
- Keycloak authentication server
Running the Backend
- Navigate to the backend directory
cd backend
- Start the Spring Boot application
./gradlew bootRun
You may optionally install watchexec and use this command to autorecompile the backend on file changes:
watchexec -r -e java ./gradlew :bootRun
The backend will be available at:
- API endpoint: http://localhost:8080
- Swagger documentation: http://localhost:8080/swagger
Running the Frontend
- Navigate to the frontend directory
cd frontend
- Install dependencies
npm install
- Start the development server
npm run dev
The frontend will be available at http://localhost:4200
Local Stripe integration
-
Install the Stripe CLI https://stripe.com/docs/stripe-cli
-
Login to the casino stripe account
stripe login --api-key <casino-stripe-secret-key>
- Start webhook forwarding
stripe listen --forward-to localhost:8080/webhook
Database Management
Postgres Management
Database cleanup (if needed)
cd docker
docker-compose down
docker volume rm local_lf8_starter_postgres_data
docker-compose up -d
Setting up IntelliJ Database View
- Run the Docker container with PostgreSQL database
- Open
application.properties
in the resources folder and copy the database URL - Open the Database tab in IntelliJ
- Click on the database icon with key in the Database toolbar
- Click the plus sign and select "Datasource from URL"
- Paste the DB URL and select PostgreSQL driver, confirm with OK
- Enter username
lf8_starter
and passwordsecret
- In the Schemas tab, uncheck all options and only check
lf8_starter_db
andpublic
Authentication
The application uses Keycloak for authentication. To get a bearer token for API testing:
- Open
requests/getBearerToken.http
- Click the green arrow next to the request
- Copy the
access_token
from the response
Development Guidelines
Commit Message Format
We follow semantic commit messages to maintain clear project history.
Format: <type>(<scope>): <subject>
Where <type>
is one of:
feat
: New featurefix
: Bug fixdocs
: Documentation changesstyle
: Formatting, missing semicolons, etc; no code changerefactor
: Code refactoringtest
: Adding or refactoring testschore
: Updating build tasks, etc; no production code change
Examples:
feat: add user balance display
fix(auth): resolve token expiration issue
docs: update API documentation
References:
License
This project is licensed under the MIT License - see the LICENSE file for details.