From 9fbb33926172f861b195265a4c96487756799168 Mon Sep 17 00:00:00 2001 From: Jan Klattenhoff Date: Wed, 12 Mar 2025 14:04:10 +0100 Subject: [PATCH] docs: update README for Casino Gaming Platform details --- README.md | 167 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 143 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index b98aaae..c904f8c 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,153 @@ -# How to: Semantic Commit Messages +# Casino Gaming Platform -See how a minor change to your commit message style can make you a better programmer. +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. + +![Casino Gaming Platform](/frontend/public/blackjack.webp) + +## 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](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 +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 +``` + +The backend will be available at: +- 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 + +## Database Management + +### Postgres Management + +#### Database cleanup (if needed) +```bash +cd docker +docker-compose down +docker volume rm local_lf8_starter_postgres_data +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 +4. Click on the database icon with key in the Database toolbar +5. Click the plus sign and select "Datasource from URL" +6. Paste the DB URL and select PostgreSQL driver, confirm with OK +7. Enter username `lf8_starter` and password `secret` +8. In the Schemas tab, uncheck all options and only check `lf8_starter_db` and `public` + +## Authentication + +The application uses Keycloak for authentication. To get a bearer token for API testing: + +1. Open `requests/getBearerToken.http` +2. Click the green arrow next to the request +3. Copy the `access_token` from the response + +## Development Guidelines + +### Commit Message Format + +We follow semantic commit messages to maintain clear project history. Format: `(): ` -`` is optional - -## Example +Where `` is one of: +- `feat`: New feature +- `fix`: Bug fix +- `docs`: Documentation changes +- `style`: Formatting, missing semicolons, etc; no code change +- `refactor`: Code refactoring +- `test`: Adding or refactoring tests +- `chore`: Updating build tasks, etc; no production code change +Examples: ``` -feat: add hat wobble -^--^ ^------------^ -| | -| +-> Summary in present tense. -| -+-------> Type: chore, docs, feat, fix, refactor, style, or test. +feat: add user balance display +fix(auth): resolve token expiration issue +docs: update API documentation ``` -More Examples: - -- `feat`: (new feature for the user, not a new feature for build script) -- `fix`: (bug fix for the user, not a fix to a build script) -- `docs`: (changes to the documentation) -- `style`: (formatting, missing semi colons, etc; no production code change) -- `refactor`: (refactoring production code, eg. renaming a variable) -- `test`: (adding missing tests, refactoring tests; no production code change) -- `chore`: (updating grunt tasks etc; no production code change) - References: +- [Conventional Commits](https://www.conventionalcommits.org/) +- [Semantic Commit Messages](https://seesparkbox.com/foundry/semantic_commit_messages) -- https://www.conventionalcommits.org/ -- https://seesparkbox.com/foundry/semantic_commit_messages -- http://karma-runner.github.io/1.0/dev/git-commit-msg.html +## License + +[License information here] \ No newline at end of file