What it does
Finding a gift for someone can sometimes be hard, and people just end up getting a generic gift card or just give money. With our app, Watson will study a person through their social media with it's personality insights and suggest a gift for you to get them.
How we built it
We began by training Watson's Conversation service to build a simple and easy-to-use UI. Next, we created our app in Xcode with Objective C based off the IBM open source chat app and used JSQMessages for the chat interaction and UI. In order to fully utilize the APIs, we built on the WatsonBridge from Switft to Objective C, allowing us to integrate the Twitter API via Social Framework to fetch tweets, which we fed into the Personality Insights API. Once Watson's Personality Insights received the tweets, it returned a stream of JSON which we interpreted in order to draw out select consumption preferences. We linked these consumption preferences with products that would be used by someone with that personality portrait (e.g. A person who is likely to read often & likely to start a business in the next few years will be recommended an Entrepreneurship book).
Challenges we ran into
Our original plan was to primarily use Facebook as the dominant social media which Watson would analyze through Personality Insights. However, due to recent API privacy restrictions, we were unable to get Facebook friends' data from Graph API. Also, Watson Cloud SDK is not directly available for Objective-C, so we had to build a bridge from Swift to Objective-C. The Twitter API kept throwing error code 500 for simple GET requests in PHP script (even though our tokens were all valid!). Despite these challenges, we persevered!
Accomplishments that we're proud of
Having never used Watson's APIs before, we were very proud of our ability to train Watson's Conversation service and use Watson's Personality Insights service within our app. The seamless integration of the Twitter API to fetch tweets and feed them to Watson was also an entirely new challenge but we were able to complete the task. Connecting Watson's Swift SDK to Objective-C was another big challenge and successfully completing it was a huge accomplishment as well.
What we learned
We learned to incorporate Watson's conversation and personality insights services, and using Twitter API to feed tweets into Watson for analysis.
What's next for Watchu-Wantson
Analyzing likes and interests from Instagram and Facebook to give better and more personalized results.