Skip to content

hotosm/field-tm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5,308 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

HOTOSM Logo

Field Tasking Manager (Field-TM)

Coordinated field mapping for Open Mapping campaigns.

Release Version

CI/CD Build CI Img Build ODK Images
Publish Docs pre-commit.ci
Tech Stack Litestar HTMX Postgres Kubernetes Docker
Code Style Backend Style Oxfmt pre-commit uv
Quality Coverage Translation OpenSSF Best Practices
Community Slack All Contributors
Other Info docs dev-roadmap timeline license-code license-translations

Building on the success of HOT's Tasking Manager, a tool for coordinating remote digitization of map features, the Field-TM was conceived with the purpose of tagging the features with field-verified information.

While there are many excellent applications for tagging map features already, the Field-TM aims to solve the problem of coordinating field mapping campaigns.

Note

More details can be found here: overview, timeline, docs page, and the FAQ.

field-tm-splash

How Field-TM Works

  1. Project is created in an area with three things:
    • Data extract: the features you want to map, say building polygons.
    • ODK XLSForm: the survey for mappers on the ground to fill out for each feature.
    • Task areas divided by feature count and linear features (e.g. rivers, roads).
  2. Users assign a task area for themselves, then map using ODK Collect, ODK Web Forms, or QField.
  3. User navigates to the feature and fills out the XLSForm survey, then submits.
  4. The submissions are collected by ODK Central (or QFieldCloud), which feeds the data back into Field-TM, for cleaning, conflation with existing data, and pushing back to OSM.

Usage of ODK

This project relies heavily on the ODK ecosystem underneath:

  • XLSForms are used for the underlying data collection survey. The fields in this survey can be mapped to OpenStreetMap tags.
  • ODK Central is used to store the XLSForm and receive data submissions from users.
  • ODK Collect is a mobile app that the user submits data from.

Contributing ๐Ÿ‘๐ŸŽ‰

In the wake of the 2010 Haiti earthquake, volunteer developers created the Tasking Manager after seeing a similar coordination challenge for mapping areas without existing data.

Now with over 500,000 volunteer mappers, the Tasking Manager is a go-to resource for volunteers to map collaboratively.

To aid future disaster response, we would really welcome contributions for:

  • Backend Python development (Litestar + HTMX)
  • Documentation writers
  • UI / UX designers
  • Testers!
  • XLSForm creators

Please take a look at our documentation and contributor guidance for more details!

Reach out to us if any questions!

Install

Use one of these supported paths:

# Local development
just config generate-dotenv
just start dev

# Production install
just prep machine
just config setup
just start prod

just start prod presents an interactive version selector and checks out the chosen release tag automatically.

See INSTALL.md for requirements, or the full Production Deployment guide for details.

Roadmap

Status Feature Release
โœ… ๐Ÿ–ฅ๏ธ project area splitting avoiding roads, rivers, railways Since v2024.4.0
โœ… ๐Ÿ–ฅ๏ธ XLSForm survey generation in ODK Central Since v2024.4.0
โœ… ๐Ÿ“ฑ mapping of project via survey in ODK Collect mobile app Since v2024.4.0
โœ… ๐Ÿ“ฑ locking & unlocking of tasks to coordinate mapping Since v2024.4.0
โœ… ๐Ÿ“ฑ download base imagery & geolocation for in the field Since v2024.4.0
โœ… ๐Ÿ–ฅ๏ธ view mapper submissions in the Field-TM dashboard Since v2024.4.0
โœ… ๐Ÿ“ข Beta Release Since v2024.4.0
โœ… ๐Ÿ–ฅ๏ธ & ๐Ÿ“ฑ basic user tutorials and usage guides Since v2024.4.0
โœ… ๐Ÿ“ฑ open ODK Collect with feature already selected Since v2024.4.0
โœ… ๐Ÿ“ฑ live updates during mapping (if online) Since v2024.5.0
โœ… ๐Ÿ“ฑ features turn green once mapped Since v2024.5.0
โœ… ๐Ÿ“ฑ navigation and capability for routing to map features Since v2024.5.0
โœ… ๐Ÿ–ฅ๏ธ organization creation and management Since v2024.5.0
โœ… ๐Ÿ“ฑ better support for mapping new points, lines, polygons Since v2025.1.0
โœ… ๐Ÿ“ฑ seamless mapping in the same app (Web Forms, no ODK Collect) Since v2025.2.0
โœ… ๐Ÿ–ฅ๏ธ user role management per project Since v2025.2.0
โœ… ๐Ÿ–ฅ๏ธ inviting users to projects via invite link Since v2025.2.0
โœ… ๐Ÿ–ฅ๏ธ optional private projects to restrict access Since v2025.2.0
โœ… ๐Ÿ“ฑ fully translated mapper UI and survey in any language Since v2025.2.0
โœ… ๐Ÿ“ฑ custom Field-TM deployments with updated branding Since v2025.2.0
โœ… ๐Ÿ“ฑ fully offline field mapping (local-first design) v2025.3.0, removed
โœ… ๐Ÿ–ฅ๏ธ integration with QField v2026.1.0
โœ… ๐Ÿ–ฅ๏ธ multiple approaches to task splitting algorithm v2026.1.0
๐Ÿ”„ ๐Ÿ–ฅ๏ธ pre-defined OpenStreetMap forms for easy OSM mapping โ€“
๐Ÿ“… ๐Ÿ–ฅ๏ธ integration with OSM mobile apps: EveryDoor, StreetComplete โ€“
๐Ÿ“… ๐Ÿ–ฅ๏ธ integration with ChatMap โ€“
๐Ÿ“… ๐Ÿ–ฅ๏ธ integration with HeiGIT Sketch Map Tool โ€“
๐Ÿ“… ๐Ÿ–ฅ๏ธ integration with other ODK server types: Ona.io, Kobo โ€“
๐Ÿ“… ๐Ÿ–ฅ๏ธ export (+merge) the final data to OpenStreetMap โ€“
๐Ÿ“… ๐Ÿ–ฅ๏ธ instructions for how to best visualize ODK data within QField โ€“

Note

๐Ÿ“ฑ for mobile / mappers

๐Ÿ–ฅ๏ธ for desktop / managers / validators

Contributors โœจ

Here's how you can contribute:

Thanks goes to these wonderful people:

Ivan Gayton
Ivan Gayton

๐Ÿ“† ๐Ÿ’ป ๐Ÿ‘€ ๐Ÿค”
Rob Savoye
Rob Savoye

๐Ÿšง ๐Ÿง‘โ€๐Ÿซ ๐Ÿ’ป ๐Ÿ‘€ ๐Ÿค”
Ramya
Ramya

๐Ÿ› ๐Ÿ“– ๐Ÿค” ๐Ÿ–‹ ๐ŸŽจ ๐Ÿ“†
Sam
Sam

๐Ÿ’ป ๐Ÿ‘€ ๐Ÿš‡ ๐Ÿค” ๐Ÿšง ๐Ÿง‘โ€๐Ÿซ
Susmina_Manandhar
Susmina_Manandhar

๐Ÿ“– ๐Ÿค” ๐Ÿ› ๐Ÿง‘โ€๐Ÿซ
Manjita Pandey
Manjita Pandey

๐Ÿ› ๐Ÿ“– ๐Ÿค” ๐Ÿ–‹ ๐ŸŽจ ๐Ÿ“†
Sujan Adhikari
Sujan Adhikari

๐Ÿ’ป ๐Ÿšง
Nishit Suwal
Nishit Suwal

๐Ÿ’ป ๐Ÿšง
Deepak Pradhan (Varun)
Deepak Pradhan (Varun)

๐Ÿ’ป ๐Ÿค” ๐Ÿšง
Niraj Adhikari
Niraj Adhikari

๐Ÿ’ป ๐Ÿค” ๐Ÿšง
krtonga
krtonga

๐Ÿ’ป ๐Ÿ“– ๐Ÿ”ง ๐Ÿค”
Petya
Petya

๐Ÿ“– ๐Ÿ“‹ ๐Ÿค”
Mohamed Bakari Mohamed
Mohamed Bakari Mohamed

๐Ÿ’ป
G. Willson
G. Willson

๐Ÿ’ป
JoltCode
JoltCode

๐Ÿ’ป
Neelima Mohanty
Neelima Mohanty

๐Ÿ“–
Tayebwa Noah
Tayebwa Noah

๐Ÿ“–
Mohammad Areeb
Mohammad Areeb

๐Ÿ“–
AugustHottie
AugustHottie

๐Ÿ“–
Ahmeed Etti-Balogun
Ahmeed Etti-Balogun

๐Ÿ“–
Uju
Uju

๐Ÿ“–
JC CorMan
JC CorMan

๐Ÿ“–
Prajwal Khadgi
Prajwal Khadgi

๐Ÿ’ป
shushila21
shushila21

๐Ÿ’ป
Kshitij Raj Sharma
Kshitij Raj Sharma

๐Ÿ’ป
Mahesh-wor 'Invoron'
Mahesh-wor 'Invoron'

๐Ÿš‡
Azhar Ismagulova
Azhar Ismagulova

๐Ÿ’ป โš ๏ธ
synneolsen
synneolsen

๐Ÿค”
Freedisch
Freedisch

๐Ÿ’ป
prasidha1
prasidha1

๐Ÿ’ป
Raj Bhattarai
Raj Bhattarai

๐Ÿ’ป
Sijan Dhungana
Sijan Dhungana

๐Ÿ’ป
Khushi Gautam
Khushi Gautam

๐Ÿ“–
Aayam Ojha
Aayam Ojha

๐Ÿ’ป
casdal
casdal

๐Ÿ’ป
Daniel J. Dufour
Daniel J. Dufour

๐Ÿค” ๐Ÿ’ป
Joshua-T-Walker
Joshua-T-Walker

๐Ÿ“–
Taichi FURUHASHI
Taichi FURUHASHI

๐ŸŒ
Ajee
Ajee

๐Ÿ’ป
Jiล™รญ Podhoreckรฝ
Jiล™รญ Podhoreckรฝ

๐ŸŒ
Anuj Gupta
Anuj Gupta

๐Ÿ’ป ๐Ÿšง
Sujan Basnet
Sujan Basnet

๐Ÿ’ป ๐Ÿšง
Roshan Kafle
Roshan Kafle

๐Ÿ’ป
Gareth Bowen
Gareth Bowen

๐Ÿ“–
allison
allison

๐Ÿ’ป
Amit Khanekar
Amit Khanekar

๐Ÿ’ป
Eric Grill
Eric Grill

๐Ÿ’ป
Sjorza
Sjorza

๐Ÿ’ป
Add your contributions

About

Field Tasking Manager - coordinated field mapping.

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors

โšก