https://github.com/dance-reservation-system/kamann
Booking system
https://github.com/dance-reservation-system/kamann
backend hibernate java21 jwt postgresql springboot
Last synced: 8 months ago
JSON representation
Booking system
- Host: GitHub
- URL: https://github.com/dance-reservation-system/kamann
- Owner: Dance-reservation-system
- Created: 2024-11-14T10:22:04.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-16T01:18:04.000Z (about 1 year ago)
- Last Synced: 2025-03-16T01:21:12.182Z (about 1 year ago)
- Topics: backend, hibernate, java21, jwt, postgresql, springboot
- Language: Java
- Homepage:
- Size: 747 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 💃 Dance Studio Reservation System - Backend
A modern reservation system built with **Java 21** and **Spring Boot 3**, featuring role-based access control, membership management, and class scheduling.






[](https://github.com/Dance-reservation-system/Kamann/actions/workflows/ci-cd.yml)
## 🌟 Features
### 🛡️ Admin
- Full event lifecycle management
- User administration with activation/deactivation
- Financial reporting (weekly/monthly/yearly)
- Attendance analytics dashboard
### 🕺 Instructor
- Personal schedule management
- Real-time attendance tracking
- Membership validation system
- Class cancellation notifications
### 💃 Client
- Calender for booking events
- Class booking system with membership integration
- Membership usage tracking
- Advanced event search filters
## 🛠️ Technologies
- **Core**: Java 21 • Spring Boot 3
- **Database**: PostgreSQL 16
- **Security**: JWT Authentication
- **API Docs**: Swagger/OpenAPI 3.0
- **CI/CD**: GitHub Actions
## 🚀 Installation
### 1. Clone Repository and change into the project directory
```bash
git clone https://github.com/F1iper/kamann.git
cd kamann/backend
```
### 2. Create the .env file out of .env-example
```bash
mv .env-example .env
```
### 3. Containers Setup (App + PostgreSQL 16)
The containers contains:
- java application
- postgresql database
which means there is no need to setup anything more
```bash
docker-compose up -d --build
```
## 📚 API Documentation
Access interactive Swagger UI at:
**http://localhost:8080/swagger-ui.html**
#### Registration Endpoint:
**POST /api/auth/register**
Request Body (using RegisterRequest):
```json
{
"email": "user@example.com",
"password": "password",
"firstName": "John",
"lastName": "Doe",
"role": "CLIENT"
}
```
#### Authorization:
Use JWT token from
**POST /api/auth/login**
Request Body:
```json
{
"email": "user@example.com",
"password": "password"
}
```
### 🚦 CI/CD Pipeline
Automated builds and tests via GitHub Actions
Integration testing with Testcontainers
Production secrets managed through GitHub Secrets
### 🖥️ Frontend
Client available at:
**[https://github.com/Osinek280/kamann](https://github.com/Osinek280/kamann)** (in progress)
### 📝 Roadmap
#### Core Improvements
🎫 Membership expiration reminders
🕒 Schedule conflict detection
📊 PDF report generation
#### Infrastructure
📧 SMTP integration for notifications
📈 Prometheus/Grafana monitoring
🔍 Query performance optimization
### 📜 License
This project is licensed under the MIT License.