FMTM 2024.5.0 Mapper Frontend
3 months in the making, we are excited to release our new mapper frontend!
The frontend is specifically targeted at a streamlined and more intuitive mapping workflow, on mobile devices, with significant improvements to the mapping experience such as real-time data syncing between users and colored features based on status.
To access this feature, click the 'Start Mapping' button on the home page card for a project.
Alternatively, a project manager may distribute the 'mapping' URL to users, via any means such as email and messaging apps.
We would also like to announce @Anuj-Gupta4 joining the FMTM dev team, working on improvements to the backend, and features into the future 🚀
🌟 Highlight: Mapper Frontend
-
New UI: A fresh UI has been implemented for easier navigation, with clearly defined call to action for field users.
-
Colored features based on status: A long awaited feature, task areas and map features have specific colors based on their status. For example, mapped buildings turn green, in progress is yellow, and if there is a mapping issue red.
-
Add new map features: often the feature you wish to survey does not exist on the map yet! We now allow the user to collect new point features as part of a survey.
-
Near real time update of feature status: to facilitate better coordination between mappers, the status of tasks or features mapped is updated seamlessly in the background (without a manual refresh), informing the user of ongoing mapping activities in the project.
-
Better handling of generated basemap imagery: Better handle basemaps and geolocation for easier mapper experience: We’ve optimized basemap and geolocation handling on mapper frontend for a more seamless mapping experience.
-
Workflow prompts: On first load, the user is prompted to scan the QR Code, click on a task area, and get mapping. This should help to ease the learning curve for the mapper in the field.
🚀 Coming soon for the Mapper Frontend
- Enhanced Navigation and Routing: We are working on improving navigation and adding routing options to assist mappers in the field.
- Offline Support: In the longer term, we are planning to support offline functionality, enabling field mappers to update feature statuses while offline.
🛠️ Improvements
- Make submission data downloads only possible for project contributors: Submission data downloads are now restricted to project contributors, enhancing data security.
- Associated geometry selection during survey: Normally a single map feature is selected to survey. But some workflows require the selection of 'associated geometries' too. During project creation additional geojson datasets can be uploaded to facilitate this.
- Removed the 'temporary login' feature from the main application. This is now available only on the mapper frontend, and is handled seamlessly as the default login mechanism (no user interaction required). To have edits attributed to your OSM user, login is still required.
- Injecting mandatory FMTM fields into custom XLSForms: A few questions related to feature verification have been added at the end of the survey, for easier data conflation later.
- Huge refactor of the backend code: For any developer contributors out there, this is a major change! Hopefully resulting in a more stable and easily maintainable backend into the future. We also added extra test cases, particularly around the submission workflow.
- Fully activate user roles: Previously role based authentication was only partially enabled, with a bypass in place for the HOTOSM organization during the Beta. It is now fully active for all organizations.
🐛 Bugs Fixed
- Unable to Create or Delete Organisation: Resolved an issue where users encountered the error "Failed to create organisation" while attempting to create an organisation. Organisation deletion issues from API documentation have also been fixed.
- Task Split Page Crash: Fixed a crash issue that occurred when users selected the "Divide on Square" option for task splitting.
- Addressed a problem where uploading a custom form resulted in the default form on custom ODK collect instead of the intended custom form.
- Resolved issue while updating XLSForm in the manage project section.
- Adding a new geopoint in the survey, now correctly creates an ODK Entity, as previously this would fail.
Technical Summary
What's Changed
- Add mapper frontend using ElectricSQL ShapeStream (live updates) by @spwoodcock in #1760
- Update osm-fieldwork --> 0.16.9 for new entity creation fix by @spwoodcock in #1826
- Feat/mapper frontend continuation by @NSUWAL123 in #1823
- Toast Add & Update import path by @NSUWAL123 in #1828
- Mapper Frontend UI Refactor by @NSUWAL123 in #1830
- Remove SQLAlchemy and replace with async psycopg db driver by @spwoodcock in #1834
- Update API to use events and task states + fixes to backend refactor by @spwoodcock in #1838
- Fix mapper frontend task display and event POSTs by @spwoodcock in #1842
- Frontend Fixes after Backend Changes by @NSUWAL123 in #1844
- Upgrade mapper frontend to Svelte 5 Runes by @spwoodcock in #1846
- Fix frontend e2e tests after UI refactor by @NSUWAL123 in #1847
- Add flatgeobuf maplibre component for loading features in mapper frontend by @spwoodcock in #1851
- Update compose and CI to deploy mapper frontend on push by @spwoodcock in #1855
- Mapper frontend mapper flow by @NSUWAL123 in #1854
- Fix s3 upload and db insertion for submission photos by @Sujanadh in #1856
- Fix(additional-entity) allow custom properties to create entities list by @Sujanadh in #1861
- Fix/pass additional entity name by @NSUWAL123 in #1860
- feat: allow user deletion without deleting task references by @Anuj-Gupta4 in #1848
- Visualize submission photos on frontend by @NSUWAL123 in #1857
- Replace all additional entity filename spaces with an underscore by @NSUWAL123 in #1862
- Fix xFormId undefined payload issue on form update by @NSUWAL123 in #1863
- Qr code download option add to download options by @NSUWAL123 in #1865
- fixes: Remove auth bypass in for HOTOSM org #1785 by @Anuj-Gupta4 in #1845
- Replace pwa in manager frontend with dummy service worker (prep for removal) by @spwoodcock in #1874
- Upgrade ODK Central to 2024.2.0 and use official images by @spwoodcock in #1876
- Fix task comment events for mapper frontend by @NSUWAL123 in #1871
- Disable mobile browsers to pull-to-refresh functionality by @NSUWAL123 in #1878
- Fix update project xlsform SQL after backend refactor by @Sujanadh in #1872
- Mapper Frontend: Map new feature in odk btn by @NSUWAL123 in #1879
- Display total number of features on split tasks section by @NSUWAL123 in #1880
- Update permissions for backend project routes by @spwoodcock in #1885
- feat(submission): add project_contributors dependency for permission … by @Anuj-Gupta4 in #1873
- Fix create and delete organisation by @Sujanadh in #1867
- fix(backend): update check_access logic to allow checking for org_man… by @spwoodcock in #1892
- Remove trailing slashes from endpoints, fix check_access for backend roles by @spwoodcock in #1893
- Fix/frontend failed issue by @NSUWAL123 in #1895
- Replace
pdm
dependency solver withuv
by @spwoodcock in #1891 - Fix Project Creation Wordings by @NSUWAL123 in #1858
- Base layer switcher integration by @NSUWAL123 in #1835
- refactor(logging): enhance error logging with stack information across multiple modules by @Anuj-Gupta4 in #1887
- fixes: Projects aren't accessible to users without logging in #1900 by @Anuj-Gupta4 in #1902
- fix(+page): mobile broser map control placement fix by @NSUWAL123 in #1899
- Fix/mapper frontend enhancements by @NSUWAL123 in #1905
- Visualize additional entities feature counts by @NSUWAL123 in #1906
- Fix/geolocation layerswitch bug by @NSUWAL123 in #1914
- Mapper frontend login + remove temp auth from React frontend by @NSUWAL123 in #1903
- Fix null value of additional entity when no additional entities are uploaded by @Sujanadh in #1919
- Add basemap control component in mapper frontend + opfs pmtile support (pt1) by @spwoodcock in #1922
- Add tests for submission routes by @Anuj-Gupta4 in #1917
- Mapper Frontend: Set entity color based on it's mapping status by @NSUWAL123 in #1921
- Resolve route ambiguity for /tasks/activity endpoint by @Sujanadh in #1924
- Edit multi additional entities names replacing space with '_' by @Sujanadh in #1926
- Mapper frontend basemap management pt2 by @spwoodcock in #1925
- Remove trailing slash from activity endpoint by @Sujanadh in #1932
- Minor mapper frontend bug fixes by @NSUWAL123 in #1933
- Update xlsform-design.md by @manjitapandey in #1935
- Visualize all uploaded submission features/geometries on submission instance page by @NSUWAL123 in #1931
- Distinguish create project layer by @NSUWAL123 in #1936
- Feat/mapper zoomtoextent btn by @NSUWAL123 in #1947
- feat(projects): add organisation_logo field to ProjectSummary model by @Anuj-Gupta4 in #1956
- Avoid double encryption of odk creds while creating organisation by @Sujanadh in #1957
- Fix: Submission Instance Page, Create Project by @NSUWAL123 in #1958
- Clean polygon geometries; remove holes, fix right hand rule by @Sujanadh in #1961
- Clear local storage on user session expiration by @NSUWAL123 in #1965
- Add new point geom in maplibre terradraw, inject to ODK collect by @spwoodcock in #1966
- Feat/OSM login enforced for management, additional temp login option for mappers by @Anuj-Gupta4 in #1948
- Add 'Start Mapping' call to action button on homepage cards by @spwoodcock in #1968
- Apply pagination after fetching submissions from odk central by @Sujanadh in #1971
- Mapper navigation mode integration by @NSUWAL123 in #1973
- Update auth cookie logic for both backend and frontend (seamless temp auth) by @spwoodcock in #1974
- Finalise auth setup between frontends by @spwoodcock in #1981
New Contributors
- @Anuj-Gupta4 made their first contribution in #1848
Full Changelog: 2024.4.0...2024.5.0