This is the web frontend for osmcha.org, a tool for reviewing and analyzing edits to OpenStreetMap.
Other relevant repositories that contain parts of the OSMCha application are:
osmcha-django- the backend Django applicationosmcha(python library) - used by the backend to analyse OSM changesetsmaplibre-adiff-viewer- used to display the changeset on the main map
To set up a local development environment:
- Install Node.js and npm. The recommended Node.js version is listed in .tool-versions. Tool managers like asdf or mise can read this file and install the right version for you if you want.
- Run
npm installto install the required JavaScript dependencies. - Run
npm run startto start the frontend (it will rebuild automatically when you make changes) - Open http://127.0.0.1:3000
If you are running the frontend against the production backend (the default),
then OAuth login will work automatically. If you are running your own local
copy of the osmcha-django backend,
you'll need to register your own OAuth app on openstreetmap.org, configure
the backend to use that secret key, and then point this frontend at your local
backend by setting the OSMCHA_API_URL environment variable. After that, normal
OAuth login through the frontend UI should work.
npm run typecheckruns TypeScript to verify that the code does not have any type errorsnpm run checkchecks that the code is formatted correctly and runs the linter (it also runs typechecking)npm run formatreformats code to match the expected conventionsnpm run testruns the automated test suite
Deployment of the osmcha.org instance is managed in the osmcha-deploy. Tags pushed to this repo are automatically built into container images. Modifying the code in osmcha-deploy to change the pinned image version will automatically redeploy the production website.
When tagging a new release, be sure to also update the CHANGELOG file to describe what's changed.
If you have any error reports of want to request new features, please read our contribution guide to file an issue.