An Event Management System that facilitates managing various types of events like conferences, concerts, workshops, corporate meetings, and more. Users can create events, register attendees, book venues, manage schedules, etc. The system can be split into various microservices, each handling a specific domain.
- Create and manage events (conferences, concerts, workshops, etc.).
- Register attendees for events.
- Venue management for events.
- Send notifications for event updates and reminders.
- Handle payments for tickets and other services.
- Manage event schedules/agenda.
- Responsibilities: Create, update, and delete events.
- Endpoints:
POST /events
: Create a new event.GET /events/{id}
: Retrieve event details by ID.PUT /events/{id}
: Update event information.DELETE /events/{id}
: Delete an event.
- Responsibilities: Manage users, register/unregister attendees for events.
- Endpoints:
POST /users
: Create a new user.GET /users/{id}
: Retrieve user details.POST /events/{id}/register
: Register user for an event.DELETE /events/{id}/unregister
: Unregister user from an event.
- Responsibilities: Manage venues for events.
- Endpoints:
POST /venues
: Add a new venue.GET /venues/{id}
: Retrieve venue details.PUT /venues/{id}
: Update venue information.DELETE /venues/{id}
: Delete a venue.
- Responsibilities: Send notifications (email/SMS) for event updates.
- Endpoints:
POST /notify
: Send notifications to attendees (email, SMS).
- Responsibilities: Handle payments for event tickets.
- Endpoints:
POST /payments
: Process payment.GET /payments/{id}
: Retrieve payment details.
- Responsibilities: Manage event schedules and agendas.
- Endpoints:
POST /events/{id}/schedule
: Create a schedule for an event.GET /events/{id}/schedule
: Retrieve the event schedule.
- Frontend: React.js (or Next.js) - User interface for event management.
- Backend: Node.js with Express or FastAPI - For handling requests across microservices.
- Database: MongoDB, PostgreSQL (each microservice can have its own database).
- Containerization: Docker - To package each microservice.
- Orchestration: Kubernetes - For deploying and managing microservices in a distributed environment.
- Message Broker: RabbitMQ / Kafka (for async communication between services).
- API Gateway: NGINX or Kong Gateway for routing and security.
- Authentication: OAuth2 / JWT - Secure user authentication.
- Docker installed on your machine.
- Kubernetes (for deploying microservices).
- Node.js and/or Java installed locally for running backend services.
-
Clone the repository:
git clone https://github.com/ThePral/Event-Management-System.git cd event-management-system
-
Build Docker images for each microservice:
docker-compose up --build
-
Run services via Kubernetes: Make sure you have
kubectl
configured. Deploy the microservices using the provided Kubernetes YAML files:kubectl apply -f k8s/
-
Access the application: The application should now be running. You can access it at
http://localhost:{8080}
.
- Fork this repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a Pull Request.