A comprehensive bus station management system built with Node.js and TypeScript, providing functionality for managing bus trips, ticket bookings, and user management.
- Runtime: Node.js with TypeScript
- Framework: Express.js
- Database: MongoDB (with Mongoose ODM)
- Authentication: JWT (JSON Web Tokens)
- API Security:
- Helmet for security headers
- CORS enabled
- Rate limiting
- Express validator for input validation
- Logging & Debugging:
- Winston for logging
- Debug for development logging
- Task Scheduling: Agenda.js
- Other Tools:
- dotenv for environment configuration
- shortid for ID generation
- RESTful API Design
- MVC Architecture:
- Controllers
- Services
- DAOs (Data Access Objects)
-
User Management
- User registration and authentication
- Role-based access control (Admin, Trip Guide, User)
-
Authentication & Authorization
- JWT-based authentication
- Permission-based access control
- Secure route protection
-
Trip Management
- Create, read, update, and delete trips
- Schedule management
- Automated status updates
- Trip search functionality
-
Ticket Booking
- Ticket creation and management
- Automated ticket status updates
- Booking validation
-
Bus Management
- Bus registration and tracking
- Seat management
- Bus type categorization
-
Reviews & Ratings
- Trip review system
- Rating management
-
Cities Management
- City registration
- Route management
- Request rate limiting
- Input validation and sanitization
- Security headers with Helmet
- CORS protection
- Error handling middleware
- Automated trip status updates
- Scheduled ticket status management
- Background job processing with Agenda.js
- Node.js
- MongoDB
- npm or yarn
- Clone the repository
git clone https://github.com/M00rish/TicketApp.git