{"id":26484308,"url":"https://github.com/dance-reservation-system/kamann","last_synced_at":"2025-10-04T07:20:20.524Z","repository":{"id":262864950,"uuid":"888394491","full_name":"Dance-reservation-system/Kamann","owner":"Dance-reservation-system","description":"Booking system","archived":false,"fork":false,"pushed_at":"2025-03-16T01:18:04.000Z","size":765,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-16T01:21:12.182Z","etag":null,"topics":["backend","hibernate","java21","jwt","postgresql","springboot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dance-reservation-system.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-14T10:22:04.000Z","updated_at":"2025-03-13T21:46:57.000Z","dependencies_parsed_at":"2024-12-14T11:24:30.860Z","dependency_job_id":"eeb954e4-832f-4f9c-9baa-d1ba6ad8ff3a","html_url":"https://github.com/Dance-reservation-system/Kamann","commit_stats":null,"previous_names":["f1iper/kamann","dance-reservation-system/kamann"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dance-reservation-system%2FKamann","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dance-reservation-system%2FKamann/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dance-reservation-system%2FKamann/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dance-reservation-system%2FKamann/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dance-reservation-system","download_url":"https://codeload.github.com/Dance-reservation-system/Kamann/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244554121,"owners_count":20471173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","hibernate","java21","jwt","postgresql","springboot"],"created_at":"2025-03-20T05:17:53.036Z","updated_at":"2025-10-04T07:20:15.286Z","avatar_url":"https://github.com/Dance-reservation-system.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💃 Dance Studio Reservation System - Backend\n\nA modern reservation system built with **Java 21** and **Spring Boot 3**, featuring role-based access control, membership management, and class scheduling.\n\n![Java](https://img.shields.io/badge/Java-21-007396?logo=openjdk)\n![Spring Boot](https://img.shields.io/badge/Spring_Boot-3.3.5-6DB33F?logo=springboot)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-4169E1?logo=postgresql)\n![Maven](https://img.shields.io/badge/Maven-C71A36?logo=apachemaven)\n![JWT](https://img.shields.io/badge/JWT-000000?logo=jsonwebtokens\u0026logoColor=white)\n![Swagger](https://img.shields.io/badge/Swagger-85EA2D?logo=swagger\u0026logoColor=black)\n[![Build and Test Application](https://github.com/Dance-reservation-system/Kamann/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/Dance-reservation-system/Kamann/actions/workflows/ci-cd.yml)\n\n## 🌟 Features\n\n### 🛡️ Admin\n- Full event lifecycle management\n- User administration with activation/deactivation\n- Financial reporting (weekly/monthly/yearly)\n- Attendance analytics dashboard\n\n### 🕺 Instructor\n- Personal schedule management\n- Real-time attendance tracking\n- Membership validation system\n- Class cancellation notifications\n\n### 💃 Client\n- Calender for booking events\n- Class booking system with membership integration\n- Membership usage tracking\n- Advanced event search filters\n\n## 🛠️ Technologies\n\n- **Core**: Java 21 • Spring Boot 3\n- **Database**: PostgreSQL 16\n- **Security**: JWT Authentication\n- **API Docs**: Swagger/OpenAPI 3.0\n- **CI/CD**: GitHub Actions\n\n## 🚀 Installation\n\n### 1. Clone Repository and change into the project directory\n  ```bash\n  git clone https://github.com/F1iper/kamann.git\n  cd kamann/backend\n  ```\n\n### 2. Create the .env file out of .env-example\n```bash\n  mv .env-example .env\n```\n\n### 3. Containers Setup (App + PostgreSQL 16)\nThe containers contains:\n- java application\n- postgresql database\n\nwhich means there is no need to setup anything more\n\n```bash\ndocker-compose up -d --build\n```\n\n## 📚 API Documentation\n  Access interactive Swagger UI at:\n  **http://localhost:8080/swagger-ui.html**\n\n####  Registration Endpoint:\n  **POST /api/auth/register**\n  \n  Request Body (using RegisterRequest):\n```json\n{\n  \"email\": \"user@example.com\",\n  \"password\": \"password\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"role\": \"CLIENT\"\n}\n```\n  \n####  Authorization: \n  Use JWT token from\n  **POST /api/auth/login**\n  \n  Request Body:\n  ```json\n  {\n  \"email\": \"user@example.com\",\n  \"password\": \"password\"\n  }\n```\n\n\n### 🚦 CI/CD Pipeline\n  Automated builds and tests via GitHub Actions\n  \n  Integration testing with Testcontainers\n  \n  Production secrets managed through GitHub Secrets\n  \n\n### 🖥️ Frontend\n  Client available at:\n**[https://github.com/Osinek280/kamann](https://github.com/Osinek280/kamann)** (in progress)\n\n### 📝 Roadmap\n\n#### Core Improvements\n\n🎫 Membership expiration reminders\n\n🕒 Schedule conflict detection\n\n📊 PDF report generation\n\n#### Infrastructure\n\n📧 SMTP integration for notifications\n\n📈 Prometheus/Grafana monitoring\n\n🔍 Query performance optimization\n\n### 📜 License\n\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdance-reservation-system%2Fkamann","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdance-reservation-system%2Fkamann","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdance-reservation-system%2Fkamann/lists"}