|License:||GPL v3 (free of charge)|
|Version:||1.4.3 releases (2023-01-07)|
|Languages:||English, German, Japanese, French, and Chinese (China)|
|Programming languages:||TypeScript, Golang, Bash, and Docker|
Simple and easy to use task manager for collaborative mapping in OpenStreetMap.
The Simple Task Manager (also SimpleTaskManager or STM for short) aims to be a simple structured, easy to use and general purpose tasking manager for OpenStreetMap.
A region on the map (called project) can be divided into sub-regions (called tasks) which can be assigned to a user. This assigned user can then work on a task and specify how far the task is done. This is done via process points: E.g. settings 4 of 10 possible process points says "this task is about 40% done" but it could also mean specific things like "4 of the 10 stores in this task have been surveyed".
As soon as you logged into STM (you need an account on osm.org for that), you see a list of all project you are a member of and also a "Create project" button.
To create a project you need to do two things:
- Add data of your project (name, description, etc.)
- Add tasks to your project
Add project data
After clicking on "Create Project", you'll see a map and on the right side some input fields:
- Name: The title/name of the project (required)
- Max. points per task: Number of process points (s. above) that can be set on each task (reqired)
- Description: Some describing words and further information on the project (optional)
After adding project specific data, you need to add at least one task to your project. On the right side of the map, you have several controls to draw, edit and remove tasks (hovering over one of the buttons shows a describing tooltip).
From top to bottom:
- Plus button: Zoom in
- Minus button: Zoom out
- Pen: Draw a new task
- Tip: Douple-click or click on the first point to finish your polygon.
- Marker: Edit a task (adding new edges to a task)
- Bin: Delete a task by clicking on it
Divide polygon into smaller tasks
Each task can be subdivided into several smaller tasks.
- Go to the tab "Tasks"
- Click on a task in the list
- In the section "Subdivide:" you can specify the output task and size of each new task
- Click on "Preview" to get an idea how the result might look like
- Click on "Divide" to actually create these tasks
- Important: The original task will be removed permanently!
It's also possible to load tasks from various sources:
- local files (from your computer)
- exported projects
- copy tasks from existing projects
- remote files (from a web-server)
Each polygons or multi-polygons in the data will be considered as one task. If your file or overpass-result contains other things like a line-string, STM tries to convert it into a polygon but this might not always work. Manually editing the file and making sure hat only (multi-)polygons exist is the safest way.
When a feature in a file has the property "name" set then the resulting task in STM will have this name, which is shown instead of an technical ID.
Supported file-formats are: GeoJSON, GPX, OSM-XML, EsriJSON, KML and WKT
The tab "Import" offers you the possibility to upload a file from your computer. Just click on the "Upload file" button and select a file to upload.
From exported project
The tab "Import" offers you the possibility to upload tasks from an previously exported project. Just click on "Upload project" to upload you project file. Each imported task will be empty, so no process points or assigned users will be set.
Copy from existing project
In the tab "Import" you can import tasks from an existing project. Just select the project in the list and click on "Import".
The tab "Remote" offers you the possibility to load remote files from a webspace into STM. They must of course be publicly available via HTTP/HTTPS (from some web-storage, GitHub, Pastebin, cloud service, this wiki, .....). Make sure no login, extra button-click or anything else is needed to access the file.
- Paste the URL into the URL input field
- Click on "Load"
The tab "Remote" offers you the possibility to load polygons from overpass:
- Create your query in overpass
- Important: The default overpass JSON format is not supported! Use OSM-XML as output format, so the out parameter should be set to xml (like in the example at point 3.1 below): [out:xml]
- Click on "Export"
- Copy the link after "raw data directly from" (right click and "copy link")
- Switch back to STM and paste this URL into the URL input field
- Click on "Load"
Loading may take a while and depends on the availability/performance of overpass.
Add/edit task properties
Currently each task can have one property: A name, which is shown later in the task list instead on an technical ID.
- Go to the tab "Tasks"
- Click on a task in the list
- In the "Properties:" section there's a field for the name
- No saving needed
Work on a task
When working alone on a project, no user assignment to tasks is needed. So the "assign/unassign" section can be ignored for such situation.
When two or more people are working on the same project, a task must be assigned to one user for editing and can also just be edited by this one user.
When a project has at least two members, each member has to be manually assigned to a task. Only the assigned member can change the tasks process points.
- Select a task (via the list or directly on the map)
- Click the "Assignt to me" button to do assign yourself to the task
Only you can unassign yourself from a task by clicking the "unassign" button.
Update process of a task
Updating a tasks process is done via process points, which can only be set by the user who is assigned to a task. If you are this lucky user, then you see an input field and a "Save" button to update the process points of that task.
Open task in an editor
Currently only the JOSM editor is supported and the button "Open in JOSM" will open the currently selected task in JOSM.
Important: JOSM must run and must have the remote control settings enabled.
When JOSM loads the task, there's also the task polygon shown. To avoid conflicts, don't edit things outside of this polygon as this may be part of another task.
When uploading two hashtags are pre-set (#stm and #stm-project-... with the project-ID), so for example: #stm #stm-project-42 followed by the actual changeset comment. This enables filtering e.g. by the changeset filter from Pascal Neis.
The owner of a project (the user who created the project) has the permissions to add/remove users. Next to the "Tasks" tab, there's the "Users" tab providing an input field to that. So just type in the username and click "Invite".
- The user name is case sensitive, so the name "mapper123" and "MAPPER123" are different users
- The user needs at least one contribution (note or changeset) to be found. This is because the OSM API has a mapping-API from user ID to user name but not from user name to user ID.
Export/Import of projects
You can export and import projects for e.g the following reasons: Manual backup creation, migrate to a different STM instance, copy a project, etc.
To export a project, do the following:
- log into STM
- open the project you want to export
- go to the "Settings" tab
- click on "Export"
You now can save the project to your local computer as a simple JSON file.
To import a project, do the following:
- log into STM
- click on "Import project" (next to the "Create project" button)
- select the file on your local computer
The project will now be imported with all users, assignments, process points, etc.
Since 1.4.0 some shortcuts are possible. Shortcuts do not work, when any kind of input field is focused (usually visible by a colored border around such field).
When creating a project, some shortcuts for the drawing tools can be used:
|d||Enabled/Disabled the 'draw' button.|
|shift + d||Enabled/Disabled the 'delete' button.|
|d||Enabled/Disabled the 'edit' button.|
|escape||Disables the currently active button.|
In the task list (the default view when opening an existing project) some shortcuts managing the current task are available:
|a||Assigns the current user to the task (same effect as the 'Assign'-button).|
|shift + a||Unassigns the current user from the current task (same effect as the 'Unassign'-button).|
|d||Marks a task as done (same effect as the 'Done'-button).|
|j||Opens the current task in JOSM.|
|i||Opens the current task in iD.|