GSoC 2017 – Summary of the final 3rd part

GSOC 2017 is quickly coming to an end and here is the final wrap-up about the development progress:

1.8. – 13. 8.

  • adjustment of the route browser view (new icons symbolizing status of a route – if it was fully downloaded already; if it was checked for the possible existence of master relation)
  • adjust master variants view (improved logic to enable the view of route variants)
  • creation of new routes from route browser’s window (new button was added) + editing steps undo/redo of new routes
  • it is now possible to change members in all routes (both new and existing) with a new button in route browser’s window. When the “members editing” mode is enabled, the user can click (toggle) membership of any node element in the map. All route’s members are highlighted with a cyan circle marker…
  • various fixes – e.g. I decided to add strict type specifications lint rule because it starts to be helpful with the growing amount of code…

14.8. – 20.8.

  • I added more satellite/hybrid layers to the app because we had problems with the aerial coverage and good spatial resolution of Esri imagery. Layers of HERE and Mapbox are used in the basic unpaid version but it should be enough for now. Later on, I plan to add a Bing layer too.
  • I had to rewrite changeset uploading functionality so I can upload created platforms and routes to the OSM API.

21.8. – 27.8.

  • I decided to disable Sentry service completely for now (web app used for error tracking). I figured out that is was successfully hiding some of the ng2 errors in the log. I am going to add it back later after I will figure out how to use it without these complications.
  • added “open in JOSM” functionality (new button inside the current selection window)
  • bug fixes, work on some UI improvements, etc.

After 28.8.

  • I am going to work on the UI so the first users will have a better experience using the app. In the next weeks, we plan to publish some info about the app to the OSMWeekly newsletter. This means that the first users will share their thoughts about the application or join the development. I plan to register a talk on the FOSS4G.be which will be held in October. Next work will probably focus on the improvement editing functionality and on the restyling of an app for move devices too.

For now, I want to say that it was a great experience to participate in the Google Summer of Code and cooperate with my mentors.

GSoC 2018 – Summary of the 2nd phase

5.7. – 9.7.

  • during this week I enabled possibility to upload changes to the OSM production server and it was working fine and I created first changeset.
  • downloading of route masters was added and user can browse between route’s variants.
  • various small fixes (more basemap layers; UI styling; some tooltips on layers; highlighting of downloaded stop areas)

10.7. – 16.7.

  • the latest work concentrated mainly on the refactoring of downloading functionality while the currently chosen approach was downloading a big amount of data at the start of the application which caused some trouble mainly related to loading speed. New approach downloads just node elements (stops, platforms) and everything else (relations, master rel., stop areas) are downloaded after it is selected somewhere in the application. This makes the application faster at the beginning but sometimes also causes some problems with API which don’t like when it has to respond to too many requests in a short period of time – response contain “too many requests”, sometimes time out, or a user can receive his IP banned (like I did during my long testing 🙂 )…

17.7. – 23.7.

  • the project gets larger and logic little bit confusing already so during this period I did a quite bit refactoring of some parts with the help of TSlint which I used to apply more strict rules to provide better code consistency and maintainability in the future.
  • the functionality to reorder members of a route relations was finished. Now it is possible to edit all node members inside a relation and directly see how it affects the line connectivity in the map view (only for bus stops currently).

24.7. – 30.7.

  • functionality to create new node elements was finished together with the possibility to move between the changes.
  • various small fixes was done (better user information; deployment problems – Yarn lock file), some work on testing setup for Karma runner.

GSoC 2017 – summary of the 1st phase

The development of this project is made by David Kocich (mentored by Ilya Zverik and Polyglot) within the Google Summer of Code 2017. This blog is going to describe further progress and improvements.

Before the official start of the project, I was learning more about the OSM data model, public transport editing/validation with JOSM and PT assistant. I choose to use Angular 2, Leaflet and Webpack to create an application and all source codes are available on Github/DKocich. Development version of the app is available online too (http://osm-pt.herokuapp.com).

During the first phase, my work was more experimental and some parts of the app still don’t work how they should so there are still plenty of fixes and optimisation to be done later. Some of the changes made during the 1st phase are:

30.5. – 4.6.

  • experimenting with Angular/Webpack, adjustments of settings required for automatic building, testing and deployment

5.6. – 11.6.

  • progress on downloading functionality which requests OSM data from Overpass API; basic filtering and styling of OSM elements; adding of pop-ups with information about data

12.6. – 18.6.

  • added authorization for users with OpenStreetMap accounts using OsmLab/OsmAuth
  • functionality to highlight separate routes by its stops or all routes going through some specific node were added

19.6. – 25.6.

  • basic editing functions (prototyping of undo/redo history), editing of element’s tags

26.6. – 2.7.

  • further improvement of editing logic; fixing of data uploading using OSM API v0.6 and authentication; JSON to XML changeset transformation