Getting Started Overview
UCF GeoLens is a full-stack web application. The frontend is served as static files by an Express backend, and a Supabase project handles user authentication. Running GeoLens locally requires a handful of third-party API keys and credentials.
Prerequisites
| Requirement | Details |
|---|---|
| Node.js | v18 or higher |
| npm | Included with Node.js |
| Cesium Ion account | Free tier works; needed for 3D tiles |
| Supabase project | Free tier works; needed for auth |
| Firebase project | Needed for CO₂ sensor data and emergency events |
| TomTom API key | Free tier; needed for live traffic tiles |
| AirNow API key | Free; needed for AQI data |
| OpenWeatherMap key | Free tier; needed for weather panel |
Key Capabilities
- 3D globe — CesiumJS v1.135 renders photorealistic tiles, GeoJSON layers, and entity billboards
- Real-time data — Traffic, weather, AQI, CO₂ sensors, emergency events refresh automatically
- Spatial analysis — Draw any region and query up to 7 simultaneous analytical filters
- Authentication — All routes gated behind Supabase email/password login
- CO₂ interpolation — Gaussian process prediction across a live sensor network, backed by a JetStream Cloud API
Architecture at a Glance
Browser ──► Express server (Node.js)
│
├── Static files: client/src, client/public
├── /config ← Cesium Ion token, Co-DETR key
├── /tomtom-traffic ← proxy (CORS bypass)
├── /airnow ← proxy
├── /fdot-cameras ← proxy
├── /co2-sensors ← Firebase Firestore
├── /em-event-data ← Firebase Cloud Functions
└── /proxy-image ← CORS image proxy
Auth: Supabase (supabase-auth.js loaded client-side as ES module)
Next Steps
- Local Setup — clone the repo and start the server
- Environment Variables — configure all required keys