Rihla is a full-stack bus booking and ticketing platform built to streamline trip discovery, seat reservations, payments, and ticket management.
Designed and developed as a monorepo with three independent applications: a customer-facing website, a dedicated administration dashboard, and a RESTful backend API.
Key Features:
- AI Travel Assistant: Integrated an AI-powered chatbot to help users explore trips, stations, and booking options.
- Smart Seat Booking: Implemented temporary seat reservations, database transactions, and PostgreSQL constraints to prevent double bookings.
- Authentication & Security: Built secure authentication with access and refresh tokens, email verification, password recovery, and role-based authorization.
- Online Payments: Integrated Paymob payments with transaction tracking and booking expiration handling.
- QR Code Ticketing: Generated digital tickets with unique QR codes that staff can scan to validate passengers during boarding.
- Admin Dashboard: Developed a separate management application for trips, stations, bookings, users, and ticket verification.
- Automated Background Jobs: Implemented scheduled cron jobs to handle expired reservations and cleanup tasks.
- Database & Infrastructure: Designed a PostgreSQL database using Prisma ORM, migrations, and transactional operations. Used Docker Compose for local development.
- Cloud Deployment: Deployed the website and dashboard on Vercel, backend API on Render, and PostgreSQL database on Supabase.
The project demonstrates end-to-end full-stack development, database design, booking concurrency management, AI integration, and production deployment.