Logo Lanfrica

Ronald-Wesh/Shuttle-Connect

Domaine:

mobilitydigital infrastructure

Type de record:

software
Créateur:
Ron
Hôte:
Multi-tenant SaaS for shuttle (Sacco) booking in Kenya — route/trip scheduling, seat booking, per-company data isolation. # ShuttleConnect A multi-tenant SaaS platform for passenger shuttle (Sacco) booking in Kenya. Transport companies onboard themselves, define routes and vehicles, schedule trips, and accept seat bookings — all through a shared platform with strict per-company data isolation. --- ## Table of Contents - Overview - Tech Stack - Project Structure - Getting Started - Environment Variables - Database Setup - API Reference - Roles & Permissions - Data Isolation - Future Integrations --- ## Overview ShuttleConnect connects passengers with shuttle operators (Saccos) across Kenya. Key capabilities: - **Multi-tenant**: Each Sacco's data is fully isolated at the API and database (RLS) layer - **Booking workflow**: Passengers search trips, reserve seats, and receive booking confirmations - **Atomic seat management**: Postgres RPC functions prevent double-booking under concurrent load - **Role-based access**: Six roles from Super Admin down to Customer, each with scoped permissions - **AI assistant**: Gemini-powered chat widget with live route/trip context - **USSD & SMS ready**: Africa's Talking integration hooks for feature-phone users - **M-Pesa ready**: Daraja API integration points for mobile money payments --- ## Tech Stack | Layer | Technology | |---|---| | Frontend | React 19, Vite 6, Tailwind CSS 4, Motion | | Backend | Node.js, Express 5, TypeScript | | Database & Auth | Supabase (PostgreSQL + OTP Auth) | | Validation | Zod | | AI | Google Gemini API | | SMS / USSD | Africa's Talking | | Payments | Safaricom Daraja (M-Pesa) | | Package Manager | pnpm | --- ## Project Structure ``` shuttleconnect/ ├── Frontend/ # React + Vite SPA │ ├── src/ │ │ ├── api/ # Service classes (auth, bookings, trips …) │ │ ├── components/ # UI components │ │ ├── context/ # ApiContext — global auth state │ │ ├── hooks/ # Custom React hooks │ │ ├── lib/ # Navigation utilities │ │ └── pages/ # …