Ethiopian Bus Booking System
# π SwiftBus β Ethiopian Bus Booking System
A modern, full-stack bus ticket booking platform built for Ethiopia
π Live Demo β’
β¨ Features β’
π οΈ Tech Stack β’
π Getting Started β’
π Structure
---
## π About
**SwiftBus** is a full-stack web application that modernises bus travel in Ethiopia. Passengers can search routes, compare operators, select seats, and pay digitally β all without visiting a ticket counter.
The platform was rebuilt from a PHP/MySQL stack into a **Next.js 16 + Prisma 7 + SQLite** application with a fully typed TypeScript codebase, server components, and a REST API layer.
---
## β¨ Features
### π€ Passenger
| Feature | Description |
|---------|-------------|
| π **Smart Search** | Filter by route, date, company, time of day; sort by price, departure, or duration |
| πͺ **Seat Selection** | Interactive seat map with real-time availability |
| π³ **Payment Flow** | Telebirr, CBE, Dashen Bank, card β booking confirmed on payment |
| π« **Digital Tickets** | QR-code tickets viewable in the dashboard |
| π **Booking History** | All past and upcoming trips in one place |
| π€ **Profile Management** | Update name, phone, password, and avatar |
| π **Notifications** | Booking confirmations and system alerts |
### π§ Admin
| Feature | Description |
|---------|-------------|
| π **Dashboard** | Live stats β revenue, bookings, users, buses |
| π₯ **User Management** | View, activate/deactivate, and inspect users |
| π **Fleet Management** | Add buses, update status (active / maintenance / inactive) |
| π£οΈ **Route Management** | Configure city-to-city routes with distance and pricing |
| π
**Schedule Management** | Set departure times, days of operation, and pricing |
| π **Booking Management** | View all bookings, update status, cancel |
| π€ **Admin Profile** | Edit profile info, change password, upload avatar |
### π Security
- JWT authentication via HTTP-only cookies
- bcrypt password hashing
- Role-based access control (user / admin)
- OTP email β¦