Today, Uber is taking the world by storm, but it was not long ago that the service of having a driver come and pick you up at your location was too expensive to take advantage of. That memory still lingers in people's minds, and many people don't realize that in many instances it's not much more expensive than public transportation, although it is considerably more inconvenient. It's no secret that you get what you pay for, and when you pay for Uber you're going to have a better experience with your travel than taking public transportation. The inspiration for this application was to help people make transportation decisions that best fit what they were looking for.
What it does
Opo is a multiplatform (iOS, Android, Web) app that helps people figure out which mode of transportation is the best option for them. Using public APIs from Uber, Google Maps, and SEPTA, Opo compares the time and cost associated with traveling from one place to another.
How I built it
Opo was built with Ionic, a mobile framework that utilizes AngularJS to build dynamic, multiplatform applications. The match between the power of AngularJS and the beauty of Ionic UI makes the framework one of the best web application frameworks.
Additionally, we utilized Google Map API, Septa API, and Uber API to retrieve data and render components in the app.
Challenges we ran into
Originally the plan was to develop the application using React Native, a fairly new framework that lacks substantial documentation. After hours of debugging of what seemed like trivial problems we decided to drop what we had developed and to switch over to another more supported framework, Ionic. Being as though we had not had any previous experience with Uber's, Google', and SEPTA's API, we encountered a lot of difficulties configuring them. SEPTA's was especially difficult and required web scraping for additional data. We also run into problems with integrating Google Map API with AnguarJS.
Accomplishments that we are proud of
Creating a useful mobile application within 48 hours, especially considering the lack of mobile development experience.
What we learned
- HTTP request authentication
- Web Scraping
- Ionic/Angular to build native applications
What's next for OPO
- Define a backend service for the app to support caching data
- Define deep linking for transportation service application
- Integrating analytic's to gain a better understanding of consumer spending
- Integrate with social media accounts
- Integrate with more transportation services such as Lyft
- Expand beyond the greater Philadelphia area