Skip to content

Die interaktive Schulkarte hilft Eltern und Interessierten, einfach Schulen in Schleswig-Holstein zu finden. Die Karte zeigt Standorte, Kontaktdaten zu den Schulen.

License

Notifications You must be signed in to change notification settings

oklabflensburg/open-school-map

Repository files navigation

Bildungsatlas Flensburg

Lint css files Lint js files Lighthouse CI

Bildungsatlas Flensburg

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.


Architektur & Technik

  • 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

Features

  • 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

Schnellstart

Voraussetzungen

  • Node.js ≥ 20
  • pnpm ≥ 8 (npm install -g pnpm)

Installation & Entwicklung

pnpm install
pnpm dev

Die App läuft dann unter http://localhost:3000.

Build & Preview

pnpm build
pnpm preview

Linting

pnpm run lint:js
pnpm run lint:css
pnpm run lint

Konfiguration

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.


Daten & Backend

Die Anwendung konsumiert das Schul-API des OK Lab Flensburg (/school/v1/...). Für eigene Deployments stehen Skripte im tools/-Ordner bereit:

  1. PostgreSQL/PostGIS vorbereiten (siehe data/schulatlas_schema.sql)
  2. 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).


Mitarbeit & Kontakt


Lizenz

Die Anwendung steht unter CC0-1.0 – freie Nutzung und Adaption ausdrücklich erlaubt.

About

Die interaktive Schulkarte hilft Eltern und Interessierten, einfach Schulen in Schleswig-Holstein zu finden. Die Karte zeigt Standorte, Kontaktdaten zu den Schulen.

Topics

Resources

License

Contributing

Stars

Watchers

Forks