A web application for discovering optimal walking routes using multi-criteria route optimisation based on scenery, lighting, and urban qualities.
- Personalised Scenic Routing: Generate paths that balance the shortest distance with customisable preferences for greenness, water proximity, quietness, social vibrancy and slope preference.
- Advanced Pathfinding: Geometric loop solvers and A* algorithm with budget constraints
- Street Lighting Integration: Safety assessment with visibility and lighting context analysis
- Interactive Web Interface: Real-time route visualisation with folium maps and user preference controls
- Python 3.10+
- PostgreSQL (for street lighting processor)
- Redis (for Celery task queue)
- Docker (optional)
Using Docker (Recommended)
docker-compose up --buildSee guides/docker_setup.md for detailed setup and troubleshooting.
Manual Setup
pip install -r requirements.txt
python run.pyFor a complete overview of the documentation structure, see the Documentation Index.
Navigate the system using these key documents:
| Area | Documentation |
|---|---|
| Getting Started | Docker setup & debugging |
| Architecture | System design & scalability |
| API Reference | Endpoints · Blueprints |
| Features | User capabilities |
| Algorithms | Pathfinding algorithms |
| Testing | Street lighting test suite |
| Design Decisions | Architecture Decision Records |
| Future Work | Roadmap |
app/ # Flask application & business logic
benchmarks/ # Performance testing suite
tests/ # Unit & integration tests
docs/ # System documentation organised by function
scripts/ # Database bootstrap & utilities
Run tests:
pytest tests/See guides/debug_features.md for debugging workflows and diagnostics.