< Google Summer of Code < 2021 
      Google Summer of Code/2021/Project ideas
This page lists a number of ideas for potential Google Summer of Code 2021 projects. This page's primary purpose is to help to give potential applicants ideas that they can build on to turn into applications for the program. Members of the OSM developer community are encouraged to identify ideas for projects here, and whether they would be willing to act as a mentor for a student attempting the project.
Students can base their application on one of these ideas, or on an idea of their own if they prefer.
Please add projects using the GSoC idea template. This year's GSoC projects will be significantly shorter than in those the past, so the scope of project ideas should reflect that.
Core / API
Searching
| Suggested By Lonvia Summary Nominatim contains OSM data in a processed form that allows to discover a lot of inconsistencies. The goal of this project would be to identify possible sources of inconsistencies and write and automatic extraction tool that exports the possible errors to a json file suitable for Osmoscope. Skills JavaScript, SQL(Postgresql, Postgis), some mapping experience with OSM 
 Difficulty Medium Possible Mentors lonvia, mtmail Notes Comments Please note that this year we only accept students for the Nominatim projects that already have proposed a pull request for the Nominatim software. This may be PRs for code, improvements to the documentation or new tests. For more information, see User:Lonvia/GSoC_2021_Nominatim_Projects. | 
| Suggested By Lonvia Summary We'd like to have an interface where people can report search results that they think to be wrong. The website would need to record the relevant parts of the search query and ask the user for the expected results. Reporting should work for forward and reverse geocoding requests. The reports should be collected in a database and then compiled into a test suite, for example using https://github.com/geocoders/geocoder-tester. If there is enough time, the project might also include a facility to regularly run the tests and report results in a dashboard. Skills JavaScript, Python, basic SQL 
 Difficulty Medium Possible Mentors lonvia, mtmail Notes See https://github.com/osm-search/Nominatim/issues/1847 for details on the requirements of such an interface. Comments Please note that this year we only accept students for the Nominatim projects that already have proposed a pull request for the Nominatim software. This may be PRs for code, improvements to the documentation or new tests. For more information, see User:Lonvia/GSoC_2021_Nominatim_Projects. | 
| Suggested By Lonvia Summary Nominatim has scripts to process dumps from wikipedia and wikidata. These scripts do a simple link frequency analysis to determine for each wikipage how important it is. We use this importance than to weigh the importance of search results. The scripts work but are very resource hungry. Processing all the data requires more than 1TB disk space and takes more than a day. There is room for optimisation here. Our main goal is to have a process that can be run regularly on a medium sized machine. Skills bash, basic SQL, maybe Python 
 Difficulty Medium Possible Mentors lonvia, mtmail Notes Resources:
 
 Comments Please note that this year we only accept students for the Nominatim projects that already have proposed a pull request for the Nominatim software. This may be PRs for code, improvements to the documentation or new tests. For more information, see User:Lonvia/GSoC_2021_Nominatim_Projects. | 
General
| Suggested By SimonPoole Summary https://github.com/simonpoole/OpeningHoursParser is used in a number of projects for parsing OSM opening_hours tags, it is however missing a complete evaluator. Skills 
 Difficulty Medium Possible Mentors SimonPoole Notes There is some work https://github.com/leonardehrenfried/opening-hours-evaluatoron which this might be able to be based on, at least minimal holiday support should be added and location based interpretation of sunrise and sunset values. This will entail finding a suitable licensed source of such data, or creating an own format (note GPL and AGPL sources are off limits). Comments Language: Java, use of 3rd party dependencies should be minimal, best none at all. | 
Mobile
| Suggested By SimonPoole Summary https://vespucci.io uses https://github.com/simonpoole/mapsplit for offline data. Currently there is no support for updating the data in place, which would allow directly updating the data from edits and potential for keeping a mapsplit file up to date with OSM edits in general. Skills 
 Difficulty High Possible Mentors SimonPoole Notes The likely best way to implement this is to consume Overpass Augmented or a simpler format context diffs (the later however would require developing a mechanism to generate them) format. Updating should be both possible on desktop/Server and on mobile. Support for directly updating from edits in Vespucci (post upload) should be supported too. Comments Language: Java, potentially Kotlin for any standalone components on mobile. | 
| Suggested By SimonPoole Summary See https://github.com/MarcusWolschon/osmeditor4android/issues/577 the deliverable would be a widget that will display multiple version of an OSM element highlighting the differences. Skills 
 Difficulty Medium Possible Mentors SimonPoole Notes If reasonably possible this should be implemented as a separate component from Vespucci to enable reuse by other apps (there are a couple of gotchas that might make this too much effort for the possible gains). Comments Language: Java, some Android experience required. | 
JOSM editor core
| Suggested By SimonPoole Summary https://vespucci.io utilizes the JOSM preset format, however has extended the configuration to work better outside of the narrow realm of JOSM see . The work should add support to JOSM for these extensions (that includes utilizing them in the UI). Skills 
 Difficulty Easy Possible Mentors SimonPoole Notes See http://vespucci.io/tutorials/presets/#translation At least translation with GNU text, the deprecated attribute to indicate deprecated preset items, regions and exclude_regions for localisation, the value_type attribute to indicate the type of the value and the alternative attribute should be supported. Time permitting some work could be done on the Vespucci side of things to support more features of the JOSM format and further extensions (that might make sense for JOSM too), see https://github.com/MarcusWolschon/osmeditor4android/issues?q=is%3Aopen+is%3Aissue+label%3APresets Comments Language: Java. | 
JOSM editor plugins
| Suggested By grait Summary https://github.com/JOSM/indoorhelper is a JOSM plugin to support indoor mappers with automatic level tagging, tag presets and validators. Right now, this plugin has a very limited usability  and does not support the whole indoor mapping work flow. Skills Java, Knowledge of JOSM architecture 
 Difficulty easy Possible Mentors grait Notes The plugin supports the Simple Indoor Tagging (https://wiki.openstreetmap.org/wiki/Simple_Indoor_Tagging) scheme and should support the mapper during the complete indoor mapping workflow (building map fitting, creation of levels, mapping of building elements, etc.) Comments | 
OSM Website
| Suggested By LeTopographeFou Summary Today it's quite cumbersome to follow changesets comments: The only place where one can keep track on them is by using HDYC website, which is not that user friendly. The purpose of this idea would be to add a kind of forum-like or webmail-like interface in a user profile to list all changesets where the user has published a comment and all changesets by the user which have been commented, with a basic read/unread mechanism. I even think that it could be merged with the profile inbox/messages feature to have everything interconnected in one single place. Skills Ruby, HTML, JS, CSS 
 Difficulty High Possible Mentors TBD Notes Additional explanatory notes Comments You should discuss your proposal with the Rails port project maintainers in detail even before applying. Otherwise there's a very high risk that your contribution will not be considered at all for a later merge. This proposal is similar to https://wiki.openstreetmap.org/wiki/Top_Ten_Tasks#List_of_changeset_discussions_for_a_user, for which an implementation already exists: https://github.com/openstreetmap/openstreetmap-website/pull/1642 | 
    This article is issued from Openstreetmap. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.