Google Summer of Code/2019/Project ideas

From OpenStreetMap Wiki
Jump to: navigation, search

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.

Processes

If you are thinking of applying for GSoC, please see our Google Summer of Code/Processes page which describes the way that we manage GSoC within OSM, so you know what we expect of students and mentors.

Project Ideas

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

API

JOSM Editor

PT_Assistant

PT_Assistant plugin
Suggested By
Summary
Further development of public transport plugin
Skills Required
Java
Difficulty
Hard
Possible Mentors
Polyglot, nlehuby
Notes
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.

iD Editor

Paint the buildings and roofs
Suggested By
Summary
A new panel in iD editor which allows the user to quickly select building color, roof color and roof shape and orientation according to the Simple_3D_buildings guide
Skills Required
JavaScript (node.js)
Difficulty
Low
Possible Mentors
None yet
Notes
The tags needed for a simple 3d paintjob are few and simple. In addition to the standard building:levels these are sufficient, building:colour, roof:colour, roof:shape, roof:orientation
Comments
iD Editor: Editor for lanes, turn lanes and data richness for car, bike, walk
Suggested By
Summary
Streets are the foundation of OSM in most regions. Yet tagging them in detail is still very complex and hard. A dedicated editor or editor-UI in iD will improve the data richness and quality for all roads. The editor should start with road lines for cars but also look at bike lanes and pedestrians. In a bigger picture, rich data (eg. surface, width, type, turn lanes) for all means of transport build the backbone for campaigns and project that aim to improve the health (particulate matter) and help prevent climate change by changing the transportation modes in cities.
Skills Required
iD Editor Codebase (React, …), Deep understanding of OSM tagging
Difficulty
Hard
Possible Mentors
For UX and UI Feedback Tordans
Notes
Some first step research about this:

Feature Discussion for iD https://github.com/openstreetmap/iD/issues/387 Presentation: Mapping for pedestrians https://www.youtube.com/watch?v=DHecYP_b3os Rich data for bikes can be visualized like https://maps.bikeottawa.ca/lts-map/ and https://maps.bikeottawa.ca/routing/ Presentation: Rich data for bikes for a stress level index https://www.youtube.com/watch?v=YgyynQDPQnQ (https://github.com/PeopleForBikes)

More about the stress level index concept https://blog.altaplanning.com/level-of-traffic-stress-what-it-means-for-building-better-bike-networks-c4af9800b4ee
Comments

3D and indoor rendering

Simple Indoor Tagging support for OSM2World
Suggested By
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
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
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
Possible Mentors
For UX and UI Feedback Tordans
Notes
Comments

Data QA

Quality Assurance tool for OpenStreetMap
Suggested By
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
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
Subscribe to changes for a region I know well
Suggested By
Summary
Wikipedia has a simple but powerfull tool to increase the quality of a page: Whenever I edit it, I can also subscribe to changes. This way I can contribute to the quality of the article over time. It also helps against bad edits. (More https://de.wikipedia.org/wiki/Hilfe:Beobachtungsliste). — OSM does not have a solution for this usecase. Ideally, this tool where integrated tightly with the OSM website and iD Editor to allow a one click subscription to changes in the current region. The tool would send emails with a helpful summary of the change and encourage nice replies to changes (positive or contructive). The tool will continues to send emails until the user stops reacting to the emails (same as Wikipedia).
Skills Required
Difficulty
Possible Mentors
For UX and UI Feedback Tordans
Notes
Related: The closes that OSM has to solve this, is OSMCha: You can create a filter for a region and subscribe it via RSS. However, both steps are quite complicated. And also, the RSS view and mobile view of OSMCha in general do not help a lot when reviewing those changes while on the go. See https://github.com/mapbox/osmcha-frontend/issues/345 for more.
Comments
Connect StreetMix with OSM road data
Suggested By
Summary
All over the world people are campaigning to improve their streets. This movement is part of a push for healthier and climate friendly cities. Streetmix allows to visualize a street segment in its current form and then dream up a better version. OSM could be the perfect base layer for streetmix to improve a road for local campaigning. On the other hand, streetmix could help OSM to visualize the rich data that is hidden on the road attributes.
Skills Required
Difficulty
Possible Mentors
- For UX and UI Feedback Tordans, - Mapmeld (I am a contributor to OSM, iD, and StreetMix)
Notes
There are multiple solutions and ways to use the tool

- The tool could be a middle that translates OSM data into a format that streetmix understands. A page that gets a OSM road segment ID and transposes the attributes into Streetmix image segment. In this solution Streetmix would need a URI or JSON based api to create a road. (https://github.com/streetmix/streetmix/issues/1156).

- The tool could also be integrated more tightly into streetmix to select a OSM road segment inside the Streetmix UI. (https://github.com/streetmix/streetmix/issues/36).

- The tool could also help on the OSM Website (Road Segment Details-View) and inside iD Editor to visualize a selected segment (https://github.com/openstreetmap/iD/issues/387).
Comments
Visualize Road Segment Changes (Git Diff for Road Segments)
Suggested By
Summary
OSM ways can have a rich set of tags like surface, maxspeed, width etc. However, reviewing (QA) and improving those tags is hard. A dedicated tool could improve the consistency and quality of road data for OSM: One starts with a road segment which is represented as a table of attributes (similar to OSM deep history for one changeset). The tool shows the following road segment and all changes (additions, removals) from this segment to the previous one. The tool adds further segments of this road, also if the road type changes, like it does when a footwalk has some stairs. Ideally, the tool would also allow to add the missing attributes based on a UI that fits the table layout pattern.
Skills Required
Extracting Data from OSM, Frontend Skills
Difficulty
Possible Mentors
For UX and UI Feedback Tordans
Notes
For Inspiration

The general UI could look like the OSM Deep History View but show road segments instead of changesset iterations. Also a map would be helpfull to visualise which segment is viewed. https://osmlab.github.io/osm-deep-history/#/relation/11037

The OSM Lane Visualizer does something similar but without the Git-diff-style highlighting of attribute-changes. http://osm.mueschelsoft.de/lanes/render.pl?relid=11037&start=1&country=de&placement&adjacent&lanewidth&usenodes
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
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
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 fullfills part of the requirements.
Skills Required
Java, SQL(Postgresql, Postgis)
Difficulty
Hard
Possible Mentors
lonvia
Notes
Comments


...