OpenStreetMap logo OpenStreetMap

Nominatim Feedback Reporter - GSoC'21 Final Report

Posted by Darkshredder on 16 August 2021 in English. Last updated on 17 August 2021.

Source Code

Nominatim-Feedback-Reporter

Previous Posts

Hosted server

About the project

This is a Google Summer of Code project, which has been developed over the Summer of 2021 by Yash Srivastava (darkshredder). This project is mentored by Marc Tobias (mtmail) and Sarah Hoffmann (lonvia).

Project Description

OpenStreetMap’s main search engine Nominatim did not provide a way to report feedback on the search results that they think to be wrong.

This project aims to provide a web interface to report such feedback and store them in a logs file. So that the feedback can be analyzed, fixed and can be re-run by the maintainers to see if the problem is still there.

Implementation

The following step was followed to implement this project:

  • Selecting the frontend and backend framework for the project.
  • Finding a way to fetch multiple results for reverse geocoding as nominatim only returns a single result.
    • We used overpass API to fetch multiple results and then to provide an option to select a correct result base on reverse search results.
  • Hosting the frontend and backend code on the server.
    • Our frontend UI can be found here.
    • Our backend API can be found here.
  • Testing the frontend and backend code.
    • We used puppeteer and mocha to add integration tests to the frontend.
    • We used pytest for unit testing backend code.
  • Setting up the continuous integration pipeline.
    • We used GitHub Actions to integrate the CI pipeline to test as well as build our frontend and backend code.

Final product at the end of the GSoC

After phase-1 was completed, I along with my mentors had a discussion about the flow of the web interface and we decided to change some of the screens to make it more user friendly.

The screenshots below show the final product of the project.

Now we have a review page for all the feedback that was reported.

What did I learn?

  • Worked on completely new frameworks and how to adapt to them.
  • How to add testing to the project.
  • Worked on integrating CI pipeline where I ran backend as a daemon process and frontend ran tests and stored all the logs files in the backend.
  • Working and hosting APIs and frontend code on the server. This was the first time I worked integrating certbot to enable HTTPS on our website.

What next?

  • UI can be made user friendly.
  • Currently overpass API fetch only data that has name tag. So we need to add a checkbox that will fetch all the data rather than only name tag. ISSUE: #3
  • Whole application can be dockerized.
  • Accessibility features can be added.

Acknowledgement

I would like to thank my mentors Marc Tobias and Sarah Hoffmann for helping and guiding me in the project throughout the GSoC journey!

I am thankful to Google Summer Of Code for providing me with an opportunity to work with OpenStreetMap.

Location: Vijyant Khand, Chinhat, Lucknow, Uttar Pradesh, India

Discussion

Log in to leave a comment