TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
비행 전 점검·날씨·SORA 평가·비행 일지·PDF 보고서를 오프라인 웹앱으로 제공, 계정·서버 필요 없음
Vorflugkontrolle, Wetter- und SORA-Bewertung, Flugtagebuch und PDF-Einsatzbericht in einer offline-fähigen Web-App. Ohne Konto, ohne Server.
생산성TypeScript · JavaScriptGitHub @rubenvitt온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Flugmappe ist eine Progressive Web App zur Verwaltung von UAV-Einsätzen (Drohnenflüge) mit Vorflugchecklisten, Wetterbewertung, SORA-Risikoklassifizierung und PDF-Berichterstellung. Entwickelt für den realen Einsatzbetrieb deutschsprachiger Drohnenpiloten — alle Daten bleiben lokal im Browser. 1. Einsatzdaten — Standort, Einsatzdetails, Auftrag, Truppstärke und interaktive Einsatzkarte 2. Vorflugkontrolle — Wetterbewertung, Umgebungsprüfung, Fluganmeldungen und SORA-Risikoklassifizierung 3. Flüge — Dokumentation der durchgeführten Flüge 4. Nachbereitung — Einsatzabschluss und PDF-ExportREADME 전문 보기 ↗
Flugmappe ist eine Progressive Web App zur Verwaltung von UAV-Einsätzen (Drohnenflüge) mit Vorflugchecklisten, Wetterbewertung, SORA-Risikoklassifizierung und PDF-Berichterstellung. Entwickelt für den realen Einsatzbetrieb deutschsprachiger Drohnenpiloten — alle Daten bleiben lokal im Browser.
Jeder Einsatz durchläuft einen strukturierten Workflow:
gut / Vorsicht / Warnung)Automatische Abfrage nahegelegener Infrastruktur über Overpass/OpenStreetMap:
Live-Flugverkehr im Umkreis von 10 km aus Community-ADS-B-Daten (adsb.lol, Fallback adsb.fi):
server/, GET /adsb/point/...). Ist kein Proxy erreichbar (fehlende Konfiguration, „Failed to fetch“ durch CORS/Netzwerk, Route fehlt), zeigt die Sektion „Kein ADS-B-Server verbunden“ statt eines Fehlers, dazu einen Link zur Live-Karte; im Dev-Server leitet Vite direkt an adsb.lol weiterUmfassender Einsatzbericht mit allen erfassten Daten:
| Technologie | Zweck |
|---|---|
| React 19 | UI-Framework |
| TypeScript 5.9 (strict) | Typsicherheit |
| Vite 8 | Build-Tool und Dev-Server |
| Tailwind CSS 4 | Utility-First CSS |
| React Router 7 | Client-Side Routing |
| TanStack Query 5 | Server-State Management und Caching |
| MapLibre GL JS 6 | Karte mit VersaTiles-Basiskarte und eigenen Zeichenwerkzeugen |
| jsPDF | PDF-Generierung |
| React Compiler | Auto-Memoization |
| vite-plugin-pwa | PWA mit Workbox Service Worker |
# Repository klonen
git clone https://github.com/rubenvitt/uav-checklists.git
cd uav-checklists
# Abhängigkeiten installieren
pnpm install
# Dev-Server starten
pnpm dev
# TypeScript-Check + Production-Build
pnpm build
# Linting
pnpm lint
# Production-Build vorab anschauen
pnpm preview
Im Verzeichnis landing/ liegt eine eigenständige, statische
Website, die das Projekt für andere Bereitschaften und Interessierte vorstellt.
Sie ist vollständig vom PWA-Build getrennt (eigenes package.json, eigene
Lockfile, eigener Vite-Build) und lässt sich unabhängig auf einer anderen Domain
ausliefern:
cd landing
pnpm install
pnpm dev # http://localhost:5180
pnpm build # statischer Build nach landing/dist/
Details, Screenshot-Werkzeuge und die vor dem Deployment anzupassenden Stellen
stehen in landing/README.md.
src/
├── components/
│ ├── sections/ # Feature-Abschnitte der einzelnen Phasen
│ │ ├── WeatherSection # Wetterbewertung
│ │ ├── RiskClassSection # SORA-Risikoklassifizierung
│ │ ├── NearbyCheckSection # Umgebungsprüfung (Overpass)
│ │ ├── FlightTrafficSection # Flugverkehr (ADS-B)
│ │ ├── AnmeldungenSection # Fluganmeldungen
│ │ ├── EinsatzdetailsSection # Einsatz-Stammdaten
│ │ ├── EinsatzauftragSection # Einsatzauftrag und Vorlagen
│ │ ├── EinsatzkarteSection # Karte oder Foto
│ │ ├── TruppstaerkeSection # Personalverwaltung
│ │ ├── RahmenangabenSection # Drohne und Flughöhe
│ │ └── ExternalToolsSection # Links zu externen Diensten
│ ├── map/ # MapLibre-Karte mit Zeichenwerkzeugen
│ ├── *Phase.tsx # Phasen-Komponenten (Einsatzdaten, Vorflug, Flüge, Nachbereitung)
│ ├── MissionOverview.tsx # Einsatzübersicht (Start, Liste, Löschen)
│ └── MissionStepper.tsx # Phasen-Navigation
├── hooks/ # Custom Hooks (TanStack Query, localStorage, Geolocation)
├── services/ # API-Clients (Open-Meteo, Bright Sky/DWD, NOAA, Overpass, ADS-B, Nominatim)
├── data/ # Statische Daten (Drohnenspecs, Schwellenwerte)
├── types/ # TypeScript-Typen
├── utils/ # Hilfsfunktionen (Storage, PDF, Bewertung, Formatierung)
└── context/ # React Context (MissionId)
| API | Dienst | Cache-Strategie |
|---|---|---|
| Open-Meteo | Wetter und Vorhersage | TanStack Query 10 min + Service Worker 10 min |
| Bright Sky (DWD) | Stationsmessung + amtliche Warnungen (nur DE) | TanStack Query (Snapshot je Einsatzabschnitt) + Service Worker 10 min |
| NOAA SWPC | Geomagnetischer K-Index | TanStack Query 1 h + Service Worker 1 h |
| Overpass | Nahegelegene Infrastruktur (OSM) | localStorage 8 h |
| adsb.lol / adsb.fi über Backend-Proxy | Live-Flugverkehr (ADS-B, ODbL) | TanStack Query 30 s, Refetch 60 s, Snapshot je Einsatzabschnitt; Service Worker NetworkOnly |
| Nominatim | Reverse Geocoding | TanStack Query |
VersaTiles (tiles.versatiles.org) | Kartenkacheln und Glyphen (OSM-Daten) | Service Worker CacheFirst 30 Tage |
Alle APIs sind öffentlich zugänglich und erfordern keine API-Keys.
Sämtliche Daten werden ausschließlich im Browser gespeichert:
localStorage mit useSyncExternalStore für reaktive Updatesuav-form:{missionId}:{key} in localStoragelocalStorageSiehe LICENSE für Details.