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 …