ReactFirebaseWeb App

ServicePilot

A live, role-based web app that tracks every vehicle in a Škoda dealership workshop from intake to delivery, built with React and Firebase.

ServicePilot website preview

What Is ServicePilot?

ServicePilot gives a Škoda dealership workshop in Kalamassery one live view of every vehicle, shared across five roles. A workshop job changes hands many times, from service adviser to job controller, parts and manager, and each handoff is a place where a delay can go unnoticed. ServicePilot turns every handoff into a status change that all roles see immediately, with the full history kept.

My Impact

I designed and built the whole app, from data model to deployment. The manager dashboard now tracks 261 vehicles in one place, with 65 active jobs and 12 flagged as delayed (31 Jul 2026), and about 75% of all tracked vehicles delivered. Every status change is logged with who made it and when, parts blockages are handed to the parts allocator automatically, and analytics with Excel export replace manual reporting.

ServicePilot on mobile

Technology

ServicePilot is a React single-page app on Firebase, hosted as a static site on Render, with no server to maintain.

LayerTechnologyRole in the app
FrontendReact 18, Vite, Tailwind CSSRole-based screens, light and dark mode, responsive layout
LibrariesRecharts, React Router, date-fns, xlsxCharts, routing, dates, Excel export
AuthenticationFirebase AuthenticationEmail login; managers create and disable team members
DatabaseCloud FirestoreLive listeners keep every dashboard current; role-based security rules
AutomationFirebase Cloud Functions, NodemailerStatus notifications, scheduled delay checks, monthly Excel report
HostingRender Static Site, GitHubBuilds and deploys on every push

Key engineering decisions

  • Access is enforced in the database, not only the screen. Firestore rules limit each role to its own collections, so a PDI Controller cannot read service vehicles at all.
  • PDI is fully separate. It has its own collections, so adding it to the live system could not touch existing service data.
  • The gate pass rule lives in code. The only function that changes a PDI vehicle’s status also creates its gate pass, so a status change without a pass is not possible.
  • Creating users never signs out the manager. New accounts are created through a second Firebase Auth instance and rolled back if the profile write fails.

One Live Status Per Vehicle

Two independent modules, five roles, and access enforced in the database.

Service Workflow

Jobs move from document approval (WDA, WIA, WCA) through WIP, QC and washing to ready for delivery, with parts tracking for jobs waiting on parts (PNA).

Delays Surface On Their Own

The dashboard counts delayed jobs and lists them under Delayed Alerts, using thresholds like WIP over 3 days, PNA over 2 days and QC over 1 day.

PDI & Gate Passes

New vehicles are tracked through the yard, service, stock transfer and delivery, and every move generates a printable gate pass automatically.

ServicePilot: One Live Status Per Vehicle
ServicePilot workshop tracking web app – full page section 1ServicePilot workshop tracking web app – full page section 2ServicePilot workshop tracking web app – full page section 3