Viewing a user's profile
Distribution of type of match
Opening a profile from app
There’s a great deal of dating apps out there. However, estimating the user’s personality usually involves apps irking users by asking lots of questions. The compatibility of a match depends on factors other than looks as well; it depends on common interests, emotional compatibility and a lot more. Our posts on OSM often reflect a lot about our personality.This fact, along with IBM Watson’s easy-to-use APIs, motivated us to build a dating app that uses personalities to recommend matches.
What it does
The app uses the user’s tweets (from Twitter) to estimate their personality. We used IBM Watson’s ‘Personality Insights’, ‘Concept Insights’, ‘Tone analyzer’ and ‘Alchemy’s Sentiment Score’. These APIs help us estimate the user’s personalities, interests and their mood (from recent tweets). We then recommend matches to the user (based on matched personalities and interests).
How we built it
The back-end has been built in nodeJS. We explored IBM Watson’s APIs and picked the ones that suited us. The UI has been built using Corona. The front-end uses REST API to communicate with the back-end server, which recommends matches to a user based on results from the APIs. The back-end server has been deployed using IBM's Cloud Foundry.
Challenges we ran into
Using Watson was effortless, thanks to an easy API and abundantly available documentation. The only problem we faced was with limiting our API calls while testing the app (as there is an upper cap for Twitter’s authentication API for the same user).
Accomplishments that we're proud of
Using a combination of four APIs to make a user’s profile (the ‘Tone analyzer’ API was added at the last minute, as it was made available only a day before the hackathon’s submission deadline).
What we learned
- Using Watson APIs
- Using Corona
- Creative ways to match personalities
What's next for ‘Plum’
We plan to build on this app in the future, adding Facebook login to analyze Facebook posts ( in addition to tweets).