# Ethiopian Transport Management System
A comprehensive web-based platform to modernize public transportation in Ethiopia using the MERN stack.
## Features
### Passenger Side
- Search trips by origin, destination, and travel date
- Visual seat selection interface
- Booking system with simulated payment
- View active and past bookings
### Admin Side
- Bus management (add buses, set seats, assign numbers)
- Route management with pricing and schedules
- Dashboard with revenue and booking analytics
## Tech Stack
- **Frontend**: React.js (Vite), Tailwind CSS
- **Backend**: Node.js, Express.js
- **Database**: MongoDB with Mongoose
- **Authentication**: JWT (JSON Web Tokens)
## Getting Started
### Prerequisites
- Node.js (v16 or higher)
- MongoDB installed and running
- npm or yarn
### Installation
1. Clone the repository
2. Install backend dependencies:
```bash
cd backend
npm install
```
3. Install frontend dependencies:
```bash
cd frontend
npm install
```
### Running the Application
1. Start MongoDB service
2. Start the backend server:
```bash
cd backend
npm run dev
```
3. Start the frontend development server:
```bash
cd frontend
npm run dev
```
The application will be available at:
- Frontend:
localhost
- Backend API:
localhost
## Project Structure
```
transportation/
├── backend/
│ ├── models/
│ ├── routes/
│ ├── middleware/
│ ├── controllers/
│ └── server.js
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── context/
│ │ └── utils/
│ └── public/
└── README.md
```
## API Endpoints
### Authentication
- POST /api/auth/register - User registration
- POST /api/auth/login - User login
### Buses
- GET /api/buses - Get all buses
- POST /api/buses - Create new bus (Admin only)
### Trips
- GET /api/trips - Search trips
- POST /api/trips - Create new trip (Admin only)
### Bookings
- GET /api/bookings - Get user bookings
- POST /api/bookings - Create new booking
## Contributing
1. Fork t …