I know I want to travel more and see the world. But I'm lazy. I don't make the time to plan out my vacation. And sometimes, I don't even know where to go next.
Travelapse lets people who do travel share their travel stories in a unique way through photos and videos we help them stitch together. These videos can then be posted and inspire others to figure out what their next travel destination should be. People like me can then create bucket lists and get help planning out their trip to these locations. And then I can share my own story when I go travel.
What it does
The app lets the user create albums of photos where they can line themselves up to be in the same location in the pictures. So imagine that the person in the foreground stays in the same position but the background changes. We superimpose the location of the user on top of the image, as the app is intended to be used while the user is traveling. The app lets the user stitch photos in a given album together into a video that they can then share to a newsfeed.
The newsfeed is not complete, but is intended to show all posted videos, which the user can then dive into to see the photos that comprise the video. Users can then favorite photos that inspire them to travel to a given place. All favorited photos for a given user show up in their favorites tab. Clicking on a favorited item will show the user the favorited picture, things to do in that area (using Expedia's Things to Do API), as well as the cheapest flight they can get to this location in the next two weeks.
The hope is that this app encourages users to share their travel stories through the videos and inspires them to travel more.
How I built it
We built our iOS app using swift for our front end, and node.js (using the sails.js framework) for our backend. The user uses the Facebook Graph and the Facebook Login API's to log into the app. When the user takes photos, the app resolves the location using the Google Maps api and tags the location to the photo. When adventure seekers favorite that photo, the location tag is used in the Flight Trends API, Suggestions and Resolutions API, and Things-To-Do API to determine the flight information and nearby attractions and other things-to-do.
The camera view overlays the camera screen on top of the last image in the album. This is designed to make it easier for the user to keep a subject in the photo consistent. The video is stitched using an open-source library.
Challenges I ran into
The primary challenge for our team was the learning curve. Both Node.JS, the Sails framework, and iOS were new platforms for most of our team members. For our most experienced iOS developer, stitching the video and handling files in the front-end and back-end was the primary challenge.
Accomplishments that I'm proud of
Our app! Despite the learning curve and the challenges, we were able to accomplish most of the features that we had envisioned. We are especially proud of our video stitching functionality as well as successfully integrating the various API's into our app.
What I learned
Node.JS, Sails.JS and iOS were new frameworks that most of us had little to no experience with before the hackathon.
We learned about the extensive amount of API's available to us, but how implementing the API's can take much longer than expected.
What's next for Travelapse
We want to finish building the UI for the newsfeed. We also think it would be great to integrate notifications into the app where the user can be notified of unbeatable deals that come their way for locations in their favorites list.