Tech Stack
Frontend
| Technology | Version | Role |
|---|---|---|
| CesiumJS | 1.135 | 3D globe rendering, entity management, imagery layers, event handlers |
| Vanilla JavaScript | ES2020 | All application logic in client/public/js/app.js |
| Knockout.js | 3.5.1 | Minimal reactive binding (loaded via CDN, used by Cesium widgets) |
| Video.js | 8.22.0 | HLS video stream playback for camera feeds |
| ApexCharts | latest | Time-series charts for CO₂/temperature sensor history |
| Font Awesome | 6.5.1 | UI icons throughout sidebar and info boxes |
| Supabase JS | 2.x | Browser-side authentication (loaded via esm.sh CDN as ES module) |
No bundler or build step is used on the frontend. All scripts are loaded via <script> tags or CDN imports.
Backend
| Technology | Version | Role |
|---|---|---|
| Node.js | 18+ | Server runtime |
| Express | 4.x | HTTP server, static file serving, API proxy endpoints |
| Firebase Admin SDK | 11.x | Server-side Firestore access for CO₂ sensor data |
| node-fetch | 3.x | Server-side HTTP requests to external APIs |
| dotenv | 16.x | .env file loading |
| cors | 2.x | CORS headers for all routes |
Data & Storage
| Service | Role |
|---|---|
| Supabase (PostgreSQL) | User accounts, login events, Row Level Security |
| Firebase Firestore | CO₂ sensor readings (devices/{id}/readings/ subcollection) |
| Firebase Cloud Functions | Emergency management event API (CORD2 project) |
| Local GeoJSON files | Land use layers, boundary data served from client/public/data/ |
| Local CSV files | SVI data (SVI_2022_US_county.csv), flood mock data |
External APIs
| API | Used For |
|---|---|
| Cesium Ion | Google Photorealistic 3D Tiles (asset #2275207) |
| TomTom Traffic | Real-time traffic flow tile images |
| AirNow | Air quality index by zip code |
| OpenWeatherMap | Current weather conditions |
| OSM Nominatim | Reverse geocoding (lat/lon → zip code) |
| NOAA NWS Grid | Weather alerts, temperature, aviation conditions |
| NOAA NWPS | River gauge levels and flood forecasts |
| Blues Notehub | Legacy Notecard sensor event stream |
| TrafficView | FDOT CCTV camera locations and feeds |
| 511NY | New York traffic camera network |
| JetStream Cloud | UCF CO₂ Gaussian process interpolation backend |
Hosting
| Service | What It Hosts |
|---|---|
| Render (Web Service) | Main application (geo-lens.net) |
| Render (Static Site) | Docusaurus documentation (docs.geo-lens.net) |