Skip to content
FJFiras JdayTech Lead · Software Engineer
AboutServicesProjectsExperienceBlogGet in touch
Back to projects
  1. Home
  2. Projects
  3. Parnass: Transport Planning & Fleet Operations Platform
Parnass: Transport Planning & Fleet Operations Platform
Enterprise SaaS & Transport

Parnass: Transport Planning & Fleet Operations Platform

Flagship SaaS platform architected as Tech Lead at Aileane — NestJS + Next.js, real-time GPS fleet tracking via SSE and Supabase Realtime, a data-driven driver-assignment rule engine, and automated EU driving-time (RSE) compliance for France's regulated passenger-transport sector.

2026 - Present · Tech Lead & Senior Software Engineer

Project overview

The challenge

  • Transport planning — drivers, vehicles, courses and multi-stop tournées — was managed manually across spreadsheets, making it error-prone and hard to audit.
  • Operations had no live view of the fleet; GPS, tachograph and driver-availability data lived in disconnected external systems.
  • EU driving-time (RSE) rules and contractual constraints had to be checked by hand, with no structured way to record justified exceptions.
  • Changes made during day-of operations risked overwriting the carefully built plan.

Parnass Transports is an enterprise platform for planning and operating a passenger-transport fleet. It models the full domain — from contracts and recurring service templates (prestations) down to individual courses and multi-stop driver shifts (tournées). As Tech Lead I own the architecture and delivery across a NestJS backend and a Next.js frontend.

The backend runs as two processes from a single codebase — a NestJS 11 REST API and a dedicated GPS worker — communicating over Redis Pub/Sub and backed by Supabase/PostgreSQL (no ORM). A data-driven rule engine evaluates contractual and EU driving-time (RSE) constraints, with a three-level derogation system (N1/N2/N3) for justified exceptions, and a strict separation between the published plan (Conception) and day-of operations (Exploitation).

The frontend delivers weekly planning with Gantt-style course generation, live GPS tracking, and tracking alerts in real time via SSE and Supabase Realtime. External systems — Michelin Connected Fleet (GPS/tachograph), PTV (routing/ETA), Factorial (HR), and MyRentACar — are synced into cache tables a few times a day so the app stays fast and resilient, with GDPR-compliant geolocation handling.

Technical architecture

Click diagram to zoom

Frontend (Next.js 15 App Router): planning grid, Gantt, live tracking, and admin — using TanStack Query for data, Zustand for state, and MapLibre/Google Maps for mapping.

API (NestJS 11): domain modules (commercial, backoffice, conception-planning, exploitation, parametres) over Supabase/PostgreSQL with no ORM, secured by Microsoft Entra ID OAuth → JWT.

GPS worker: a second process built from the same codebase, polling Michelin Connected Fleet and publishing live positions over Redis Pub/Sub.

Real-time layer: SSE from the backend plus Supabase Realtime push live course and GPS state to the operations dashboards.

Rule engine: DB-backed rule definitions, compatibility matrices, and a three-level derogation system evaluated through a cached rule service.

Key challenges & solutions

1

High-risk shared assignment validation

validateAssignment() underpins driver availability, RSE rules, double-driver, derogations and cancellations. I protected it with dedicated regression suites and a write-the-failing-test-first policy before any change.

2

Planning vs live-operations separation

Introduced a clean split between the published plan (planning_course) and live operations (expl_course) with an effective read view, so live updates never mutate the plan — all live patches go through a single update helper.

3

Real-time fleet visibility

Ran a dedicated GPS worker communicating over Redis Pub/Sub and streamed updates to the UI via SSE and Supabase Realtime, while caching external GPS data to avoid request-time API calls.

4

Data-driven business rules

Moved RSE thresholds, compatibility matrices and justification codes into DB-backed rule tables read through a cache service, so business rules change without redeploying code.

5

Resilient external integrations

Synced Michelin, PTV, Factorial and MyRentACar into cache tables a few times a day with non-fatal error handling, keeping the app fast and available even when third parties are slow or down.

Impact & results

Centralized weekly transport planning that was previously managed in spreadsheets into a single, auditable system.

Gave operations live visibility into the fleet through real-time GPS and SSE, replacing manual check-ins.

Automated EU driving-time (RSE) compliance with a structured derogation workflow, reducing manual rule-checking and audit risk.

Separated planning from live operations so day-of changes never corrupt the published plan.

Implemented GDPR-compliant geolocation handling with a documented data-processing registry.

Key features

  • Weekly planning with Gantt-style course and tournée generation
  • Configurable rule engine with three-level derogation/override (N1/N2/N3)
  • Automated EU driving-time (RSE) compliance checks
  • Live GPS tracking and tracking alerts via SSE and Supabase Realtime
  • Strict Conception (planning) vs Exploitation (live operations) data separation
  • Microsoft Entra ID (Azure AD) SSO with role-based access
  • External integrations: Michelin Connected Fleet, PTV, Factorial HR, MyRentACar
  • Excel and PDF exports for operational documents

Technologies used

NestJSTypeScriptNext.jsSupabase (PostgreSQL)RedisTanStack QueryZustandMapLibre GLGoogle Mapsdnd-kitMicrosoft Entra IDRailwayVercel

Project gallery

Parnass planning workspace
Parnass planning workspace

Project details

Client
Aileane
Timeline
2026 - Present
Role
Tech Lead & Senior Software Engineer

More projects

TravelBeds Microservices

TravelBeds Microservices

Backend & Distributed Systems

Mercio Retail Data Pipeline

Mercio Retail Data Pipeline

Data Engineering & Cloud

© 2026 Firas Jday · Tech Lead & Senior Software Engineer · Tunis, Tunisia

Available for CDI & senior freelance — French & international market · jdayfiras.com

0%