|
2 | 2 |
|
3 | 3 | [](https://opensource.org/licenses/Apache-2.0) |
4 | 4 | [](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) |
5 | | -[](https://spring.io/projects/spring-boot) |
| 5 | +[](https://spring.io/projects/spring-boot) |
6 | 6 | [](https://gradle.org/) |
7 | 7 | [](https://www.docker.com/) |
8 | 8 | [](contributing) |
@@ -126,7 +126,7 @@ docker-compose up --build |
126 | 126 | Then edit the copied file as needed. |
127 | 127 |
|
128 | 128 | 4. **Run the application** |
129 | | - |
| 129 | + |
130 | 130 | Choose one of the following: |
131 | 131 | - Using Gradle: |
132 | 132 | ```bash |
@@ -202,24 +202,24 @@ The application provides REST API endpoints for user management and event operat |
202 | 202 |
|
203 | 203 | ### User Management API |
204 | 204 |
|
205 | | -| Endpoint | Method | Description | Authentication | |
206 | | -|----------|--------|-------------|---------------| |
207 | | -| `/api/users` | GET | List all users | Admin | |
208 | | -| `/api/users/{id}` | GET | Get user by ID | User/Admin | |
209 | | -| `/api/users` | POST | Create new user | Public | |
210 | | -| `/api/users/{id}` | PUT | Update user | User/Admin | |
211 | | -| `/api/users/{id}` | DELETE | Delete user | User/Admin | |
212 | | -| `/api/auth/login` | POST | User login | Public | |
213 | | -| `/api/auth/logout` | POST | User logout | Authenticated | |
| 205 | +| Endpoint | Method | Description | Authentication | |
| 206 | +| ------------------ | ------ | --------------- | -------------- | |
| 207 | +| `/api/users` | GET | List all users | Admin | |
| 208 | +| `/api/users/{id}` | GET | Get user by ID | User/Admin | |
| 209 | +| `/api/users` | POST | Create new user | Public | |
| 210 | +| `/api/users/{id}` | PUT | Update user | User/Admin | |
| 211 | +| `/api/users/{id}` | DELETE | Delete user | User/Admin | |
| 212 | +| `/api/auth/login` | POST | User login | Public | |
| 213 | +| `/api/auth/logout` | POST | User logout | Authenticated | |
214 | 214 |
|
215 | 215 | ### Event Management API |
216 | 216 |
|
217 | | -| Endpoint | Method | Description | Authentication | |
218 | | -|----------|--------|-------------|---------------| |
219 | | -| `/api/events` | GET | List events | Public | |
220 | | -| `/api/events/{id}` | GET | Get event details | Public | |
221 | | -| `/api/events` | POST | Create event | Admin | |
222 | | -| `/api/events/{id}/register` | POST | Register for event | User | |
| 217 | +| Endpoint | Method | Description | Authentication | |
| 218 | +| --------------------------- | ------ | ------------------ | -------------- | |
| 219 | +| `/api/events` | GET | List events | Public | |
| 220 | +| `/api/events/{id}` | GET | Get event details | Public | |
| 221 | +| `/api/events` | POST | Create event | Admin | |
| 222 | +| `/api/events/{id}/register` | POST | Register for event | User | |
223 | 223 |
|
224 | 224 | ### Response Format |
225 | 225 |
|
@@ -267,12 +267,12 @@ For detailed API documentation, start the application and visit `/swagger-ui.htm |
267 | 267 |
|
268 | 268 | The application supports multiple configuration profiles: |
269 | 269 |
|
270 | | -| Profile | Purpose | Database | Use Case | |
271 | | -|---------|---------|----------|----------| |
272 | | -| `local` | Local development | MariaDB/MySQL | Development with persistent database | |
273 | | -| `test` | Testing | H2 (in-memory) | Automated testing | |
274 | | -| `dev` | Development server | MariaDB/MySQL | Shared development environment | |
275 | | -| `docker-keycloak` | Docker with Keycloak | MariaDB + Keycloak | OIDC authentication testing | |
| 270 | +| Profile | Purpose | Database | Use Case | |
| 271 | +| ----------------- | -------------------- | ------------------ | ------------------------------------ | |
| 272 | +| `local` | Local development | MariaDB/MySQL | Development with persistent database | |
| 273 | +| `test` | Testing | H2 (in-memory) | Automated testing | |
| 274 | +| `dev` | Development server | MariaDB/MySQL | Shared development environment | |
| 275 | +| `docker-keycloak` | Docker with Keycloak | MariaDB + Keycloak | OIDC authentication testing | |
276 | 276 |
|
277 | 277 | ### Quick Configuration Setup |
278 | 278 |
|
@@ -380,7 +380,7 @@ export SPRING_SECURITY_FAILED_LOGIN_ATTEMPTS=5 |
380 | 380 | ### Important Security Settings |
381 | 381 |
|
382 | 382 | - **BCrypt Strength**: Set to `12` or higher for production |
383 | | -- **Session Timeout**: Default `30m`, adjust based on security requirements |
| 383 | +- **Session Timeout**: Default `30m`, adjust based on security requirements |
384 | 384 | - **Account Lockout**: Configure failed login attempts and lockout duration |
385 | 385 | - **CSRF Protection**: Enabled by default, ensure proper configuration for APIs |
386 | 386 |
|
@@ -506,7 +506,7 @@ docker-compose -f docker-compose-keycloak.yml up --build |
506 | 506 | ### Performance and Monitoring |
507 | 507 |
|
508 | 508 | - **Application Metrics**: `/actuator/metrics` |
509 | | -- **Health Check**: `/actuator/health` |
| 509 | +- **Health Check**: `/actuator/health` |
510 | 510 | - **Database Console**: `/h2-console` (when using H2) |
511 | 511 | - **Log Levels**: Configure in `application.yml` or via `/actuator/loggers` |
512 | 512 |
|
@@ -568,16 +568,16 @@ This project supports **Spring Boot DevTools** for live reload and auto-restart. |
568 | 568 |
|
569 | 569 | ### Technology Stack |
570 | 570 |
|
571 | | -| Layer | Technology | Purpose | |
572 | | -|-------|------------|---------| |
573 | | -| **Frontend** | Thymeleaf + Bootstrap | Server-side rendering with responsive UI | |
574 | | -| **Backend** | Spring Boot 3.4+ | Application framework and dependency injection | |
575 | | -| **Security** | Spring Security | Authentication, authorization, CSRF protection | |
576 | | -| **Data** | Spring Data JPA + Hibernate | Object-relational mapping and data access | |
577 | | -| **Database** | MariaDB/MySQL | Primary data persistence | |
578 | | -| **Testing** | JUnit 5 + Selenide | Unit, integration, and UI testing | |
579 | | -| **Build** | Gradle | Dependency management and build automation | |
580 | | -| **Containers** | Docker + Docker Compose | Development and deployment | |
| 571 | +| Layer | Technology | Purpose | |
| 572 | +| -------------- | --------------------------- | ---------------------------------------------- | |
| 573 | +| **Frontend** | Thymeleaf + Bootstrap | Server-side rendering with responsive UI | |
| 574 | +| **Backend** | Spring Boot 3.4+ | Application framework and dependency injection | |
| 575 | +| **Security** | Spring Security | Authentication, authorization, CSRF protection | |
| 576 | +| **Data** | Spring Data JPA + Hibernate | Object-relational mapping and data access | |
| 577 | +| **Database** | MariaDB/MySQL | Primary data persistence | |
| 578 | +| **Testing** | JUnit 5 + Selenide | Unit, integration, and UI testing | |
| 579 | +| **Build** | Gradle | Dependency management and build automation | |
| 580 | +| **Containers** | Docker + Docker Compose | Development and deployment | |
581 | 581 |
|
582 | 582 | --- |
583 | 583 |
|
|
0 commit comments