OpenStreetMap logo OpenStreetMap

Nominatim Feedback Reporter - GSoC'21 Phase-1 Progress

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

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.

Source Code

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.

Server is Online

We have a development server up and running, which contains the following things:

  • The feedback interface, which is the main project, can be found here: https://gsoc2021-feedback.nominatim.org/feedback/.
  • The OSM data imported through Nominatim is only for India and is not regularly updated. Currently, it contains data from 20-05-2021.
  • Using the reverse-search method for reporting feedback can show data outside India as it uses Overpass API, which contains whole planet OSM data.
  • As it is a development server, feedbacks are being stored but will be deleted later.
  • We regularly update the UI as the code is evolving, so don’t forget to refresh your browser’s cache.

More about the code

In this section, I will talk more about the code, how it is structured and implemented.

Frontend

We are currently using svelte as a frontend framework. The code structure is as below: Frontend code stucture 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/

Backend

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:

What Next?

Here is a list of things that need to be done in the second part of this project:

  • Enhancing the UI/UX of the website.
  • Fixing any issues or bugs in the website.
  • Increasing the coverage of tests.
  • Work on the stretch goals as discussed in my previous post.

Acknowledgements

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.

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

Discussion

Comment from muzirian on 24 August 2021 at 10:52

nice work, hoping to see these kind improvements on the main instance.

Log in to leave a comment