Skip to content
forked from hotosm/fmtm

Field Mapping Tasking Manager - coordinated field mapping.

License

Notifications You must be signed in to change notification settings

Anuj-Gupta4/fmtm

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HOTOSM Logo

Field Mapping Tasking Manager (FMTM)

Coordinated field mapping for Open Mapping campaigns.

Release Version

CI/CD Build and Deploy Build CI Img Build ODK Images
πŸ”§ Build Proxy Images Publish Docs pre-commit.ci
Tech Stack FastAPI React Postgres Kubernetes Docker
Code Style Backend Style Frontend Style pre-commit
Quality Coverage OpenSSF Best Practices
Community Slack All Contributors
Other Info docs dev-roadmap timeline license

Building on the success of HOT's Tasking Manager, a tool for coordinating remote digitization of map features, the FMTM 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 FMTM aims to solve the problem of coordinating field mapping campaigns.

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

How FMTM 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, and generate a QR code that is opened in ODK Collect.
  3. User navigates to the feature and fills out the XLSForm survey, then submits.
  4. The submissions are collected by ODK Central, which feeds the data back into FMTM, 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 OpenStreeMap 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
  • Frontend Typescript development
  • Documentation writers
  • UI / UX designers
  • Testers!
  • XLSForm creators
  • Mobile developers

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

Reach out to us if any questions!

Install

To install for a quick test, or on a production instance, use the convenience script:

curl --proto '=https' --tlsv1.2 -sSf https://get.fmtm.dev | bash

Alternatively see the docs for various deployment guides.

Roadmap

Status Feature
βœ… πŸ–₯️ project area splitting avoiding roads, rivers, railways
βœ… πŸ–₯️ XLSForm generation in ODK Central
βœ… πŸ“± mapping of project via survey in ODK Collect mobile app
βœ… πŸ“± locking & unlocking of tasks to coordinate mapping
βœ… πŸ“± download base imagery & geolocation for in the field
βœ… πŸ–₯️ view mapper submissions in the FMTM dashboard
βœ… πŸ“’ Beta Release
βœ… πŸ–₯️ & πŸ“± basic user tutorials and usage guides
βœ… πŸ“± open ODK Collect with feature already selected
βœ… πŸ“± live updates during mapping (if online)
βœ… πŸ“± features turn green once mapped
βš™οΈ πŸ“± better support for mapping new points, lines, polygons
βš™οΈ πŸ“± navigation and capability for routing to map features
πŸ“± integrate ODK Web Forms (to avoid switching apps)
πŸ“± fully offline field mapping
πŸ–₯️ organization creation and management
πŸ–₯️ simplify project creation with basic / advanced workflows
πŸ–₯️ refinements to task splitting algorithm
πŸ–₯️ improvements to the validation criteria and workflow
πŸ–₯️ export (+merge) the final data to OpenStreetMap
πŸ–₯️ better data visualisation and export options
πŸ–₯️ Field Admin role

Note

πŸ“± for mobile / mappers

πŸ–₯️ for desktop / managers / validators

A more developer-facing roadmap can be found here.

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

πŸ’»
Add your contributions

Repo Activity

FMTM Repo Activity

About

Field Mapping Tasking Manager - coordinated field mapping.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 47.3%
  • Python 32.7%
  • Svelte 5.4%
  • JavaScript 4.5%
  • PLpgSQL 4.0%
  • Shell 2.7%
  • Other 3.4%