Skip to content

awiechma/x-min-city

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

x-Minute-City Remscheid

License Python FastAPI React Vite OSM R5

Webbasierte Analyse- und Visualisierungsplattform zur bevölkerungsbezogenen Erreichbarkeit zentraler Alltagsfunktionen im Sinne der x-Minuten-Stadt, umgesetzt am Beispiel der Stadt Remscheid.

Das Projekt entstand im Rahmen einer Bachelorarbeit im Studiengang Geoinformatik.

🔗 Live-Demo: https://x-min-city.com

Die Webanwendung ist unter dieser URL öffentlich erreichbar.


✨ Funktionen

  • ⏱️ Zeitbasierte Erreichbarkeitsanalyse
  • 🚶‍♂️🚴 Aktive Mobilität: Fuß- und Radverkehr
  • 👥 Bevölkerungsgewichtete Kennzahlen (Zensus 2022)
  • 🗺️ Stadtweite & quartiersbezogene Auswertung
  • 🧩 Interaktive Szenarien (POIs hinzufügen/entfernen)
  • 📊 Zwei zentrale Indikatoren:
    • Bevölkerungsabdeckung (%)
    • Mediane Reisezeit (Minuten)

🧱 Systemarchitektur

Frontend (React + Vite)
        │
        │  HTTP / JSON
        ▼
Backend (FastAPI)
        │
        │  R5Py
        ▼
Routing & Accessibility (R5)

🚀 Installation (lokale Entwicklung)

Voraussetzungen

  • Python 3.11
  • Node.js ≥ 18
  • Java (für R5)

Backend

Benötigte Daten

Für den Betrieb des Backends werden vorbereitete Daten (OSM-PBF, Höhenmodell, Zensusdaten, Stadtteilgrenzen) benötigt.

Diese sind nicht im Repository enthalten und müssen vor dem Start manuell bereitgestellt werden:

  1. Lade den data/-Ordner von folgender Seite herunter:
    https://uni-muenster.sciebo.de/s/AojxcsryCw49gLP

  2. Kopiere den kompletten Ordner in das Backend-Verzeichnis, sodass folgende Struktur entsteht:

backend/
├── app.py
├── core/
├── routes/
├── services/
├── data/
│ ├── duesseldorf-regbez-250910.osm.pbf
│ ├── hoehenmodell.tif
│ ├── census_100m_with_district.csv
│ ├── districts.shp
│ ├── districts.dbf
│ ├── districts.shx
│ └── ...

Backend Setup & Start

cd backend
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn app:app --reload

Frontend

cd frontend
npm install
npm run dev

📁 Projektstruktur (vereinfacht)

x-minute-city/
├── backend/
│ ├── app.py # FastAPI App Entry Point
│ ├── requirements.txt
│ ├── core/
│ │ ├── config.py # Zentrale Konfiguration
│ │ ├── schemas.py # Pydantic-Modelle
│ │ └── state.py # Globaler Analyse-/App-State
│ ├── routes/ # API-Endpunkte
│ │ ├── cityscope.py # Stadtweite Erreichbarkeitsanalyse
│ │ ├── districts.py # Stadtteil-Aggregationen
│ │ ├── grid.py # Zensuszellen-Logik
│ │ ├── isochrone.py # Isochronenberechnung
│ │ └── pois.py # POI-Endpunkte
│ ├── services/ # Fachlogik / Datenzugriff
│ │ ├── routing.py # R5Py-Routing & Reisezeiten
│ │ ├── overpass.py # OSM-POI-Abfragen
│ │ ├── zensus.py # Bevölkerungsdaten
│ │ └── districts.py # Bezirksverarbeitung
│ └── data/ # OSM, Höhenmodell, Bezirke
│
├── frontend/
│ ├── index.html
│ ├── vite.config.js
│ ├── package.json
│ ├── public/
│ │ └── images/
│ │     └── cityscope-preview.png
│ └── src/
│ ├── App.jsx
│ ├── main.jsx
│ ├── App.css
│ ├── tagConfig.js # POI-Kategorien & Labels
│ └── components/
│ ├── CityScopeComponents/
│ ├── css/
│ ├── CategorySidebar.jsx
│ ├── CityScope.jsx
│ ├── Header.jsx
│ ├── Impressum.jsx
│ ├── Landingpage.jsx
│ ├── LoadingOverlay.jsx
│ ├── ReachMap.jsx
│ ├── Sidebar.jsx
│ └── Tooltip.jsx
│
├── scripts/ # Hilfsskripte
├── .gitignore
└── README.md

📄 Lizenz

MIT License – siehe LICENSE

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors