Watch the Full Demonstration Video
TransitOps is an intelligent, end-to-end Fleet and Transport Management platform designed to streamline logistics, vehicle maintenance, and driver operations. Built with a robust backend and a highly interactive, modern frontend, it bridges the gap between administrative oversight and driver execution.
TransitOps simplifies fleet management into three core workflows:
- Dispatch & Trip Management: Admins create and assign trips to available drivers. Drivers accept these trips, execute them while tracking expenses (tolls, fuel), and complete them, automatically updating the system in real-time.
- Fleet Tracking & Maintenance: Real-time dashboards allow admins to track delayed or in-progress trips. When a vehicle needs repair, it is marked as "In Shop," automatically removing it from the available dispatch pool until maintenance is resolved.
- Role-Based Workflows: The system strictly enforces roles. Drivers only see their tasks and self-service options, while Fleet Managers get a global overview of finances, personnel, and fleet health.
| Technology | Description |
|---|---|
| React (Vite) | UI Framework |
| React Router | Navigation |
| @tanstack/react-query | Server State Management & Data Fetching |
| Tailwind CSS | Utility-first styling |
| Lucide React | Crisp, consistent iconography |
| React Hook Form & Zod | Form handling and validation |
| Technology | Description |
|---|---|
| NestJS | Progressive Node.js framework |
| Prisma ORM | Next-generation Node.js and TypeScript ORM |
| PostgreSQL | Primary relational database |
| JWT (JSON Web Tokens) | Secure authentication and role validation |
- Administrators / Fleet Managers: Full access to fleet utilization, vehicle management, trip dispatching, expense tracking, and maintenance logs.
- Drivers: Dedicated, restricted views focused strictly on their assigned trips, logging expenses, updating their availability status, and managing their credentials.
- Real-Time Tracking: Admins get a bird's-eye view of active vehicles, available fleets, and fleet utilization metrics.
- Delay Detection: Automated alerts flag assigned trips where the scheduled start time has passed but the driver hasn't begun the journey.
- Dynamic Filtering: Sort the live operations board by 'Delayed', 'In Progress', 'Completed', or 'Cancelled' statuses.
- Interactive Trip Lifecycle: Trips flow sequentially from
DRAFT➔ASSIGNED➔READY_TO_START➔IN_PROGRESS➔COMPLETED. - Driver Self-Service: Drivers can accept trips, mark them as in-progress, and complete them directly from their dashboard.
- Inline Expense Logging: Drivers log toll, fuel, and miscellaneous expenses on a per-trip basis. Admins can view these toggled expense reports directly beneath each trip.
- Lifecycle Tracking: Vehicle repair requests move from
OPEN➔IN_PROGRESS(In Shop) ➔COMPLETED. - Automated Fleet Status: Marking a vehicle as "In Shop" automatically removes it from the dispatch pool. Completing the repair makes the vehicle
AVAILABLEagain. - Cost Analytics: Admins can input repair costs upon completion and track total maintenance expenditures over time.
- Inline Editing: Drivers can update their contact and credential (license) information seamlessly using a pencil-icon inline editing system.
- Duty Toggling: Drivers can toggle themselves between
AVAILABLEandOFF_DUTY, ensuring dispatchers know exactly who is ready for a trip. - Safety & Performance: Visual safety score indicators and historical trip statistics are readily available on the profile page.
Experience the seamless workflow and modern UI of TransitOps:
(Click the image above to watch the Admin Login Demo)
- Node.js (v18+)
- PostgreSQL installed and running
- Navigate to the backend directory:
cd backend - Install dependencies:
npm install
- Set up your
.envfile with your PostgreSQL connection string:DATABASE_URL="postgresql://user:password@localhost:5432/transitops?schema=public" JWT_SECRET="your_super_secret_key"
- Push the Prisma schema and seed the database:
npx prisma db push
- Start the backend server:
npm run start:dev
- Navigate to the frontend directory:
cd frontend - Install dependencies:
npm install
- Start the development server:
npm run dev
- Open
http://localhost:5173in your browser.


