This page lists a number of ideas for potential Google Summer of Code 2019 projects. Ideas from previous years are often still good and can be used - see Category:Google Summer of Code ideas. Also check out Research/Ideas (project ideas related to research or academia), Top Ten Tasks (some prominent development tasks in the OSM ecosystem), and existing bugs for more problems to solve.

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 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. If you are thinking of applying for GSoC, please also read about our expectations for student applications. The Google Summer of Code/Processes page describes the way that we manage GSoC within OSM, so you know what we expect of students and mentors.

This is the list of projects. Please add projects using the GSoC idea template.

JOSM editor

For more ideas, you can have a look at the gsoc-candidate tickets in the ticket tracker.

PT_Assistant

PT_Assistant plugin Suggested By Polyglot Summary Further development of public transport plugin Skills Required Java Difficulty Hard Possible Mentors Polyglot, nlehuby, dkocich Notes Google_Summer_of_Code/2019/PT_Assistant_Plugin Comments PT Assistant was developed over the past 3 summers as a GSoC project. There are still ways to improve it further, like checking the stops are in the correct order, on the correct side of the street. It would be beneficial to add the ways adjacent to the stops, before the routing helper is started. A routing helper for bicycle route relations would also be a good enhancement. Bicycle route relations in cycle node networks, have some peculiarities near those nodes, when the nodes are split. See the link to the page containing more details.

Extend Wikipedia plugin for Wikidata

Extend Wikipedia plugin for Wikidata Suggested By Polyglot Summary User interface for working with Wikidata Skills Required Java Difficulty Medium/Hard Possible Mentors Polyglot Notes PDF, video The Wikipedia plugin has basic support for wikidata at the moment. I would like a user interface which compares tags/properties. In case the mapper is importing data into OpenStreetMap, it could help create Wikidata entries for these POIs as well, suitably referenced. There is a WDTK Wikidata Toolkit written in Java, which can probably be used (it was added to JOSM last year) and there is this interface: Sophox , which might be useful and another one from Edward Betts Comments Suggested demo of coding ability: extend wikipedia plugin or create a separate plugin and add a layer with nodes for wikidata entries which have coordinates. When such a 'node' is clicked, show a dialog with the properties of the Wikidata item.

iD editor

Task Manager integration Suggested By Bhousel Summary locking/unlocking tasks

view / change status / marking as done

commenting

get next task

others? We'll probably want to create a pane for users to manage the task they are working on, as well as url parameters to control what iD shows there. iD is often used as the editor for a task manager, such as HOT Task Manager and MapRoulette. To streamline the workflow for users, it would be great to do task manager things from within iD:We'll probably want to create a pane for users to manage the task they are working on, as well as url parameters to control what iD shows there. Skills Required JavaScript (d3.js) Difficulty Medium Possible Mentors Bhousel Notes https://github.com/openstreetmap/iD/issues/5856 Comments

3D and indoor rendering

3D traffic sign rendering for OSM2World Suggested By Tordanik Summary Importing different countries' traffic sign catalogues

Rendering of vertically stacked signs, as well as destination signs with labels and arrows derived from turn =* and destination =*

and Font rendering for signs with custom text, supporting several OSM2World output formats Time permitting, the student can also work on related tasks such as SVG texture support, localization of road markings, and additional road-side features such as traffic lights or traffic mirrors. The OpenStreetMap data model allows for detailed traffic sign mapping, which would improve the visual fidelity of 3d scenes rendered with OSM2World. This project involves, at least:Time permitting, the student can also work on related tasks such as SVG texture support, localization of road markings, and additional road-side features such as traffic lights or traffic mirrors. Skills Required Java, basic understanding of 3D graphics fundamentals Difficulty Medium Possible Mentors Tordanik Notes The application should note any previous experience with 3D APIs (such as OpenGL, DirectX, or WebGL) or engines. This knowledge is not strictly required, but makes the project easier. Comments

Simple Indoor Tagging support for OSM2World Suggested By Tordanik Summary While OpenStreetMap is already used to map the world in three dimensions, this is usually still limited to the outdoors. By making use of Simple Indoor Tagging , the OSM2World renderer would be able to create seamless indoor and outdoor 3D worlds. The goal of this project is to add basic multi-level floor layouts, involving rooms and walls, doors and windows, elevators, staircases and other indoor features, into OSM2World's 3D buildings. Skills Required Java, basic understanding of 3D graphics fundamentals Difficulty Medium Possible Mentors Tordanik Notes The application should note any previous experience with 3D APIs (such as OpenGL, DirectX, or WebGL) or engines. This knowledge is not strictly required, but makes the project easier. Comments

GoMap!! editor

GoMap!! & Mapillary: Integrate Mapillary Image SDK into GoMap!! for mobile mapping Suggested By Tordans Summary GoMap!! is the best mapping tool for OSM on iOS (iPhone and iPad). It it the best too for #MapWalking – improving OSM while on the go. Mapillary on the other hand is ideal to record information visually to map them later at home. Both use cases should be combined: Thinks that are too complex or time consuming to map right now in GoMap could be captured with an integrated Mapillary image capturing to map later. But also thinks that I just mapped in GoMap benefit from a few images as a form of visual proof and guideline for other mappers. Skills Required iOS Difficulty medium Possible Mentors

Development bryceco For UX and UI Feedback Tordans Development Zlavergne Notes GoMap Github Issue for this idea: https://github.com/bryceco/GoMap/issues/168 Mapillary SDK Blogpost https://blog.mapillary.com/update/2018/11/06/capture-sdk.html Mapillary SDK Github Mapillary SDK Github https://github.com/mapillary/mapillary-sdk-ios Comments

Vespucci editor

Vespucci + Mapillary + OpenStreetCam Suggested By SimonPoole Summary Vespucci has long had the ability to take and display geo-referenced photographs from the app, integrating Mapillary and OSC support, and other improvements to the image handling are older tasks that could be tackled in one go. Skills Required Java, some Android experience would be helpful, the ability to type lots of exclamation marks is not required. Difficulty easy to medium Possible Mentors SimonPoole Notes any libraries that are integrated / used as a dependency must be available as open source preferably Apache 2.0 licence. Relevant issues on the Vespucci repo https://github.com/MarcusWolschon/osmeditor4android/issues?q=is%3Aopen+is%3Aissue+label%3APhotos Comments

Nominatim

Nominatim is the geo search engine that powers the search box on the main osm.org site. There are a number of enhancements open that fit into the framework of GSoC.

Add Wikidata to Nominatim Suggested By Lonvia Summary Nominatim already uses page ranking of Wikipedia pages to guess the importance of all the places it indexes. Lately OSM data has also gained a lot of wikidata tags which might provide similar information. The goal of this project is to extend the existing wikipedia extraction scripts to also take into account wikidata. The principal aim is to improve the existing importance ranking. As a secondary goal you should investigate if other data from wiki data might be useful as well in order to improve search result. Skills Required PHP, SQL(Postgresql, Postgis) Difficulty Medium Possible Mentors lonvia Notes The existing wikipedia extract script can be found here: https://github.com/openstreetmap/Nominatim/blob/master/utils/importWikipedia.php Comments

Search suggestions for osm.org Suggested By Lonvia Summary Providing suggestions while typing in a query in the search box is a standard feature of online maps. Nominatim itself cannot be used for generating such suggestions because it cannot handle partially written words. Full text search engines like elastic search are much better suited for that job. The goal of this project is to set up a database for search suggestions for osm.org. This database must be derivable from the Nominatim database, regularly updatable, be able to handle arbitrary languages and small enough to run alongside the Nominatim installation on nominatim.openstreetmap.org. A possible starting point is the Photon project which creates an elastic search database from Nominatim and therefore already fulfils part of the requirements. Skills Required Java, SQL(Postgresql, Postgis) Difficulty Hard Possible Mentors lonvia raysonjamal Notes Comments

Extracting QA reports from Nominatim 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 Required JavaScript, SQL(Postgresql, Postgis), some mapping experience with OSM Difficulty Medium Possible Mentors lonvia Notes Comments

osm2pgsql and rendering

Importing Wikidata into Planet Database Suggested By Frederik Ramm Summary Standard workflow for creating tiled maps is importing OSM data into PostGIS with osm2pgsql, then designing a Mapnik style that uses SQL SELECT statements to retrieve data to be rendered. Increasingly, OSM objects carry a Wikidata ID, and it is conceivable that a map maker would like to access an object's Wikidata properties when styling a map. A simple example might be looking up names - you might want to render the English name of something and if name:en is not set in OSM but a Wikidata link is present, you might want to use the English name from Wikidata. Since live access to Wikidata at render time is not feasible, a mechanism must be designed that imports selected Wikidata information into the PostGIS database, likely into a separate table or separate tables, so that it may be joined in a SELECT. Some design work will be required because it is not clear whether Wikidata properties should be loaded during or after the osm2pgsql import, and what to do if the OSM data is updated. One might either run regular refresh cycles, or construct triggers on update, or similar. Skills Required SQL(Postgresql, Postgis), C++ if osm2pgsql modifications are made (though a standalone augment-database-with-wikidata program is an option and could then be done in a programming language of choice), experience with Wikidata API or dumps would be useful Difficulty Medium Possible Mentors Frederik Ramm Notes Comments

Osmose-QA

Osmose-QA OpenData wizard Suggested By frodrigo Summary Osmose-QA provide feedback as issue from OSM data to contributor. It also have a part for merge OpenData to OSM data. The result of those merge are provided as advice to contributors: missing data on OSM, OSM objects not found in OpenData, OSM object that can be improved… As the time pass there is more ad more OpenData available to possibly integrate this process. Nevertheless it still require to a python like configuration file and tests. The next step would be to make wizard for new data set from on OpenData. It may be done by generating the python configuration file and run it on request for the contributor. Skills Required Web frontend (JS, Python or other), DevOps (Docker) Difficulty Medium Possible Mentors frodrigo Notes Comments

Other

Data QA

Quality Assurance tool for OpenStreetMap Suggested By Stalfur Summary Identifying data gaps is incredibly helpful in expanding the map to areas lacking it. This tool extracts data from OSM and then categorizes depending on set conditions. This phase would focus on settlements - finding out if they are connected to the national road network, if buildings are mapped, amenities, addresses and foot paths. Skills Required Server side scripting (PHP, Python or other), database (PostgreSQL), simple JavaScript ajax calls Difficulty Medium Possible Mentors Stalfur Notes In 2015 I created a prototype of this (dormant last 18 months) in PHP/MySQL where I first extracted all settlements from OSM country by country, then ran Nominatim to assign them to a region and subregion and then queried Overpass for each settlement to update status to green or red/orange depending on criteria . This allows us to quickly evaluate a regions mapping status - if it is "poorly" mapped or well mapped . A human can evaluate each settlement separately , in this example using dropdowns. Automated processes can be run again and again and upgrade status if applicable (upgrade from none to partial for example). A human judgement is required for marking things green for most use cases though - including imagery evaluator tool I made. When this was run in 2015 it contained 1.4 million rows. The prototype code can be shared to kickstart. Using own local Nominatim instance would be beneficial as usage limitations slow things greatly down. Comments

See also