helps community organizers improve canvassing outreach by generating optimized walking routes, guaranteed to take volunteers down every street, past every door, in an area.
Route Generator gets the shortest route to walk all roads in a drawn bbox.
Draw a polygon around the map area you'd like to cover. Weave then uses the Chinese Postman graph traversal algorithm to generate the shortest walking route that covers all roads within the given bounds. Then watch an animated walker traverse the calculated and save the route for later use by actual humans.
Collections organize saved routes.
(check out a full demo here)
Python, NetworkX, OSMnx, Shapely, PostgreSQL, SQLAlchemy, Flask, JavaScript (AJAX, JSON), JQuery, Turf.js, Mapbox GL JS, Jinja, HTML, CSS
These instructions will get you a copy of the project up and running on your local machine with a sample database.
python3.7
postgresql
$ pip3 install -r requirements.txt
1. (optional) Seed database with sample data.
$ python3 seed.py
2. Create sercrets.sh file in root directory.
3. Add export flask_session_key="<some secret key>" to secrets.sh Note: this is required to run the Flask server.
4. Connect secrets.sh.
$ source secrets.sh
5. Run server.
$ python3 server.py
Currently testing for the app is focused on unit tests for the backend graph constructor and circuit constructor scripts. Full test coverage is WIP.
Shoutout to all the awesome people of Hackbright for their support and guidance on this project!



