Skip to main content

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

RequirementDetails
Node.jsv18 or higher
npmIncluded with Node.js
Cesium Ion accountFree tier works; needed for 3D tiles
Supabase projectFree tier works; needed for auth
Firebase projectNeeded for CO₂ sensor data and emergency events
TomTom API keyFree tier; needed for live traffic tiles
AirNow API keyFree; needed for AQI data
OpenWeatherMap keyFree 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

  1. Local Setup — clone the repo and start the server
  2. Environment Variables — configure all required keys