DV
Все проекты

Denver Urban Pulse

Платформа инженерии данных и BI-аналитики

Автоматизированная аналитическая платформа на данных из 4 публичных API: PostgreSQL-архитектура raw → staging → marts, Python ETL, интерактивные карты, тепловые карты, динамика KPI и централизованная фильтрация. Данные обновляются пакетным процессом по расписанию, а актуальность источников отображается в дашборде.

SQL PostgreSQL Python ETL API Integration Data Modeling Next.js TypeScript Leaflet Recharts
Denver Urban Pulse

Обзор

Автоматизированная аналитическая платформа на данных из 4 публичных API: PostgreSQL-архитектура raw → staging → marts, Python ETL, интерактивные карты, тепловые карты, динамика KPI и централизованная фильтрация. Данные обновляются пакетным процессом по расписанию, а актуальность источников отображается в дашборде. Охватывает преступность, ДТП, обращения в службу 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)По мере изменений

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

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

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