An Event Management System built with microservices architecture using Spring Boot. It allows users to browse, book, and manage event tickets. Features include user management, event handling, ticket booking, payment processing, notifications, and analytics, demonstrating RESTful API design and industry standards.
The Event Management System is a university project designed to demonstrate the use of microservices architecture using Spring Boot. The system enables users to browse, book, and manage bookings for various events like musical shows, concerts, and theater performances. Organizers can create and manage events, while the system tracks ticket sales and user interactions.
The application is divided into the following microservices:
Register: POST /api/users/register
User
objectUser
objectLogin: POST /api/users/login
email
, password
message
and sessionId
or error messageCheck Status: GET /api/users/status
Logout: POST /api/users/logout
Get User by ID: GET /api/users/id/{id}
id
User
object or 404 Not Found
Get User by Email: GET /api/users/email/{email}
email
User
object or 404 Not Found
Update User Name: PUT /api/users/update-name
email
, newName
404 Not Found
Update User Role: PUT /api/users/update-role
email
, newRole
404 Not Found
Delete User: DELETE /api/users/delete
email
404 Not Found
๐ซ Event Service (Port 8082):
/events
, /events/{id}
.๐ Ticket Service (Port 8083):
/bookings
, /bookings/{id}
, /bookings/user/{userId}
.๐ณ Payment Service (Port 8084):
/payments
, /payments/user/{userId}
, /payments/ticket/{ticketId}
.๐ Notification Service (Port 8085):
/notifications
, /notifications/user/{userId}
, /notifications/{id}
.๐ Analytics Service (Port 8086):
/analytics/user/{userId}
, /analytics/event/{eventId}
, /analytics/ticket/{ticketId}
.event-management-system/
|
โโโ backend/ # ๐ฅ๏ธ Contains all the Spring Boot microservices
| |
โ โโโ user-service/ # ๐ค Microservice for user management
โ โ โโโ src/
โ โ โ โโโ main/
โ โ โ โ โโโ java/
โ โ โ โ โ โโโ lk/nibm/userservice/ # ๐ Java package for User Service
โ โ โ โ โ โโโ controller/ # ๐ REST controllers for handling HTTP requests
โ โ โ โ โ โโโ service/ # ๐ ๏ธ Business logic and service classes
โ โ โ โ โ โโโ model/ # ๐๏ธ Entity models representing database tables
โ โ โ โ โ โโโ repository/ # ๐ Repository interfaces for database operations
โ โ โ โ โโโ resources/
โ โ โ โ โโโ application.properties # โ๏ธ Configuration file for Spring Boot
โ โ โ โโโ test/
โ โ โ โโโ java/
โ โ โ โโโ lk/nibm/userservice/ # ๐งช Unit and integration tests for User Service
โ โ โโโ pom.xml # ๐ Maven build file for User Service
โ โโโ event-service/ # ๐ซ Microservice for event management
โ โโโ ticket-service/ # ๐ Microservice for ticket management
โ โโโ payment-service/ # ๐ณ Microservice for payment processing
โ โโโ notification-service/ # ๐ Microservice for sending notifications
โ โโโ analytics-service/ # ๐ Microservice for analytics and reporting
|
โโโ frontend/ # ๐ SvelteKit frontend application
โ โโโ static/
โ โ โโโ favicon.ico # ๐ Favicon for the SvelteKit app
โ โโโ src/
โ โ โโโ lib/ # ๐ Reusable UI components and stores
โ โ โโโ routes/ # ๐ค๏ธ Pages and endpoints for different views
โ โ โโโ services/ # ๐ ๏ธ API service modules for interacting with backend
โ โ โโโ app.html # ๐ Main HTML template for SvelteKit
โ โ โโโ hooks.server.js # ๐ Server-side hooks for handling requests
โ โ โโโ index.js # ๐ Entry point for the SvelteKit application
โ โ โโโ styles/ # ๐จ Tailwind CSS stylesheets for the application
โ โโโ package.json # ๐ฆ Project dependencies and scripts for the SvelteKit app
โ โโโ .env # ๐ Environment variables for frontend configuration
|
โโโ misc/ # ๐๏ธ Miscellaneous files (e.g., images, documentation)
Clone the Repository:
git clone https://github.com/YourUsername/event-management-system.git
cd event-management-system
Import Project into IntelliJ:
File
-> Open
and choose the root directory of the project.Run the Application:
backend
directory within IntelliJ IDEA.Application.java
class (or the main class of your microservice).Run
button or use Shift + F10
to start the application.Verify the Application:
Clone the Repository:
git clone https://github.com/YourUsername/event-management-system.git
cd event-management-system/frontend
Install Dependencies:
npm install
Run the Application:
npm run dev
Verify the Application:
http://localhost:5173
to see the SvelteKit application in action.You can test the API endpoints using the provided Postman collection.
Import this collection into Postman to explore and test the API endpoints for the Event Management System.