Skip to content

Google Summer of Code 2017 Progress Reports

Rodrigo edited this page Sep 10, 2017 · 29 revisions

Project Description

See the Project Description Page

Timeline

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

Meetings

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

Weekly Reports

Week 1 (May 30 - Jun 4)

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.

Week 2 (June 5 - June 11)

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.

Week 3 (June 12 - June 18)

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.

Week 4 (June 19 - June 25)

1. What do I have completed this week?

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.

Week 5 (June 26 - July 2)

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?

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.

Week 6 (July 3 - July 9)

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

Week 7 (July 10 - July 16)

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

Week 8 (July 17 - July 23)

1. What do I have completed this week?

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

Week 9 (July 24 - July 30)

1. What do I have completed this week?

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

Week 10 (July 31 - August 6)

1. What do I have completed this week?

2. What am I going to achieve for next week?

3. Is there any blocking issue?

  • No blocking issues

Week 11 (August 7 - August 13)

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
Clone this wiki locally