- Kotlin 55.8%
- TypeScript 36.7%
- CSS 4%
- Shell 2.2%
- HTML 1.3%
- Add scripts/fetch-shelters.sh: downloads Geonorge data, converts UTM33N→WGS84 via PWA script, copies to both Android assets and PWA public dirs - Bundle pre-processed shelters.json (556 shelters) in APK assets so the app works immediately on first launch with no network - ShelterRepository.seedFromAsset(): seeds Room DB from bundled JSON on first launch, marks as stale so network refresh is attempted in the background - MainActivity.loadData(): seeds from asset before trying network, always attempts background refresh when data is stale - Add version.properties (1.1.0, versionCode=2) as single source of truth for versioning - build.gradle.kts reads version from properties file and exposes via BuildConfig - Bump PWA version to 1.1.0 to match Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| app | ||
| gradle/wrapper | ||
| pwa | ||
| scripts | ||
| .gitignore | ||
| build.gradle.kts | ||
| CLAUDE.md | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle.kts | ||
| version.properties | ||
Tilfluktsrom
Finn nærmeste offentlige tilfluktsrom i Norge. Appen er bygd for nødsituasjoner og fungerer uten internett etter første gangs bruk.
Funksjoner
- Finn nærmeste tilfluktsrom — viser de tre nærmeste tilfluktsrommene med avstand og kapasitet
- Kompassnavigasjon — retningspil som peker mot valgt tilfluktsrom
- Frakoblet kart — kartfliser lagres automatisk for bruk uten nett
- Velg fritt — trykk på en hvilken som helst markør i kartet for å navigere dit
- Flerspråklig — engelsk, bokmål og nynorsk
Plattformer
Android-app (app/)
Native Kotlin-app med OSMDroid-kart og Room-database.
- Minstekrav: Android 8.0 (API 26)
- Bygg:
./gradlew assembleDebug - Installer:
adb install app/build/outputs/apk/debug/app-debug.apk
Nettapp / PWA (pwa/)
Progressiv nettapp med Vite, TypeScript og Leaflet. Kan installeres på alle enheter via nettleseren.
- Avhengigheter:
bun install - Hent tilfluktsromdata:
bun run fetch-shelters - Utviklingsserver:
bun run dev - Bygg for produksjon:
bun run build - Kjør tester:
bun test
Datakilde
Tilfluktsromdata lastes ned fra Geonorge som GeoJSON i UTM33N-projeksjon (EPSG:25833). Koordinatene konverteres til WGS84 (bredde-/lengdegrad) for visning i kartet.
Datasettet inneholder ca. 556 offentlige tilfluktsrom med adresse, romnummer og kapasitet (antall plasser).
Arkitektur
tilfluktsrom/
├── app/ # Android-app (Kotlin)
│ └── src/main/
│ ├── java/.../
│ │ ├── data/ # Room-database, nedlasting, GeoJSON-parser
│ │ ├── location/ # GPS, nærmeste tilfluktsrom
│ │ ├── ui/ # Retningspil, liste-adapter
│ │ └── util/ # UTM→WGS84-konvertering, avstandsberegning
│ └── res/ # Layout, strenger (en/nb/nn), ikoner
├── pwa/ # Nettapp (TypeScript)
│ ├── src/
│ │ ├── data/ # IndexedDB-cache
│ │ ├── location/ # GPS, kompass
│ │ ├── ui/ # Kart, kompass, liste
│ │ ├── cache/ # Kartfliser for frakoblet bruk
│ │ └── i18n/ # Oversettelser
│ └── scripts/ # Bygg-tidsskript for datakonvertering
└── CLAUDE.md # Prosjektdokumentasjon for AI-assistert utvikling
Frakoblet bruk
Appen er designet etter «offline-first»-prinsippet:
- Tilfluktsromdata lagres lokalt etter første nedlasting (Room / IndexedDB)
- Kartfliser caches automatisk for området rundt brukeren
- GPS og kompass fungerer uten internett
- Data oppdateres automatisk i bakgrunnen når det er eldre enn 7 dager
Sikkerhet
- All nettverkstrafikk går over HTTPS
- Tilfluktsromdata valideres ved parsing (koordinater innenfor Norge, gyldige felt)
- Databaseoppdateringer er atomiske (transaksjon) for å unngå datatap
- Ingen persondata lagres — kun tilfluktsromdata og kartfliser
Lisens
Tilfluktsromdata er åpne data fra Geonorge / Direktoratet for samfunnssikkerhet og beredskap (DSB). Kartfliser fra OpenStreetMap er lisensiert under ODbL.