Campus Traffic Observatory

Campus Traffic Observatory

Client-side cartographic application built with SolidJS, Vite, and MapLibre GL for real-time visualization of campus mobility data: traffic, public transport, parking, bikes, weather, and air quality.

Tech Stack

SolidJS

SolidJS

Reactive UI framework with signals and fine-grained DOM updates

TypeScript

TypeScript

Type-safe application logic across frontend and build scripts

Vite

Vite

Build tool with HMR, proxy for CORS, and pre-build data pipeline

MapLibre GL

MapLibre GL

WebGL-powered 2D/3D interactive map with custom layers

Architecture

Client-side SPA built with SolidJS and Vite for fine-grained reactivity without a virtual DOM. MapLibre GL JS handles WebGL-based 2D/3D cartographic rendering. Data sourced from CEREMA, TBM GTFS, open-meteo, Bordeaux Métropole, and Overpass/OSM APIs, pre-processed at build time. Real-time polling via Vite proxy (30s GTFS-RT, 5m parking). Search runs off-thread in Web Workers with Fuse.js. Deployed on Vercel edge CDN.

Key Features

  • Interactive 2D/3D map powered by MapLibre GL JS with terrain elevation and WebGL rendering
  • Real-time public transport tracking (Trams & Buses) via GTFS-Realtime Protobuf decoding
  • Traffic analysis with Z-score normalization and color-coded road segments
  • Animated traffic simulation with cars moving along GeoJSON LineStrings using Turf.js
  • Weather widget with AQI calculation following US-EPA standards (PM2.5, PM10, NO2, O3)
  • Multimodal fuzzy search using Fuse.js in Web Workers with Nominatim geocoding fallback
  • GTFS data pipeline compressing 160 Mo+ of transit data into optimized JSON at build time
  • Parking and bike-sharing (VCUB) station availability from Bordeaux Métropole open data
  • 4-level test strategy: unit (Vitest), integration, component, and E2E (Playwright)
  • CI/CD with GitHub Actions, Vercel edge deployment, and proxy rewrites for CORS handling
Mohamed Dyae Chellaf | Full-Stack Developer