-
Notifications
You must be signed in to change notification settings - Fork 17
Description
Microgrant Proposal
Individual/Group Details
- Name: Tom Hukins
- Location: Greater Manchester, United Kingdom
- Contact Details: [email protected]
Project Title
Map Review Team: supporting collaborative mapping
Project Overview
Summary
This project will support teams of individuals reviewing changes to the map. Teams will focus on a geographical area using their preferred tools.
This project will explore the idea of integrating existing external systems whenever possible to avoid individuals having to learn a large new system or use the same tools as other team members.
Team members will receive notifications of events within the team's geographical area via RSS feeds and chat rooms.
Team members can approve events that they have reviewed and consider acceptable.
External Systems
External systems will provide events within the geographical area.
All systems are publicly available and their code is open source. Each system will be polled periodically to discover new events.
WhoDidIt
This API returns the most recent OSM changesets within the team's geographical area.
Notes
This API returns all Notes within the team's geographical area. Mappers can comment on or resolve notes using a link directly to a note on OSM.org.
Changeset Discussions
This API returns discussion comments associated with a given changeset. Mappers can participate in discussion using a link to the changeset on OSM.org.
OSM OAuth
This provides a login system so that any mapper can use their OSM account without needing a new password.
OSM Teams
This allows any mapper to create or join a team. It provides an API.
Notifications
Whenever an external system returns a new event, a notification will be sent to team members.
RSS
Each team will have a publicly available RSS feed that individuals can consume using their preferred feed reader.
Chat Room
Depending on the agreed scope of this project, notifications might be sent to a configured chat room on Slack, Discord, Telegram, Matrix, or IRC.
Minimal Web Site
This project will provide a minimal Web site, preferring to let mappers use existing tools whenever reasonable.
The Web site will provide pages that:
- list all teams (sorted by creation date, member count, alphabetically)
- provide a team's summary
- listing recent events (changes, notes, discussions)
- filtering events (with/without discussion, with/without approvals)
- if feasible, show nearby teams
- show a specific event, linking to external systems
Technical Details
The Web interface will use responsive, accessible HTML and CSS designed for mobile browsers, desktop computers, and everything in between.
A back-end Web application will handle HTTP requests from browsers, RSS feed readers, and chat rooms, and generate responses, including HTML.
A periodic task will request new information from external systems, store data required for RSS feeds, and send notifications to chat rooms.
Most data will live in external systems, but a relational database will store the information that does not live elsewhere, such as approvals using either PostgreSQL or SQLite.
The project will use a translation tool, such as Translatewiki or Fluent. I will write in English, my native language, and allow the community to provide translations.
I plan to use the Perl or Rust programming languages.
About you
I have worked as a professional Web and integrations developer for thirty years, and as a self-employed consultant and contractor for the past twelve.
I started mapping in 2007 as tomhukins and use OpenStreetMap most days. I have attended State of the Map twice, and was active in London's OpenStreetMap group between 2011 and 2019.
I support open source software and released versions 5.31.3 and 5.33.4 of the Perl programming language.
I have never applied for, nor been awarded, an OSMF microgrant.
I will perform this work on behalf of my consultancy business, Except One, a limited company in the United Kingdom.
Objectives and Impact
Aims
This project aims to support mappers who want to help maintain the map collaboratively within a geographic area. Reusing existing systems whenever possible means that mappers have fewer new things to learn and can work with their preferred tools.
By storing information externally whenever possible, this project adds information to successful existing systems that mappers already find useful.
The new concept of an approval will live within this system, allowing mappers to focus their efforts on things that other mappers have not yet reviewed.
Many mappers will already have their own personal workflows for reviewing changes that interest them, but no way of knowing who else has reviewed a change. Working as a team helps mappers focus on unreviewed changes.
Benefits
The project aims to provide the following benefits to mappers everywhere in the world:
- encourage mappers to review and manage their mapping together
- share the work of reviewing changes amongst a team
- help mappers learn from others by reviewing their work
- improve the consistency of tagging in an area
- strengthen local communities through collaboration
- discover mappers' needs to inform future development
- perhaps discover potential improvements to the external systems used
Working in the Open
I will develop this project alongside the community, sharing a user interface prototype, writing blog posts describing progress and making all code available under an open source licence. I will encourage mappers to interact with the system and share their feedback throughout the development process.
All code will live in a publicly accessible git repository.
Future Possibilities
This project will provide something simple and useful for mappers to interact with, to help inform future development. Although I am reluctant to predict this future development, it might include:
- delivering events by email
- allowing mappers to approve or create events from a chat room or with an API more sophisticated than an RSS feed
- move the concept of approvals into a new application or the openstreetmap-website application
- provide more sophisticated filters to allow teams to focus on specific tags
- integrate with more external systems, such as those that detect vandalism or errors
Grant Amount Requested (In EUR)
As both my business and OSMF are based in the United Kingdom, I will invoice in British Pounds, but provide costs below in Euros for comparison with other proposals. VAT will be added to the amount requested.
I work as a professional software developer and work like this is my only source of income. Although this is a small project, it is not so small that I can do the work without charging for it. Due to my enthusiasm for OpenStreetMap, I will charge lower rates than usual.
This work will cost between €5100 and €6000 as described in the budget breakdown. I will not seek payment from anyone other than OSMF for this.
Budget Breakdown
- HTML user interface prototype and application development: €3300
- Communication, blog posts, and community engagement: €900
- One year's hosting, server administration, and code maintenance: €900
- Integration with one chat system (optional): €600
- Integration with a second chat system (optional): €300
Implementation Plan
Timeline
I will work on this project part time, fitting it around work I do for customers.
I expect this work to take around three months and I expect each milestone to take roughly the amount of time described below:
Contact maintainers of Teams and WhoDidIt
(0 weeks)
This needs to happen first to spot potential problems early.
Develop and Share HTML prototype
(2 weeks)
I will write a blog post asking mappers to interact with the prototype and provide feedback.
Interface with External Systems
(1 week)
I will write code that communicates with OSM Teams, WhoDidIt, and the OSM API.
Develop the Database
(1 week)
This will store information needed for the Web application.
Initial Web Application
(2 weeks)
This will combine the results of all preceding tasks and integrate with a translation tool. Mappers will be able to create and join teams and view events using the Web interface.
Interface with Chat Systems
(2 weeks)
Mappers will be able to connect a team to a chat room.
RSS Feeds
(1 week)
Mappers will be able to request RSS feeds for a team or user.
User Survey
(1 week)
I will write a survey and ask the application's users to complete it.
Project Summary
(1 week)
I will summarise the project's discoveries as described in the next section of this document.
Ongoing Hosting
I commit to host the project for one year.
Community engagement
I will write regular blog posts describing the project's progress and request comments. I will share blog posts with weeklyOSM. I will consider sharing updates on the OpenStreetMap Community
Forum.
SLA and maintenance and sustainability
I offer no formal SLA, but I will run this application alongside projects I already run that suffer minimal downtime.
I commit to running the application for a year, but will probably run it for longer.
I consider this work an experiment: the application might require further development, other applications might incorporate its features if they work well, or the project might provoke the development of new applications.
Evaluation and Success Metrics
I will encourage and track mappers' engagement throughout this project. I have provided numerical goals below, but welcome suggestions for improvement.
Engagement with the HTML Prototype
The early stages of this project will benefit from widespread, thoughtful evaluation of the user interface.
I hope at least 10 mappers will interact with the prototype and at least 5 mappers will offer detailed suggestions for improvement.
Users
I hope that at least 20 users will try using the running application, join teams, and provide feedback.
I hope that at least 5 users will provide detailed feedback informing future development.
Teams
I hope that at least 5 teams of 2 or more users will collaborate using the application.
Blog Posts
I will write at least 3 blog posts describing the project's progress and will share them with weeklyOSM.
Project Summary
After completing this project, I will write a detailed summary document and share it publicly.
The document will summarise:
- a survey of users after code completion
- feedback from mappers throughout the project
- my experience developing and maintaining the project
- comments from maintainers of external systems
This summary will help inform future development of this application and other systems.
Risks
As this project depends on external services, any outage or slowness those services experience will impact this project. I will contact the maintainers of WhoDidIt and Teams after approval and before I start work to discuss the implications with them.
The Notes, Changeset Discussions, and OAuth APIs provided by the openstreetmap-website project, maintained by the Operations Working Group already experience a high volume of requests and this project will have no noticeable impact on them.
I will run this project on servers I manage that already provide public facing Internet services. I have run these reliably for several years and expect I will continue to do so.
Brief outages to any service will delay notifications to mappers.
I do not plan to use a CDN or Web application firewall, but will do so if the application regularly suffers unmanageable volumes of requests.
I will take regular automated backups of the application's database, store them securely, and occasionally test restoring them.
I have considerable experience writing automated tests and release processes to discover and mitigate bugs. I will release my work from version control regularly.
Malicious people might attempt denial of service attacks from external systems, for example by creating a large number of changesets or teams. Team names or changeset comments might contain offensive language. These risks already exist today.
Chat systems and API providers might prevent or restrict access. I will check their acceptable use policies carefully before development.
I will provide a contact email address of the project's Web site so that mappers can report abuse or any other worrying activities.
Conflict of Interest:
I have been a member of the OSM Foundation for more than ten years, but have no affiliation with it beyond that. I know members of London's OSM community due to my involvement between 2011 and 2019, but have no close personal, business, or financial relationships with them.
My company does not work for any GIS or mapping organisation.
Recommendations: from Community and possibly from Working Groups
I have not solicited any recommendations, but I welcome comments on this proposal from everyone and will consider amendments.