DV
Все проекты

Denver Urban Pulse

BI-дашборд — аналитика города в реальном времени

Интерактивный аналитический дашборд с ежедневным обновлением данных из 4 публичных API. Трёхуровневый пайплайн данных (raw → staging → marts), хороплет-карта, тепловые карты, KPI-карточки со спарклайнами и глобальная фильтрация.

Next.js TypeScript PostgreSQL Python Leaflet Recharts Railway Vercel
Denver Urban Pulse

Обзор

Denver Urban Pulse — публичный BI-дашборд на основе открытых данных Денвера, обновляемых ежедневно. Отслеживает оперативный пульс города по четырём направлениям: преступность, ДТП, обращения в службу 311 и качество воздуха — с разбивкой по районам. Цель: дать жителям, журналистам и городским службам наглядную картину происходящего без необходимости разбираться в сырых данных.

Архитектура

┌─────────────────────────────────────────────────────┐
│                  Источники данных                    │
│  ArcGIS (Crime, Crashes, 311)  ·  AirNow API (AQI)  │
└──────────────────────┬──────────────────────────────┘
                       │  daily cron (06:00 UTC)

┌─────────────────────────────────────────────────────┐
│            Python-пайплайн (Railway)                 │
│  Migrations → Ingestion → Staging → Marts            │
└──────────────────────┬──────────────────────────────┘


┌─────────────────────────────────────────────────────┐
│              PostgreSQL (Railway)                     │
│  raw (5 таблиц) → staging (5) → marts (9)            │
└──────────────────────┬──────────────────────────────┘


┌─────────────────────────────────────────────────────┐
│          Next.js API Routes (Vercel)                 │
│  /city-pulse/kpis  · /categories · /heatmap          │
│  /category-trends  · /neighborhoods                  │
│  /environment/aqi  · /environment/comparison          │
└──────────────────────┬──────────────────────────────┘


┌─────────────────────────────────────────────────────┐
│            React-дашборд (Vercel)                     │
│  KPI · Карта · Графики · Heatmap · Рейтинг · Фильтры │
└─────────────────────────────────────────────────────┘

Ключевые возможности

Источники данных

ИсточникПровайдерОбновление
Криминальные инцидентыDenver Open Data (ArcGIS)Ежедневно, последние 90 дней
ДТПDenver Open Data (ArcGIS)Ежедневно, последние 90 дней
Обращения 311Denver Open Data (ArcGIS)Ежедневно, последние 90 дней
Качество воздуха (AQI)AirNow APIЕжедневно, последние 90 дней
Границы районовDenver Open Data (GeoJSON)По мере изменений

Технологический стек

СлойТехнология
ФронтендNext.js 16 (App Router), React 19, TypeScript 5.9
СтилизацияTailwind CSS 4, shadcn/ui, IBM Plex Sans
ГрафикиRecharts 3
КартаLeaflet + React Leaflet
База данныхPostgreSQL (Railway)
APINext.js Route Handlers (7 эндпоинтов)
Пайплайн данныхPython 3.12, ежедневный cron (Railway)
ДеплойVercel (фронтенд), Railway (БД + пайплайн)
ТестированиеJest 30, React Testing Library