[10]
CITY 3D — MAPA MIASTA
▓ TIER B · ROK 2026 · STATUS: DZIAŁA · JĘZYKI: TYPESCRIPT / PYTHON
Mapa 3D Sopotu: eventy, heatmapa tłumu, questy, gamifikacja
[FIG. 1] MISJA
Full-stack mapa 3D Sopotu (React 18 + deck.gl / MapLibre GL na froncie, FastAPI + async SQLAlchemy + Postgres 16 + Redis na backendzie). Przełączane warstwy: eventy z Facebooka (Apify), heatmapa tłumu sterowana suwakiem godziny, popularne miejsca (Google Places), foto-hotspoty (Wikimedia) i questy miejskie. Pętla gamifikacji: check-in → hashtag → post na Instagramie → jednorazowy kod rabatowy. Autorski dwustronny system pluginów (moduł = katalog, zero centralnych rejestrów) i graceful degradation real→fallback→mock — aplikacja stawia się jednym `docker compose up` bez żadnych kluczy API.
[FIG. 2] ARCHITEKTURA
najedź na blok, by zobaczyć opis
[FIG. 2A] MIASTO O KAŻDEJ GODZINIE
DÓŁ = PLAŻA (SZCZYT 13:00) · ŚRODEK = CENTRUM (SZCZYT 20:00)
GRACEFUL DEGRADATION — KLIKNIJ, BY ODCIĄĆ ŹRÓDŁO
→ /api/health: heatmapa: real · eventy: real · miejsca: real — ten sam kontrakt Pydantic w obu trybach
[FIG. 3] WYZWANIA
[+][CH-01]
Działać bez żadnych kluczy API — deterministyczny mock per moduł + łańcuch fallbacków, identyczny kontrakt Pydantic w trybie real i mock.
[+][CH-02]
Rozszerzalność bez centralnego rejestru — auto-loader modułów backendu i `import.meta.glob` na froncie; nowy moduł = nowy katalog.
[+][CH-03]
Fuzja wielu API geo (Apify/FB, Google, Outscraper, Wikimedia) w jeden model warstw deck.gl.
[FIG. 4] WARSTWA AI
Mapa 3D Sopotu: eventy, heatmapa tłumu, questy, gamifikacja
[FIG. 5] GALERIA
SCREENY W DRODZE — patrz SHOTS-WANTED