Welcome to the Event Booking System! This project is designed to help users book events and manage their reservations with ease. It provides user authentication, event management, ticket booking, and periodic notifications for upcoming events.
The Event Booking System is a comprehensive solution for event management and booking. It allows users to register, authenticate, and book tickets for various events. The system also includes periodic notifications for upcoming events and maintains a history/audit log for all activities.
- User Registration and Authentication
- Event Creation and Management
- Ticket Booking
- Periodic Notifications for Upcoming Events
- History/Audit Log for Events
- Validation and Error Handling
- Secure Password Management
- Node.js
- Express.js
- TypeScript
- SQLite
- bcrypt
- JWT (JSON Web Tokens)
- Node-cron
To get started with the Event Booking System, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/event-booking-system.git
-
Navigate to the project directory:
cd event-booking-system
-
Install the dependencies:
npm install
-
Set up the environment variables:
- Create a
.env
file in the root directory. - Add the following environment variables:
SECRET_KEY=your_secret_key
- Create a
-
Build the project:
npm run build
-
Start the server:
npm start
The server will be running on http://localhost:3000
.
To run the tests, use the following command:
npm test
To build the project for production, use the following command:
npm run build
To start the server, use the following command:
npm start
Here are some of the key API endpoints available in the Event Booking System:
- POST /auth: Authenticate a user and generate a JWT.
- POST /users: Register a new user.
- POST /events: Create a new event.
- GET /events: Get a list of events with optional filters.
- GET /events/:eventId/tickets: Get all tickets for a specific event.
- POST /events/:eventId/tickets: Book a ticket for an event.
- PUT /events/:eventId/tickets/:ticketId: Update a ticket.
- DELETE /events/:eventId/tickets/:ticketId: Delete a ticket.
- GET /users/me/booked-events: View booked events for the authenticated user.
- DELETE /users/me/booked-events/:eventId: Cancel a reservation for a specific event.
We welcome contributions to the Event Booking System!
This project is licensed under the MIT License. See the LICENSE file for details.