A comprehensive geospatial platform featuring a Flutter mobile & web application and a Python FastAPI backend. It calculates Quality of Life scores for any location in Bremen, Germany, in real-time.
π For in-depth technical details, see TECHNICAL.md β covering system architecture, database design, scoring algorithm, and deployment.
Access the Bremen Livability Index on multiple platforms:
Live App: bremen-livability-frontend.onrender.com
Run the full app directly in your browserβno installation required.
Live API: bremen-livability-backend.onrender.com
Docs: bremen-livability-backend.onrender.com/docs
RESTful API for livability analysis and geocoding.
Download the latest version for all platforms from GitHub Releases.
| Platform | File | Instructions |
|---|---|---|
| iOS | Runner.app / Source |
Run via Xcode / Flutter |
| Android | BLI-Android.apk |
Install APK on device. |
| Windows | BLI-Windows.zip |
Extract and run bli.exe. |
| macOS | BLI-macOS.zip |
Extract and run bli.app. |
| Linux | BLI-Linux.tar.gz |
Extract and run ./bundle/bli. |
β οΈ Note: Desktop builds are unsigned. You may need to verify them in your system security settings:
- Windows: Click "More Info" β "Run anyway" in Windows Defender SmartScreen
- macOS: Right-click the app β "Open" β "Open" (bypasses Gatekeeper)
- Linux: Run
chmod +x blibefore running All platforms use the same backend API and provide the same core functionality.
- πΊοΈ Premium Map Experience β Full-screen map with "Liquid Glass" UI, real-time background refraction, and tactile haptic feedback.
- π Instant Analysis β Tap any location to calculate a detailed livability score based on 20+ spatial factors.
- βοΈ Personalized Scoring β Customize factor importance to tailor scores to your lifestyle.
- οΏ½ Smart Search & Favorites β "Apple-style" expandable search bar and cross-device sync.
- π Secure & Reliable β Multi-provider authentication (Google, GitHub, Email) with >90% test coverage.
Livability is calculated from 20 spatial factors using proximity-based analysis. Score range: 0-100.
Factors:
- Positive (9): Greenery, Amenities, Public Transport, Healthcare, Bike Infra, Education, Sports, Pedestrian, Culture
- Negative (11): Accidents, Industry, Major Roads, Noise, Railways, Gas Stations, Waste, Power, Parking, Airports, Construction
π Details: Scoring Algorithm in TECHNICAL.md
cd backend && docker-compose up -dcd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtpython -m scripts.initialize_dbpython -m scripts.ingest_all_data./start_server.shAPI: http://localhost:8000 | Docs: http://localhost:8000/docs
cd frontend/bli
flutter pub get
flutter runInteractive Docs: /docs (Swagger UI)
π Full Endpoint Reference: See API Endpoints in TECHNICAL.md for request/response examples and authentication details.
Backend: FastAPI + PostgreSQL/PostGIS | Frontend: Flutter (cross-platform) | Data: OpenStreetMap + Unfallatlas
π Details: System Architecture, Database Design, Backend Implementation in TECHNICAL.md
Cloud Stack (Free Forever):
- Neon.tech (PostgreSQL + PostGIS)
- Render.com (Backend & Frontend)
- Firebase Hosting (Email magic link redirects)
CI/CD Pipeline:
- Backend changes β Backend Tests run on GitHub Actions β Render deploys on commit
- Frontend changes β Frontend Tests run β Build workflow creates app releases β Render deploys on commit
Render deploys automatically on every push to master. GitHub Actions runs tests in parallel to catch issues early.
π Details: Deployment Architecture in TECHNICAL.md
# Backend
cd backend && pytest
# Frontend
cd frontend/bli && flutter testπ Full Testing Guide: See Testing in TECHNICAL.md for coverage reports and test details.
| Source | Description | License |
|---|---|---|
| OpenStreetMap | Trees, parks, amenities, transport, healthcare, cycling, pedestrian infrastructure, education, sports, cultural venues | ODbL 1.0 |
| Unfallatlas | German traffic accident data (2019-2023) | dl-de/by-2-0 |
π Full Details: External Resources & References in TECHNICAL.md
This project is licensed under the MIT License.