Die Bildungsatlas-Anwendung zeigt alle Schulen Schleswig-Holsteins auf einer interaktiven Leaflet-Karte. Eltern, Interessierte und Kommunen erhalten eine einfache Übersicht zu Standorten, Kontaktdaten und weiterführenden Informationen.
- Nuxt 3 als Fullstack-Framework (SSR/SPA Hybrid)
- Leaflet + MarkerCluster für die Kartenansicht
- Tailwind CSS für das responsive Layout
- Runtime Config (
nuxt.config.ts
) zum Einspeisen öffentlicher Metadaten (Kontakt, Adresse, API-Endpunkte) - Client Rendering: Map-Interaktion und Routensteuerung werden im Client gehalten, um den aktuellen Kartenausschnitt beizubehalten
- Interaktive Karte mit Clustering, Tooltips und Detailansicht
- URL-Synchronisation über Slugs (
/schule-x
) – Direktlinks öffnen den passenden Datensatz - Mobile Bottom-Sheet für die Detailansicht; Karte bleibt beim Öffnen fixiert
- Filter nach Schulart (persistiert per Cookie)
- Geolocation-Modus zum Anzeigen nahegelegener Schulen
- Hamburger-Menü in der mobilen Ansicht mit Schnellzugriff auf Home & About
- Node.js ≥ 20
- pnpm ≥ 8 (
npm install -g pnpm
)
pnpm install
pnpm dev
Die App läuft dann unter http://localhost:3000
.
pnpm build
pnpm preview
pnpm run lint:js
pnpm run lint:css
pnpm run lint
Der Nuxt-Quellcode liegt im Ordner app/
. Legt eure Umgebungsvariablen in app/.env
ab (optional zusätzlich im Projektroot für die Python-Tools):
NUXT_PUBLIC_BASE_API_URL=https://api.oklabflensburg.de
NUXT_PUBLIC_WEBSITE_ORIGIN=http://localhost:3000
[email protected]
NUXT_PUBLIC_CONTACT_PHONE="+49xx"
NUXT_PUBLIC_PRIVACY_CONTACT_PERSON="Firstname Lastname"
NUXT_PUBLIC_ADDRESS_NAME="Address Name"
NUXT_PUBLIC_ADDRESS_STREET="Address Street"
NUXT_PUBLIC_ADDRESS_HOUSE_NUMBER="House Number"
NUXT_PUBLIC_ADDRESS_POSTAL_CODE="Postal Code"
NUXT_PUBLIC_ADDRESS_CITY="City"
Diese Variablen werden im Client genutzt (Kontaktangaben, Impressum usw.) und müssen gesetzt sein.
Die Anwendung konsumiert das Schul-API des OK Lab Flensburg (/school/v1/...
). Für eigene Deployments stehen Skripte im tools/
-Ordner bereit:
- PostgreSQL/PostGIS vorbereiten (siehe
data/schulatlas_schema.sql
) - Daten importieren:
cd tools python3 insert_school_csv.py --env ../app/.env --src ../data/schulen_schleswig_holstein.csv --verbose python convert_dataset.py ../data/schulen_flensburg.csv python insert_facility.py ../data/schulen_flensburg.geojson python update_districts.py python merge_districts.py ../data/schulen_flensburg.geojson python generate_sitemap.py ../data/schulen_flensburg.geojson ../app/public/sitemap.xml https://schulen-in-flensburg.de/
Die Skripte setzen ein konfiguriertes Python-Environment voraus (virtualenv
, requirements.txt
im gleichen Ordner).
- Feedback & Issues: gerne über das GitHub Repository
- Mail:
[email protected]
- Pull Requests willkommen – siehe CONTRIBUTING.md
Die Anwendung steht unter CC0-1.0 – freie Nutzung und Adaption ausdrücklich erlaubt.