-
Notifications
You must be signed in to change notification settings - Fork 133
Google Summer of Code 2017 Progress Reports
See the Project Description Page
Week | Period | Activity | Status |
---|---|---|---|
Community bonding | Setup development environment for OpenTripPlanner and OneBusAway. | DONE | |
1 | MAY 30 - JUNE 2 | Integrate Portland (rack-based bike rental system) and Tampa (floating bike-based rental system) GBFS feeds into OTP | DONE |
2 | JUNE 5 - 9 | Review and publish GBFS documentation for OTP | DONE |
3 | JUNE 12 - 16 | Implement a default layer for floating bikes and zones/racks in OBA Android | DONE |
4 | JUNE 17 - 23 | Implement a default layer for floating bikes and zones/racks in OBA Android | DONE |
5 | JUNE 24 - 30 | Implement a default layer for floating bikes and zones/racks in OBA Android | DONE |
First evaluation | |||
6 | JULY 1 - 7 | Summer School | DONE |
7 | JULY 8 - 14 | Add bikeshare as a mode in trip planning for OBA Android | DONE |
8 | JULY 15 - 21 | Add bikeshare as a mode in trip planning for OBA Android | DONE |
9 | JULY 22 - 28 | Add bikeshare as a mode in trip planning for OBA Android | DONE |
Second evaluation | |||
10 | JUL 31 - AUGUST 4 | Support deep-linking to rent a specific bike | DONE |
11 | AUGUST 7 - 11 | Support deep-linking to rent a specific bike | DONE |
12 | AUGUST 14 - 18 | Bug fixes & UI test automation | DONE |
13 | AUGUST 21 - 29 | Bug fixes & UI test automation | DONE |
Final evaluation |
Date | Record | Status |
---|---|---|
MAY 10 | Mentors and student introduction. Project briefing. |
DONE |
MAY 25 | Student setup OTP dev environment. Next steps: Integrate GBFS feeds in OTP, setup OBA deve enrionment. |
DONE |
JUNE 8 | CANCELLED | |
JUNE 22 | DONE | |
JULY 6 | DONE | |
JULY 20 | DONE | |
AUGUST 3 | DONE | |
AUGUST 17 | DONE | |
AUGUST 31 | DONE |
1. What do I have completed this week?
- Set up OpenTripPlanner GBFS branch with two different systems from the GBFS directory:
- A floating bike-based rental system (USF Share-A-Bull in Tampa, FL)
- A rack-based bike rental system (BIKETOWN in Portland, OR)
- Updated OTP (OpenTripPlanner) documentation about GBFS
- Investigated if OTP bike rental API endpoint supports a bounding box as a parameter and found that it is already implemented.
- Requested and received access to TriMet's Mod Slack project to interact with the responsible for the implementation of GBFS in OTP in order to update the bike rental API endpoint
- Studied how the map view is implemented in OBA (OneBusAway)
- Started to implement the next task: Implement a default layer for floating bikes and zones/racks in OBA Android
2. What am I going to achieve for next week?
- Finish implementing a default layer for floating bikes and zones/racks in OBA Android
- Update OTP bike rental API endpoint parameters documentation
- Study the differences in implementation of the Google and Amazon OBA map view (seems that there are differences)
- Create a Docker Image of OTP with the configured GBFS feeds
3. Is there any blocking issue?
- Pull request to update documentation in the OTP repository failed because of issue 2441. I will have to understand how to solve the issue on the gbfs branch.
1. What do I have completed this week?
- Partially implemented floating bikes and zones/racks in OBA Android in the default layer
- Stations/Bikes are displayed as the default Google Maps marker
- Requests to OTP are sent without a bounding box
- Reviewed the documentation for contributing to OBA
- I started the implementation in the master branch, after reviewing the contributing documentation I created a new branch for the work.
2. What am I going to achieve for next week?
- Finish implementing display of bikes and bike stations in the default OBA layer, including the right UI presentation for bikes and bike stations, show details about a station when it is clicked (such as number of free spaces, number of bikes, etc), include bikes in a separate layer to allow users to switch on/off bikes on the map, and make requests to OTP including the currently displayed map.
- Update OTP bike rental API endpoint parameters documentation
- Study the differences in implementation of the Google and Amazon OBA map view (seems that there are differences)
- Create a Docker Image of OTP with the configured GBFS feeds
3. Is there any blocking issue?
There are no blocking issues, but including the bikes and stations in the default layer in OBA took longer than expected for various reasons:
- I had to study how the Google Maps API work and how to add new markers to it
- I had to understand how the map overlays, controllers and other details in OBA are implemented
- I found issues with the communication from OBA with OTP when testing the Android app using a physical device. The problem is that my machine is not allowing connections from other devices (it is a Linux system and I am not familiar with how to change network configurations on it).After some investigation, I started using an Android emulator for the tests as it was taking too much time. I still have to allow connections from the physical device to speed up my tests.
1. What do I have completed this week?
- Finished adding the bikeshare display on the main map of OBA.
- Solved problem (with the help pf Sheldon A. Brown) with my development environment that did now allow my physical Android device to reach the OTP server on my laptop
- Learned how to work with Docker
- Created a Docker image of OTP with two GBFS feeds:
- Coast Bike Share in Tampa, FL
- BIKETOWN in Portland, OR
2. What am I going to achieve for next week?
- Improve the bikeshare UI on the main map
- Start working on the next task: *Add bikeshare as a mode in trip planning for OBA Android
- Update OTP bike rental API endpoint parameters documentation
3. Is there any blocking issue?
There are no issues at the moment.
1. What do I have completed this week?
- Studied two libraries https://github.com/yavski/fab-speed-dial https://github.com/markormesher/android-fab to implement Floating Action Button Spped Dial https://material.io/guidelines/components/buttons-floating-action-button.html#buttons-floating-action-button-transitions effect. Implemented it using https://github.com/yavski/fab-speed-dial and removed the activation from the drawere menu. Later started changing the implementation to use option https://github.com/markormesher/android-fab as it seems to provide more control programmatically. I still have work to do on it.
- As part of implementing the FAB on the previous item, I spent some time to make it move with the sliding panel that appears in the bottom. I run into an known issue https://github.com/OneBusAway/onebusaway-android/issues/307 and tried to solve it, later I found out that I did not manage to solve it as I thought I did (see the comments on https://github.com/OneBusAway/onebusaway-android/issues/307)
- Changed the info window UI that appears when a bike marker is clicked to look more similar to other info windows in the system.
- Configured an OTP server with a router in the tampa are with two GBFS sources and updated the docker image in https://github.com/OneBusAway/onebusaway-android/issues/402#issuecomment-309734510
- Installed Inkscape https://inkscape.org/en/ and learned some basics on how to use it and SVG files. Changed some existing icons using Inkscape for the bike markers.
- Started to study OTP trip planning as part of the next task.
- Had a hangouts meeting with mentors
- Opened a work in progress pull request to get feedback on the code https://github.com/OneBusAway/onebusaway-android/pull/776.
2. What am I going to achieve for next week?
- Complete the UI work
- Correct the problems pointed out in the code revision
- Start working on the next task:
- Add bikeshare as a mode in trip planning for OBA Android
- Update the BikeRentalStation in OTP to include missing fields
- Update OTP bike rental API endpoint parameters documentation
3. Is there any blocking issue?
- There are no issues at the moment.
1. What do I have completed this week?
- I have made more progress in the UI, including:
- Create more markers for bike stations and floating bikes.
- Update icons and markers based on feedback
- Replace the library responsible for displaying the Speed Dial behavior on the Layers FAB (Floating Action Button) and included details like showing cancel icon when the speed dial is open and customizing the colors in the speed dial menu items
- Refactored the implementation of the Bike Overlay to remove usage of Google Maps Marker getTag() and setTag() methods since it is not supported by the Amazon Map in the Amazon version of the app. Worked to fix some of the code review problems and suggestions
- Started working on a TODO suggested in the code review to gracefully handle the case when the support for bikeshare is not present on the server.
- Since I will be attending summer school at my university between July 3rd and July 8th, I had to start working on my presentation and poster.
2. What am I going to achieve for next week?
- During this week I will attend my course Summer School in Scotland.
3. Is there any blocking issue?
- When changing the library to handle the Speed Dial behavior on the Layers Floating Action Button, I run into an issue with the library that I still need to investigate more. The color of the Floating Action Button is different from the other Floating Action Button. I've opened an issue at the library Github repository and will continue work to solve it.
1. What do I have completed this week?
- As I mentioned in the previous report, this week I had to attend the Summer School in Scotland and could not work on GSoC. My mentors are aware and I'll resume work this week.
- Had the bi-weekly hangouts meeting with my mentors
2. What am I going to achieve for next week?
- Gracefully handle regions that don't have bikeshare information enabled on the server
- Start working on the next task (Add bike as an option for on trip planning). I had planned to do this before, but could not finish everything else.
3. Is there any blocking issue?
- No blocking issues
1. What do I have completed this week?
- Gracefully handle regions that don't have bikeshare information enabled on the server. In order to do this a few changes had to be made:
- Include the field suppostsOtpBikeshare on the regions API
- Change the app to only show the option to show the bikeshare layer if bikeshare is supported on the server
- Include an option in the preferences window to let users decide if they want to see the bike layer option if it is supported by the server
- Included analytics to track user interaction with bikeshare. Actions tracked:
- Bikeshare is activated/deactivated in the preference window
- Bikeshare layer is activated/deactivated on the map
- A bike station or floating bike marker is touched
- Changed bike markers to display different sizes depending on the map zoom:
- No markers are displayed at zoom level below 12
- Small circle is displayed at zoom level between 12 and 15
- Full marker is displayed at zoom level above 15
- Refactored the code that handles requests to retrieve bikeshare to follow the same patterns as other requests in the app
- Created unit test for bikeshare request
- Created different info windows for bike markers depending if it is a floating bike or bike station
- Studied Amazon AWS and deployed OTP server with GBFS support docker image to Amazon EC2. This will allow others to test the work in progress without the need to run the OTP server locally and facilitate my tests. The bikeshare endpoint for the Tampa region on the EC2 development server can be found in http://13.59.175.177:8080/otp/routers/default/bike_rental.
2. What am I going to achieve for next week?
- Start working on the next task (Add bike as an option for on trip planning). I had planned to do this before, but could not finish everything else.
3. Is there any blocking issue?
- No blocking issues
1. What do I have completed this week?
- We are working to release a beta version of OneBusAway for testing with support of bikeshare through GBFS on the main map view. In order to do this, I've worked to fix issues found by Sean (one of the mentors) in the implementation (see issues on comment https://github.com/OneBusAway/onebusaway-android/issues/402#issuecomment-315795640)
- Started working to add bikeshare as a trip planning option.
2. What am I going to achieve for next week?
- Continue working to add bike as an option for trip planning.
3. Is there any blocking issue?
- No blocking issues
1. What do I have completed this week?
- This week I have included bikeshare as an option on trip planning. The work was separated in a new branch [https://github.com/carvalhorr/onebusaway-android/commits/gbfs-tripplan] (https://github.com/carvalhorr/onebusaway-android/commits/gbfs-tripplan).
- Started to study the deep-link to rent bike as documented in [https://github.com/NABSA/gbfs/pull/25] (https://github.com/NABSA/gbfs/pull/25)
2. What am I going to achieve for next week?
- Continue working on the trip planning after getting feedback from mentors
- Continue working on deep-link to rent bikes
3. Is there any blocking issue?
- No blocking issues
1. What do I have completed this week?
- Finished adding bikeshare as a trip planning option by fixing issues pointed by the mentors in https://github.com/OneBusAway/onebusaway-android/issues/402#issuecomment-319763116
2. What am I going to achieve for next week?
- Add deep-linking as explained in https://github.com/OneBusAway/onebusaway-android/issues/402#issuecomment-319769864
- Release a test version of OBA Android
3. Is there any blocking issue?
- No blocking issues
1. What do I have completed this week?
- Bug fixes
- Started studying UI testing in conjunction with Google Maps. Espresso doesn't seem to be able to test maps interactions, so I started looking for alternatives and ways to make the tests.
2. What am I going to achieve for next week?
- Bug fixes prior to releasing test version
- UI testing
3. Is there any blocking issue?
- No blocking issues