Rural Dispatch
Ride-sharing management platform designed for rural transportation services
Project Overview
Rural Dispatch is a comprehensive ride-sharing management application built to serve rural communities where traditional ride-sharing services are unavailable. The platform enables dispatchers, case managers, and drivers to coordinate transportation for service users, featuring real-time SMS notifications and TCPA-compliant messaging.
Key Features
Role-Based Access Control
- Admin: Full system access including user management and system configuration
- Dispatcher: Coordinate rides, assign drivers, manage daily operations
- Case Manager: Request rides on behalf of clients and riders
- Driver: View assigned rides, update ride status, receive notifications
Two-Way SMS Notifications
- Dual Provider Support: Twilio (primary) and Vonage (fallback) for reliability
- Real-time Updates: Automated notifications for ride confirmations, driver assignments, and ETAs
- TCPA Compliance: Built-in consent management and opt-out handling
- Conversation Tracking: Full SMS history and conversation threading
Ride Management System
- Request Creation: Easy-to-use forms for scheduling rides with pickup/dropoff details
- Driver Assignment: Match available drivers and vehicles to ride requests
- Status Tracking: Real-time ride status updates from request to completion
- Fleet Management: Track vehicles, driver availability, and scheduling
Tech Stack
Frontend
- React 18 with TypeScript (strict mode)
- Vite for fast development and builds
- Tailwind CSS + shadcn/ui components
- React Hook Form with Zod validation
- React Router v6 for navigation
Backend
- Node.js with Fastify framework
- PostgreSQL database
- Prisma ORM v7
- ESM modules
- bcryptjs for authentication
SMS & Notifications
- Twilio (primary SMS provider)
- Vonage (fallback SMS provider)
- Two-way SMS conversations
- Webhook handlers for incoming messages
Development
- Bun for package management
- Biome for linting and formatting
- Vitest for testing
- Shared Zod schemas between client/server
Technical Highlights
Monorepo Architecture
The project uses a monorepo structure with shared Zod validation schemas between the React frontend and Fastify backend. This ensures type safety and validation consistency across the entire application.
SMS System Design
The SMS notification system implements a dual-provider approach with Twilio as the primary provider and Vonage as fallback. The system handles two-way conversations, tracks message history, and implements TCPA-compliant opt-out handling.
Role-Based Security
Authentication uses bcryptjs for password hashing with role-based middleware that enforces access control at both the route and component level.