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.
⏳ 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
- 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
- Java 21
- MySQL
- Maven (for dependency management)
-
Clone
/Fork
the repository: -
Set up environment variables (or use
application.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
-
⚡ Run the application:
For full API details, refer to Swagger UI: http://localhost:8080/swagger-ui.html
.
├── 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
- ⏳ MVP: Basic Event System (Current Phase)
- 🔜 Version 2: Payment Integration (Stripe, Razorpay)
- 🔜 Version 3: Microservices Architecture & Event Analytics
- 🔜 Version 4: AI-Powered Event Recommendations
- Fork the repo & create a feature branch
- Follow Clean-Modular Code & SOLID principles
- Submit a PR with detailed descriptions
- For a new
Feature
orbugs
create a issue inIssue
tab - For queries, reach out at [email protected]