Divide and map. Now.
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 development happens on
sr.ht
Discuss on the
mailing list
Summary and running instances on
OpenStreetMap wiki
News posted to the
#DamnProject
hashtag.
Run your own instance with the
damn deploy
guide.
The damn project serves multiple groups of mappers and recognizes those
groups.
Mappers
... map the world.
mapper
mapper's panel
Reviewers
... assure quality.
JOSM
damn
plugin
panel
mappy
QA
Managers
... maintain areas.
manager
mappy
RSS feeds
intersecting
finished
The damn project supports
mapping workflows
for different use-cases.
Beginners' mapping
Review the work of the mapper
Download notes periodically
Mapping with prepared data
The damn project enables
square's state
transitions
depending on the tool used.
Map-review-done
mapper
mapper's panel
JOSM
damn
plugin
panel
Could skip review
JOSM
damn
plugin
panel
Manual square lock
mappy
Table of content:
Diaries
Talks
Philosophy
Code of conduct
Square's state transitions
Mapping workflows
Area lifecycle
Developer’s documentation
Sysadmin’s documentation
Diaries
The fifth year of the Divide and map. Now.
The fourth year of the Divide and map. Now.
Damn load testing for the third time
Divide and map. Now. deploy refactored
Unifying codebase of the damn web clients
The third year of the Divide and map. Now.
Cleaning up after Divide and map. Now. areas
The second year of the Divide and map. Now.
HOT Tasking Manager and SimpleTaskManager issues from the damn project point of view
Get inspired by mapping highways' radars and mirrors
Get inspired by the Tanga Building Footprints Import
Load testing by simulating mapathon
The server side refactored
Get inspired by the potential HOT tasking manager improvements
The state of the mapper's clients
The first year of the Divide and map. Now.
Square locking policy
Two awesome weeks for the client
Load testing
Deploy easily (in an hour)
Recent changes in the client
Divide and map. Now.
Talks
SotM 2021 poster
Pista ng Mapa 2020
SotM 2020
deck
#WeMap session
deck
FOSDEM 2020
deck
Philosophy
Simplicity and openness.
Performance and decentralization.
Reliability and scalability.
Code of conduct
The community drives the damn project.
Become a good community member.
Be empathetic, respectful, and patient. Try to discuss without emotions.
Learn to be efficient.
Distinguish if you are talking about
what
why
, or
how
How
is discussed only after
what
is agreed.
If you present
what
, be prepared to explain
why
in different points of view tirelessly.
If you discuss
what
because you agree/disagree with it,
try hard to understand
why
and provide constructive feedback.
Help others. It is nice, and it increases efficiency.
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.
Supported clients:
mapper
(mapping only)
mapper's panel
(mapping only)
JOSM
damn
plugin
panel
Could skip review
When no review is needed, it may be skipped. Good for personal projects.
Supported clients:
JOSM
damn
plugin
panel
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
Supported clients:
mappy
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
Authenticate in mapper web page.
Find an area to map and click it.
Authenticate if you did not in the first step.
Click
map ... square
in the mapping workflow diagram.
Supported clients:
mapper
mapper's panel
Review the work of the mapper
When doing a review, select which mapper's work to follow.
In JOSM, right click to
Divide and map. Now.
dialog
window, then
which mapper
, then put the mapper's name.
In panel web client, write the mapper's name to
of
mapper
field. This field lists the mappers of the area.
Supported clients:
JOSM
damn
plugin
panel
Download notes periodically
For solving notes in particular area during distaster response. The
notes are automatically and periodically downloaded.
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.
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.
Add
Download notes automatically
to the area's instructions
(in the manager).
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.)
It is possible to set the update period (in minutes) -- in the JOSM
(advanced) preferences set the
damn.download_notes_period_minutes
Supported clients:
JOSM
damn
plugin
Mapping with prepared data
Used when there are prepared data that needs to be loaded when mapping.
The area is divided and prepared GeoJSON data are provided for
each square. (Manually uploaded to the damn serve for now.)
When a square to map is requested, the border of the square is
returned as usual, along with the prepared data for that square.
Square splitting and merging must be avoided.
Supported clients:
JOSM
damn
plugin
Area lifecycle
Area
is a place to be mapped.
Manager
is a user of the damn project who creates or
changes areas.
Abandoned area
is an area with no commit in last month.
(One commit is one arbitrary activity: locking square for
mapping and marking it for review are two commits; changing
area's priority is one commit.)
Area to finish
is an area with priority -10. (Areas
with the priority less than zero are not listed within active
areas.)
Finished area
is an area that has been removed from the
database and is accessible read-only.
Every day, there is a periodic check for abandoned areas.
Priority of each abandoned area that has no commit in last
month plus three days is changed to -10. Thus, it actually
becomes area to finish.
Every day, there is a periodic check for areas to finish. Each
area to finish that has no commit in last month is removed from
the database, but accessible read-only. Thus, it actually
becomes finished area.
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.
server dev doc
server API doc
damn-server repo
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.
damn-api.js
damn-client.js repo
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.
damn plugin javadoc
damn-plugin repo
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.
damn-deploy repo
The following is dependency diagram of systemd units.
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-project.org
Join discussion
Download this page