Divide and map. Now.

Divide and map. Now. -- the damn project -- helps mappers by dividing a big area into smaller squares that people can map together.

Try to map some squares.

The damn project serves multiple groups of mappers and recognizes those groups.

Mappers

... map the world.

Reviewers

... assure quality.

Managers

... maintain areas.

The damn project supports mapping workflows for different use-cases.

The damn project enables square's state transitions depending on the tool used.

Map-review-done

Common mapping workflow diagram

Could skip review

Could skip review workflow diagram

Manual square lock

Manual square lock workflow diagram

Table of content:

Diaries

Talks

Philosophy

Code of conduct

Square's state transitions

A square can generally be in four states: locked, to map, to review, and done. It is the responsibility of the mapper how the state of a square is changed. However, the transitions between states are limited by the tool used. The following are well known transitions between the states of a square.

Map-review-done

Basic mapping workflow good for all kinds of mapping. Newbie mappers should start with the Map-review-done workflow. The mapper choose to map the recent, oldest, random, or nearest square. The reviewer choose to review the recent, oldest, random, nearest, or newbie's square.

Common mapping workflow diagram

Supported clients:

Could skip review

When no review is needed, it may be skipped. Good for personal projects.

Could skip review workflow diagram

Supported clients:

Manual square lock

Each square is locked manually. This workflow helps to correct mistakes made in other workflows or to prepare the area -- for example, merge all water squares and change the state to done.

Splitting and merging squares means replacing the squares with smaller or larger squares, respectively. Splitted or merged squares cannot be locked again; there are new squares in place of the original ones.

When splitting, the state of the new squares is the same as the last state of the original square. When merging, the state becomes to map and the new square is immediately locked.

Manual square lock workflow diagram

Supported clients:

Mapping workflows

The following are well-described mapping workflows for a specific use-case.

Beginner's mapping

Beginner mappers benefit from the review of more experienced mappers. They take a square to map, work on that square, and finally decide if the square needs more mapping or is ready for reaview. If there is too much work, the mappers can split the square.

  1. Authenticate in mapper web page.
  2. Find an area to map and click it.
  3. Authenticate if you did not in the first step.
  4. Click map ... square in the mapping workflow diagram.

Supported clients:

Review the work of the mapper

When doing a review, select which mapper's work to follow.

  1. In JOSM, right click to Divide and map. Now. dialog window, then which mapper, then put the mapper's name.
  2. In panel web client, write the mapper's name to of mapper field. This field lists the mappers of the area.

Supported clients:

Download notes periodically

For solving notes in particular area during distaster response. The notes are automatically and periodically downloaded.

  1. It is recommended to use rectangle shape (the default) when creating new area. OpenStreetMap and JOSM API works with bounding box, not with arbitrary planar shape as the damn project does.
  2. Sometimes, you need to assign a particular square to a particular mapper. In such a case, when creating new area, you may add instruction and put _mapper's name (underscore, immediately followed by the OpenStreetMap name of the mapper,) to the what to map field and the square's number (square identifier, sid) to the link to wiki field.
  3. Add Download notes automatically to the area's instructions (in the manager).
  4. Use the JOSM damn plugin as usual. When a square is locked, the corresponding notes (inside of the bounding box of the square's border) are downloaded automatically and periodically updated. (The default period is 10 minutes.)
  5. It is possible to set the update period (in minutes) -- in the JOSM (advanced) preferences set the damn.download_notes_period_minutes.

Supported clients:

Mapping with prepared data

Used when there are prepared data that needs to be loaded when mapping.

  1. The area is divided and prepared GeoJSON data are provided for each square. (Manually uploaded to the damn serve for now.)
  2. When a square to map is requested, the border of the square is returned as usual, along with the prepared data for that square.
  3. Square splitting and merging must be avoided.

Supported clients:

Area lifecycle

Developer's documentation

When you consider the contribution, please, first write your idea to the damn-dev mailing list. It is better to coordinate the work sooner than latter.

Please, report the security issues to the damn-sec mailing list.

damn server

damn_server provides access to the PostGIS database via JSON API. It is written in Python3 and published under AGPLv3 License.

damn (JavaScript web) client

damn-client.js lets mappers contribute via a JavaScript-enabled web browser. It is written in JavaScript, HTML, and CSS, and it is published under MIT License.

JOSM damn plugin

damn plugin for JOSM lets users contribute without need for opening a web browser (except for the first time due to the authentication). It is based on gradle-josm-plugin and published under GNU GPLv3 license.

Sysadmin's documentation

When you consider the contribution, please, first write your idea to the damn-dev mailing list. It is better to coordinate the work sooner than latter.

Please, report the security issues to the damn-sec mailing list.

damn deploy

damn-deploy contains the docker-compose-based deployment, including the guide. It is intended for sysadmins rather than developers and is released under the MIT License.

The following is dependency diagram of systemd units.

Damn systemd architecture

The following is the diagram of configuration dependencies in the docker-compose file (solid) and the communication diagram between the clients and the services over HTTP (dashed).

Damn HTTP dataflow