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).
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.
The following step was followed to implement this project:
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.
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.
Hello everyone! In my previous diary entry, I discussed a brief of my project. Now, as the first phase is over, I would like to make an update of my project, “Nominatim Feedback Reporter”, which is under development.
The source code can be found in the following GitHub repository: https://github.com/darkshredder/nominatim-feedback-reporter/ It also contains a README.md file for the instructions to install the project for local setup.
We have a development server up and running, which contains the following things:
In this section, I will talk more about the code, how it is structured and implemented.
We are currently using svelte as a frontend framework. The code structure is as below:
We use component-based code structure for reusability, Bootstrap for layout styling, Leaflet for map interaction, Mocha to run tests. We have added integration tests to thoroughly test the flow of our website rather than unit testing for mainly testing the UI components.
Here are some screenshots from the UI we have made up to now. It still needs some tweaking of the wordings and changes in UI/UX.
As there are a lot of pages for the flow of the website. I would recommend trying it out from here: https://gsoc2021-feedback.nominatim.org/feedback/
We are using Falcon as our backend framework for creating API. The code structure is based on MVC architecture, although we are not using models as our data are stored in log files in YAML format instead of databases. The code structure is as below:
For testing our backend, we are unit tests through pytest.
The example of the file stored in YAML format can be found as below:
Here is a list of things that need to be done in the second part of this project:
I want to express my gratitude to my mentors: Marc Tobias (mtmail) and Sarah Hoffmann (lonvia) who helped me throughout the process. We had weekly calls for discussing the entire flow of the website and project progress. I would also like to give my special thanks to Marc Tobias for providing me with the right direction for every week through a proper timeline and helping me set up the development server, which accelerated progress through quick feedback.
I am Yash Srivastava, an undergraduate student from the Indian Institute of Technology at Roorkee in Uttarakhand, India. I usually spend my time exploring different technologies and creating various projects.
Apart from development, I enjoy solving rubix’s cubes, reading books, watching anime. I also love adventure sports and travelling to different places.
I was working on creating a website for my college society where we needed to integrate a map to find the location of our college society.
At first, I tried with Google Maps integration, but the location was not found there and integrating it also required some API keys, which involved more work. Later while searching for alternatives, I found out about OpenStreetMap and how we can integrate it with our website and make changes to its database in a hassle-free way.
The project proposal can be found here
Currently, there is no standard platform where users can report geocoding bugs or send feedback. Generally, if a user wants to give feedback or report a bug, one has to have a GitHub account and then create an issue that is not feasible. Thus we aim to create an Interface for reporting search bugs for Nominatim.
It will have the following project goals:
The interface will be mobile-friendly.
The backend will store log files for the reported bugs.
Test suit will be created and iterated parallel to both frontend and backend.
Since this year GSoC has a shorter period thus we will have the following stretch goals:
We will be adding a python script that will export log files to a CSV format that can be processed through Geocode-Tester to recheck the reported bugs.
Dockerizing the whole application for the portability of code.
Creating a Continous Integration pipeline using GitHub-Actions.
Adding internationalization support.
That’s pretty much it. I will keep adding diary entries and keep everyone updated. If you have any questions about feel free to comment below. Thanks!