This repository contains the backend services for our event ticketing and management application, built using Node.js and Express. The services provide a scalable and robust foundation for managing various aspects of event discovery, ticket booking, and user interaction.
- Event Management: Create, update, and manage a wide range of events, from concerts to workshops.
- Ticketing System: Seamless ticket booking process with multiple ticket types and secure payment integration.
- User Authentication: Implement user registration and authentication to secure user accounts.
- API Gateway: Efficiently route incoming requests to the appropriate microservices for event-related actions.
- Database Integration: Utilize databases to store event information, user profiles, and transaction data.
- Notification Services: Keep users informed with event updates, booking confirmations, and reminders.
- Review and Ratings: Allow users to provide feedback and rate events they've attended.
- Scalability: Designed with a microservices architecture to ensure easy scaling and maintenance.
- Clone this repository.
- Install Node.js and required dependencies using
npm install
. - Set up environment variables for configuration (database connection, APIs, etc.).
- Run the services using
npm start
.
Feel free to explore the codebase, customize the services, and contribute to enhancing the event ticketing and management experience.
For more information and detailed documentation, refer to the specific service directories within this repository.
-
- User Registration:
POST /api/users/register
(both customer and organizer) - User Login:
POST /api/users/login
(both customer and organizer) - User Profile:
GET /api/users/:userId
(authorized user and admin only) - Update User Profile:
PUT /api/users/:userId
(authorized user and admin only) - Update User Role:
PUT /api/users/:userId/role
(admin only) - Delete User Profile:
DELETE /api/users/:userId
(admin only)
- User Registration:
-
- Create Event:
POST /api/events
(organizer only) - Update Event:
PUT /api/events/:eventId
(organizer only) - Delete Event:
DELETE /api/events/:eventId
(organizer only) - Get Organizer Events:
GET /api/organizers/:organizerId/events
(organizer only) - Get All Events:
GET /api/events
- Get Event Details:
GET /api/events/:eventId
- Get Events by Date Range:
GET /api/events?startDate=yyyy-mm-dd&endDate=yyyy-mm-dd
- Get Events by Location:
GET /api/events?location=city
- Get Events by Category:
GET /api/events?category=category_name
- Create Event:
-
- Create Ticket Types for an Event :
POST /api/events/:eventId/tickets
(orgaizer only) - Get Ticket Types for an Event:
GET /api/events/:eventId/tickets
- Get Ticket Details:
GET /api/tickets/:ticketId
- Update Ticket Details:
PUT /api/tickets/:ticketId
(organizer only) - Delete a Ticket Type:
DELETE /api/tickets/:ticketId
(organizer only)
- Create Ticket Types for an Event :
-
- Create Payment Intent:
POST /api/payments/create-intent
- Confirm Payment:
POST /api/payments/confirm
- Create Payment Intent:
-
- Get User's Bookings:
GET /api/users/:userId/bookings
- Get User's Booking History:
GET /api/users/:userId/booking-history
- Get User's Bookings:
-
- Leave a Review:
POST /api/reviews
- Get Event Reviews:
GET /api/reviews/event/:eventId
- Leave a Review:
-
- Search Events:
GET /api/events/search?q=search_query
- Filter Events by Category:
GET /api/events/category/:categoryName
- Filter Events by Date:
GET /api/events/date/:date
- Search Events:
-
- Get All Users:
GET /api/admin/users
- Get All Bookings:
GET /api/admin/bookings
- Get All Events:
GET /api/admin/events
- Get All Reviews:
GET /api/admin/reviews
- Get All Users:
-
- Send Notification:
POST /api/notifications
- Error Handling:
- Send Notification:
-
- View Event Categories:
GET /api/categories
- Search and Filter Options:
GET /api/filters
- View Event Categories: