https://github.com/priyansusahoo/bluecomet
A scalable Event Management System
https://github.com/priyansusahoo/bluecomet
docker event-management graphql java kafka keycloak microservices mysql open-source openapi rest-api spring-boot swagger
Last synced: 5 months ago
JSON representation
A scalable Event Management System
- Host: GitHub
- URL: https://github.com/priyansusahoo/bluecomet
- Owner: Priyansusahoo
- License: mit
- Created: 2025-03-03T23:11:43.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-21T14:28:28.000Z (about 1 year ago)
- Last Synced: 2025-03-21T15:25:56.594Z (about 1 year ago)
- Topics: docker, event-management, graphql, java, kafka, keycloak, microservices, mysql, open-source, openapi, rest-api, spring-boot, swagger
- Language: Java
- Homepage:
- Size: 106 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
##### NOTE - *(Development in Progress)*
## Overview
The `BlueComet` is a scalable Event-Management-System, secure platform designed for organizations to manage event registrations efficiently. The system allows users to register for events, while admins can create, update, and cancel events. It follows industry best practices, leveraging modern technologies to ensure high performance and security.
## π‘ Features
β³ Secure authentication with Keycloak (OAuth 2.0, OpenID Connect) -
β
RESTful API design with industry-standard best practices
β³ GraphQL support for optimized data fetching
β³ Event-driven architecture using Kafka for real-time notifications
β
Comprehensive logging, error handling, and validation
β
Swagger API documentation & JavaDocs for maintainability
β
Scalable with MySQL as the database
β³ Dockerized for easy deployment
## π οΈ Tech Stack - *Can change based on requirements*
- **Backend:** Java, Spring (future roadmap)
- **Database:** MySQL (current) -> PostgreSQL (will migrate)
- **Security:** Spring Security
- **Messaging:** Apache Kafka / RabbitMQ
- **API Design:** REST, GraphQL
- **Deployment:** Docker, Kubernetes (future roadmap)
- **Testing:** JUnit, Mockito, RESTAssured, Cucumber
- **Documentation:** Swagger, JavaDocs
## π Getting Started
### Prerequisites
- Java 21
- MySQL
- Maven (for dependency management)
### βοΈ Setup & Installation
1. `Clone` / `Fork` the repository:
2. Set up environment variables (or use `application.properties`):
```properties
# Spring Application Properties
spring.application.name = event-planner
# Spring Datasource Properties
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/event_db?useSSL=false&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = root
# Spring JPA Properties
spring.jpa.database-platform = org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto = update
spring.jpa.show-sql = true
# Server Properties
server.port = 8080
server.servlet.context-path = /api
```
4. β‘ Run the application:
## π API Documentation
For full API details, refer to **Swagger UI**: `http://localhost:8080/swagger-ui.html`
## π Project Structure
```
.
βββ java
βΒ Β βββ com
βΒ Β βββ bluecomet
βΒ Β βββ event_planner
βΒ Β βββ advice
βΒ Β βΒ Β βββ GlobalExceptionHandler.java
βΒ Β βββ config
βΒ Β βΒ Β βββ OpenAPIConfig.java
βΒ Β βββ EventPlannerApplication.java
βΒ Β βββ exception
βΒ Β βΒ Β βββ EventAlreadyCancelledException.java
βΒ Β βΒ Β βββ EventNotFoundException.java
βΒ Β βΒ Β βββ RegistrationAlreadyCancelledException.java
βΒ Β βΒ Β βββ RegistrationAlreadyExistsException.java
βΒ Β βΒ Β βββ RegistrationNotFoundException.java
βΒ Β βββ mapper
βΒ Β βΒ Β βββ EventMapper.java
βΒ Β βΒ Β βββ EventRegistrationMapper.java
βΒ Β βββ model
βΒ Β βΒ Β βββ entity
βΒ Β βΒ Β βΒ Β βββ Event.java
βΒ Β βΒ Β βΒ Β βββ EventRegistration.java
βΒ Β βΒ Β βββ exchange
βΒ Β βΒ Β βΒ Β βββ ApiErrorResponse.java
βΒ Β βΒ Β βΒ Β βββ EventRegistrationRequest.java
βΒ Β βΒ Β βΒ Β βββ EventRegistrationResponse.java
βΒ Β βΒ Β βΒ Β βββ EventRequest.java
βΒ Β βΒ Β βΒ Β βββ EventResponse.java
βΒ Β βΒ Β βββ vo
βΒ Β βΒ Β βββ EventStatus.java
βΒ Β βΒ Β βββ RegistrationStatus.java
βΒ Β βββ repository
βΒ Β βΒ Β βββ EventRegistrationRepository.java
βΒ Β βΒ Β βββ EventRepository.java
βΒ Β βββ resource
βΒ Β βΒ Β βββ EventRegistrationResource.java
βΒ Β βΒ Β βββ EventResource.java
βΒ Β βββ service
βΒ Β βΒ Β βββ api
βΒ Β βΒ Β βΒ Β βββ EventRegistrationService.java
βΒ Β βΒ Β βββ impl
βΒ Β βΒ Β βββ EventRegistrationServiceImpl.java
βΒ Β βΒ Β βββ EventService.java
βΒ Β βββ utils
βΒ Β βββ DateTimeUtils.java
βββ resources
βββ application.properties
βββ schemas
βΒ Β βββ event_registration.sql
βΒ Β βββ event.sql
βββ static
βββ templates
```
## πΊοΈ Roadmap
- β³ **MVP: Basic Event System** (Current Phase)
- π **Version 2: Payment Integration (Stripe, Razorpay)**
- π **Version 3: Microservices Architecture & Event Analytics**
- π **Version 4: AI-Powered Event Recommendations**
## π€ Contributing
1. Fork the repo & create a feature branch
2. Follow **Clean-Modular Code** & **SOLID principles**
3. Submit a PR with detailed descriptions
## π License
[MIT License](LICENSE)
## π§ Contact
- For a new `Feature` or `bugs` create a issue in `Issue` tab
- For queries, reach out at [bluecomet.org@gmail.com](mailto:bluecomet.org@gmail.com)