A mobile app that helps new visitors to cities discover exciting destinations and plan the best trip possible.
Built using Node.js and React Native technologies, along with leveraging the Yelp, Uber and Unsplash APIs.
Find your city | How many attractions? |
---|---|
Keywords | Results |
---|---|
- Clone this repository.
- Follow the instructions below to instantiate the server and build the React Native application.
cd
into server directory and runnpm install
- Rename
server/uberSecret-template.js
toserver/uberSecret.js
andserver/yelpSecret-template.js
toserver/yelpSecret.js
- Retrieve Uber API credentials and replace the values in
server/uberSecret.js
accordingly - Retrieve Yelp API v3 credentials and replace the values in
server/yelpSecret.js
accordingly - Start the server with
npm start
-
Follow the React Native installation instructions
-
cd
into react-native directory and runnpm install
-
Rename
react-native/env-template.js
toreact-native/env.js
-
Retrieve Uber API credentials and replace the values in
react-native/env.js
accordinglyIf running the server locally, replace
api
inreact-native/env.js
withhttp://localhost:8000
Otherwise, replace
api
inreact-native/env.js
with the URL to where your server can be found. -
Run the following commands from within the
react-native
directory -
Debug the app on iOS with
react-native run-ios
-
When ready to build a release build, run the command
react-native run-ios --configuration Release
or follow the directions provided by the React Native docs here
This hack was created for QHacks 2017 and was submitted to Devpost here
One of the members of our team came up with it on the bus on the way to the hackathon. She actually came up with a bunch of different ideas and we voted as a team (over the course of about 3 hours) for which one we were eventually going to work on!
Twelper leverages the Yelp and Uber APIs to suggest popular destinations for the user to visit in a new city, and then provides them with a convenient way to request trips between each of their destinations. Using Twelper, a traveller can plan a day filled with fun activities.
The backend for the application is written in Node.JS. When a request hits our endpoint from the frontend, we make a series of requests to the Yelp and Uber APIs to retrieve a list of destinations in the user's area, and the travel times and costs between each of these destinations. We then employ an algorithm of humble heuristics to create a convenient travel itinerary from one stop to the next.
The frontend of the application is written with React Native and was primarily developed using iOS, but will be easily portable to Android as well. The front end gathers a number of details about the user, including their location, where they're visiting and how many things they're interested in doing that day. It sends that information to our backend and then displays a list of all the destinations we've suggested for the user, as well as convenient buttons for the user to request Uber rides in between each stop.
Learning a new API is always hard and the sheer vastness of Yelp's APIs can make it an even more daunting task. Discovering what calls we can make and what we can make them with was a constant learning process throughout the weekend, as we refined the data we were requesting from Yelp. Similarly with Uber, taking their APIs and finding optimal travel paths across the city, as well as learning about using deep linking to conveniently open the app for the user.