Google Summer of Code 2018 with OpenStreetMap [Phase- 1]
I am happy to be selected for GSoC 2018 as a student developer with OpenStreetMap. My project focuses on improving and adding more functionality to the PT web editor for OSM.
Last few weeks have been hectic but quite exciting. I have been juggling university exams as well as my GSoC project. Throughout this time as well as the community bonding period I have had regular meetings with my mentor dkocich. During the community bonding period, we discussed many aspects of the project including timeline and goals. I also tried out few things, like the redux pattern with Angular during that period. I will be documenting the progress of my project here.
As a part of our goal to make the application work smoothly for different connection speeds, I worked on the client side storage with IndexedDb. Among many libraries available for IndexedDb integration, I decided to go with Dexie.js as it allows secondary indices and complex queries, which is needed for our use case. It is heavily promise-based and I learned quite a lot about anti-patterns, best practices and tricky parts of asynchronous JS programming while implementation.
In addition to storing the response every time a request to Overpass API is made, current implementation also includes downloading some additional data in the background and storing it. This allows us to avoid making requests to Overpass API and fetch it from the IndexedDb instead, whenever possible. The amount of data which is downloaded in background varies with different connection speed modes.
I focused on testing/improving the IDB integration in the app. I was able to devote less time due to the hectic schedule of the ongoing exams in this particular week. Hoping to make up for this in the coming weeks.
I worked on splitting the app into two different modes. Beginner Mode has limited access to the information and has limited editing abilities. No extra information such as regarding the route masters is displayed to the users in this mode. I also worked on displaying proper notifications to the user, so as to create the least amount of confusion.
I started the work on error highlights such as highlighting all platforms/ stops with missing tags. We have focused on making it as intuitive/easy as possible for the users.
I have started the work on other error correction/highlighting modes as well. We have also planned automated fixing in some particular cases.
It has been a great journey so far and I am looking forward to the next phase. I am sure that it will be a lot more productive as my exams are finally getting over.
Thanks for reading!