Skip to content

SimonPortillo/nuketown

Repository files navigation

Nuketown - Beredskapskart for Norge

Om Prosjektet

Nuketown er en interaktiv kartapplikasjon for beredskap som hjelper brukere med å lokalisere og navigere til kritisk infrastruktur under nødsituasjoner. Applikasjonen visualiserer tilfluktsrom, politistasjoner og sykehus i Norge, og gir viktig informasjon om kapasitet, befolkningsdekning og ruteplanlegging.

Funksjoner

  • 🚨 Tilfluktsrom: Viser lokasjon og kapasitetsinformasjon med befolkningsanalyse
  • 👮 Politistasjoner: Viser politistasjoners plassering med kontaktinformasjon
  • 🏥 Sykehus: Visualiserer sykehusplasseringer med akuttjenesteinformasjon
  • 🗺️ Sanntidsnavigasjon: Gir gangveibeskrivelser til nærmeste fasiliteter
  • 🏗️ 3D-bygningsvisualisering: Veksle mellom 2D og 3D bygningsvisning
  • 🛣️ Vegnettverk-integrasjon: Valgfri overlay av detaljert vegnett
  • 📱 Responsivt Design: Fungerer uavhengig av skjermstørrelse
  • 🎯 Geolokasjon: Automatisk brukerposisjon og nærmeste fasilitet-finding

Teknologi Stack

  • Frontend: React med TypeScript og Vite for en hyppig utviklingsprosess
  • Kartrendering: MapLibre GL JS for rask og fleksibel rendering av interaktivt kart, med støtte for tilpassede stiler og 3D-visninger.
  • UI-komponenter: Material-UI (MUI) for moderne og tilgjengelige brukergrensesnitt, med ferdige komponenter og et tilpassbart designsystem.
  • Backend/Database: Supabase med PostGIS for geografiske data og spørringer.
  • Ruteplanlegging: Mapbox Directions API for beregning av gangruter basert på sanntidskartdata.
  • Ikoner: FontAwesome, et omfattende ikonbibliotek som gir enkle og skalerbare vektorikoner for UI-elementer.
  • Styling: CSS-in-JS med MUI System som muliggjør dynamisk og temabasert styling direkte i TypeScript-koden.

Datakilder

  1. Tilfluktsrom
  2. Befolkningsdata
  3. Politistasjoner
  4. Sykehus
  5. Vegnett
  6. Bygningsdata

Analysefunksjoner

  • Befolkningsdekning for tilfluktsrom
  • Avstandsberegninger med Haversine-formel
  • Estimering av gangtid
  • Kapasitet vs. befolkningsratio
  • Varmekartvisualisering av anleggsdekning

Installasjon og Oppsett

# Klon repositoriet
git clone https://github.com/simonportillo/nuketown.git

# Naviger til prosjektmappen
cd nuketown

# Installer avhengigheter
npm install

# Opprett .env fil med API-nøkler
cp .env.example .env

# Start utviklingsserveren
npm run dev

Miljøvariabler

VITE_REACT_APP_SUPABASE_URL=din_supabase_url
VITE_REACT_APP_SUPABASE_KEY=din_supabase_nøkkel
VITE_MAPBOX_TOKEN=din_mapbox_token

Prosjektstruktur

.
└── src/
    ├── components/
    │   ├── LandingPage.tsx
    │   ├── MapPage.css
    │   └── MapPage.tsx
    ├── .env
    ├── App.css
    ├── App.tsx
    ├── index.css
    ├── main.swx
    └── vite-end.d.ts

Implementasjonsdetaljer

Applikasjonen implementerer en fullstack-løsning hvor:

  • Romlige data lagres i Supabase med PostGIS-utvidelser
  • Frontend bruker MapLibre GL JS for kartrendering
  • Sanntids geolokasjons-sporing for brukerposisjon
  • Komplekse romlige spørringer for nærmeste fasilitet-søk
  • Dynamisk ruteberegning mellom bruker og fasiliteter
  • Interaktiv lag-veksling for ulike datavisualiseringer

Fremtidige Forbedringer

  • Stor refactor
  • Støtte for offline-modus
  • Mer detaljert fasilitetsinfo
  • Integrasjon av sanntids beredskapsvarsler
  • Forbedringer av tilgjengelighet
  • Støtte for flere språk
  • Mobil app-versjon

Link til live demo

LIVE DEMO

Forhåndsvisning

demo video:

nuketown_demoo.mp4

Landningsside cfcc670e76b17458a62295e328cd9446 2D-Kart a4126ebe9ccca691abdffc7c72c3c70b 3D-Kart d33434c50d780f586b7a3ff7e3d76859 Vegnett aktivert ea1cbc6b3a868a7a66ae1334774e37f4 Varmekart 976811359ed52c7f3e3e7c0a17df26d7 Politiloggen se https://api.politiet.no/politiloggen/index.html

image

About

Interaktivt beredskapskart for Norge, basert på data fra DSB, Politiet og flere

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors