Welcome to MapRoulette 1, the powerful & popular bug fixing tool (or is it a game?) for OpenStreetMap.
This is the old version of Maproulette. The new codebase is at http://github.com/maproulette/maproulette2
This README deals with development related topics only. If you are interested in contributing to OpenStreetMap by fixing some bugs through MapRoulette, just head over to the MapRoulette web site and get started - it should be pretty self explanatory.
That said, read on if you want to contribute to MapRoulette development and are ready to deploy your local instance.
Please fork the project and submit pull requests. But before you do, unless your fix is something really minor, please get in touch so we can discuss.
See the code style conventions at https://github.com/osmlab/maproulette/wiki/Code-style-conventions needs updating
MapRoulette relies heavily on the lightweight Flask web application framework, and some of its extensions, notably Flask-OAuth, Flask-RESTful, Flask-Script, Flask-Runner and Flask-SQLAlchemy. For working with geospatial data, MapRoulette relies on GeoAlchemy2 and Shapely.
If you want to deploy your own live MapRoulette server, see the documentation here.
If you want to set up MapRoulette locally for testing and development, and you want to benefit from the built-in debugging features of Flask, follow these steps.
MapRoulette requires Python 3.5 or higher.
Ceating and maintaining a good challenge is a little more complex than just pushing a button. It's not too difficult though. For a gentle introduction, please see this workshop at SOTM EU and these slides to get started.
Bug and feature requests are best left as an issue right here on Github. For other things, contact maproulette@maproulette.org
MapRoulette now also has its very own Slack community. Invite yourself here!