Case study — Freelance
TrackOwl
A fleet management and live GPS tracking platform for Indian transport companies — track trucks in real time and manage trips, drivers, fuel, maintenance and billing in one place.
- Type
- Fleet management & GPS tracking platform
- Stack
- React 19 · Node.js · MongoDB · Traccar · Vite · Tailwind CSS · React Router · Leaflet / Google Maps · Recharts · Express · MongoDB Atlas · Mongoose · JWT · Teltonika FMB920 · PDFKit · Nodemailer · Nginx
Context & problem
TrackOwl is a fleet management and live GPS tracking platform for Indian transport companies. Owners use it to track trucks in real time and to manage trips, drivers, fuel, maintenance and billing in one place.
My responsibilities
- Built live GPS tracking: Teltonika FMB920 trackers fitted in the trucks send data to a self-hosted Traccar server, which decodes it and forwards it to the Express API and on into MongoDB.
- Built a live fleet map that shows each truck as moving, idle, stopped or offline, plus public tracking links that can be shared and expire.
- Built trip orders with automatic numbering, driver assignment and profit per trip, along with a customer list, a daily ledger and generated PDF documents.
- Built fleet upkeep: fuel logging with mileage reports, service records kept separate from repair requests, automatic maintenance reminders, and tracking of individual tyres and batteries.
- Added storage and tracking for driver and vehicle documents.
- Built the platform layer: several client companies on one system, each with its own data, role-based permissions, an audit log, a device registry where trackers are added by IMEI, and an admin dashboard.
Implementation & technical decisions
- React 19 with Vite, Tailwind CSS and React Router; maps with Leaflet / Google Maps and charts with Recharts.
- Node.js and Express API with MongoDB Atlas (Mongoose) and JWT authentication.
- GPS pipeline: Teltonika FMB920 tracker → self-hosted Traccar server → Express API → MongoDB. Each reading is stored with location, speed and ignition status.
- Public tracking links expire and are stored only as a hash.
- PDF documents generated with PDFKit; email sent through Nodemailer.
Links
Share this case study