Traveling for some has always been worrying about not knowing directions or going places alone because they never thought there would be an opportunity to meet others with similar interests along the way. Sometimes it's also about trying to figure out how to save on transportation costs by splitting ride fees, but it really comes down to the nitty gritty details on how people may approach others online to strike up a conversation.
What it does
TripMatch makes the end side for travelers a lot simpler by allowing them to fill out a short questionnaire where the responses would be compared to other submissions to check for similarity, and then each user would be presented with consistently updated match options for people who are deemed a good fit to meet during their travel. They have the ultimate choice whether or not they want to reach out to the other person, and if they choose to proceed, an in-app messaging platform will give them that tool to do so.
How we built it
We built this native iOS app with Swift and Firebase, and a various number of APIs, such as Facebook's and Amadeus', that complement the core functionality of the app and aids in the process of improving security measures that combat fake account
Challenges we ran into
The HTTP response messages sent from APIs all have slightly different formats, so we cannot use one approach straight to parse the returned JSON object. After exploring around with Swift's native casting and data encapsulation features (which do not work well), we decide to use the Alamofire open source framework which offers more flexible casting over JSON data. We are trying to understand the Bluetooth LE model and think in this way in order to get the offline chatting feature to work: instead following the traditional two-way serial communication to do data transfer, BLE uses the publish-and-subscribe model which takes some time to get used to. There're little available high-level frameworks or code samples on BLE, so we start from Apple's conceptual documents and write code from scratch based on CoreBluetooth framework.
What's next for TripMatch
To continue to iterate on some of the features that we built into the app that could use some brushing up, and improve speed and reliability of the chat system. We are looking forward to continue using Amadeus' API, but allow for booking the best flight deals as well.