Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hotosm/fmtm
Field Mapping Tasking Manager - coordinated field mapping.
https://github.com/hotosm/fmtm
Last synced: 6 days ago
JSON representation
Field Mapping Tasking Manager - coordinated field mapping.
- Host: GitHub
- URL: https://github.com/hotosm/fmtm
- Owner: hotosm
- License: agpl-3.0
- Created: 2022-10-09T02:56:55.000Z (over 2 years ago)
- Default Branch: development
- Last Pushed: 2024-10-29T12:24:26.000Z (3 months ago)
- Last Synced: 2024-10-29T12:47:05.562Z (3 months ago)
- Language: TypeScript
- Homepage: https://fmtm.hotosm.org/
- Size: 74.4 MB
- Stars: 46
- Watchers: 10
- Forks: 46
- Open Issues: 92
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
- awesome-electric-grid-mapping - Field Mapping Tasking Manager
README
| **CI/CD** | | [![Build and Deploy](https://github.com/hotosm/fmtm/actions/workflows/build_and_deploy.yml/badge.svg?branch=main)](https://github.com/hotosm/fmtm/actions/workflows/build_and_deploy.yml?query=branch%3Amain) [![Build CI Img](https://github.com/hotosm/fmtm/actions/workflows/build_ci_img.yml/badge.svg?branch=development)](https://github.com/hotosm/fmtm/actions/workflows/build_ci_img.yml) [![Build ODK Images](https://github.com/hotosm/fmtm/actions/workflows/build_odk_imgs.yml/badge.svg?branch=development)](https://github.com/hotosm/fmtm/actions/workflows/build_odk_imgs.yml)
[![🔧 Build Proxy Images](https://github.com/hotosm/fmtm/actions/workflows/build_proxy_imgs.yml/badge.svg?branch=development)](https://github.com/hotosm/fmtm/actions/workflows/build_proxy_imgs.yml) [![Publish Docs](https://github.com/hotosm/fmtm/actions/workflows/docs.yml/badge.svg?branch=development)](https://github.com/hotosm/fmtm/actions/workflows/docs.yml) [![pre-commit.ci](https://results.pre-commit.ci/badge/github/hotosm/fmtm/development.svg)](https://results.pre-commit.ci/latest/github/hotosm/fmtm/development) |
| :--- | :--- | :--- |
| **Tech Stack** | | ![FastAPI](https://img.shields.io/badge/FastAPI-005571?style=for-the-badge&logo=fastapi) ![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) ![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white) ![Kubernetes](https://img.shields.io/badge/kubernetes-%23326ce5.svg?style=for-the-badge&logo=kubernetes&logoColor=white) ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white) |
| **Code Style** | | [![Backend Style](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/format.json&labelColor=202235)](https://github.com/astral-sh/ruff) [![Frontend Style](https://img.shields.io/badge/code%20style-prettier-F7B93E?logo=Prettier)](https://github.com/prettier/prettier) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://pre-commit.com) |
| **Quality** | | [![Coverage](https://docs.fmtm.dev/coverage.svg)](https://docs.fmtm.dev/coverage.html) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9218/badge)](https://www.bestpractices.dev/projects/9218) |
| **Community** | | [![Slack](https://img.shields.io/badge/Slack-Join%20the%20community!-d63f3f?style=for-the-badge&logo=slack&logoColor=d63f3f)](https://slack.hotosm.org) [![All Contributors](https://img.shields.io/github/all-contributors/hotosm/fmtm?color=ee8449&style=flat-square)](#contributors-) |
| **Other Info** | | [![docs](https://github.com/hotosm/fmtm/blob/development/docs/images/docs_badge.svg?raw=true)](https://docs.fmtm.dev/) [![dev-roadmap](https://github.com/hotosm/fmtm/blob/development/docs/images/dev_roadmap_badge.svg?raw=true)](https://roadmap.fmtm.dev) [![timeline](https://github.com/hotosm/fmtm/blob/development/docs/images/timeline_badge.svg?raw=true)](https://docs.fmtm.dev/timeline) [![license](https://img.shields.io/github/license/hotosm/fmtm.svg)](https://github.com/hotosm/fmtm/blob/main/LICENSE.md) |---
Building on the success of HOT's [Tasking Manager](https://tasks.hotosm.org), 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](https://www.hotosm.org/updates/field-mapping-tasking-manager-fmtm),
> [timeline](https://docs.fmtm.dev/timeline),
> [docs](https://docs.fmtm.dev) page, and the
> [FAQ](https://docs.fmtm.dev/about/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](getodk.org) ecosystem underneath:
- [XLSForms](https://xlsform.org) are used for the underlying data collection
survey. The fields in this survey can be mapped to OpenStreetMap tags.
- [ODK Central](https://github.com/getodk/central) is used to store the XLSForm
and receive data submissions from users.
- [ODK Collect](https://github.com/getodk/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 developersPlease take a look at our [Documentation](https://hotosm.github.io/fmtm)
and [contributor guidance](https://docs.fmtm.dev/CONTRIBUTING/)
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:```sh
curl --proto '=https' --tlsv1.2 -sSf https://get.fmtm.dev | bash
```Alternatively see the [docs](https://docs.fmtm.dev) for various deployment guides.
## Roadmap
| Status | Feature |
|:--:| :-- |
|✅| 🖥️ project area splitting avoiding roads, rivers, railways |
|✅| 🖥️ XLSForm survey 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 / validatorsA more developer-facing roadmap can be found
[here](https://roadmap.fmtm.dev).## Contributors ✨
Here's how you can contribute:
- [Open an issue](https://github.com/hotosm/fmtm/issues) if you believe you've
encountered a bug.
- Make a [pull request](https://github.com/hotosm/fmtm/pull) to add new features
or fix bugs.Thanks goes to these wonderful people:
Ivan Gayton
📆 💻 👀 🤔
Rob Savoye
🚧 🧑🏫 💻 👀 🤔
Ramya
🐛 📖 🤔 🖋 🎨 📆
Sam
💻 👀 🚇 🤔 🚧 🧑🏫
Susmina_Manandhar
📖 🤔 🐛 🧑🏫
Manjita Pandey
🐛 📖 🤔 🖋 🎨 📆
Sujan Adhikari
💻 🚧
Nishit Suwal
💻 🚧
Deepak Pradhan (Varun)
💻 🤔 🚧
Niraj Adhikari
💻 🤔 🚧
krtonga
💻 📖 🔧 🤔
Petya
📖 📋 🤔
Mohamed Bakari Mohamed
💻
G. Willson
💻
JoltCode
💻
Neelima Mohanty
📖
Tayebwa Noah
📖
Mohammad Areeb
📖
AugustHottie
📖
Ahmeed Etti-Balogun
📖
Uju
📖
JC CorMan
📖
Prajwal Khadgi
💻
shushila21
💻
Kshitij Raj Sharma
💻
Mahesh-wor 'Invoron'
🚇
Azhar Ismagulova
💻 ⚠️
synneolsen
🤔
Freedisch
💻
prasidha1
💻
Raj Bhattarai
💻
Sijan Dhungana
💻
Khushi Gautam
📖
Aayam Ojha
💻
Add your contributions
## Repo Activity
![FMTM Repo Activity](https://repobeats.axiom.co/api/embed/4c670cc740c638c52d6c2e822fe78a999d3994fc.svg "Repobeats analytics image")