We believe that the things you say, the actions you take, and the pictures you share reveals your own unique traits. We were inspired by describing human behavior based on their online presence and actions, since we are in a world that is becoming ever-more digital. We want to use data in a way that people can both increase self-awareness and discover new relationships with people they may have never met before.
What it does
A user can login to the application through their Facebook account and the application will build a personality profile of them, based on their social media content. The user can look up whoever he or she wants by entering their Facebook or Twitter profile link in a textbox. The application will create a personality profile for that person and analyze it against the user's own profile. We look at each person's five personality traits such as openness, conscientiousness, extraversion, emotional range, and agreeableness. Finally, we display a graph comparing each person's compatibleness.
How we built it
We used Facebook's SDK for login and authentication, and Facebook's Graph api to query the user's posts. We used Beautifulsoup4 to collect a user's tweets. We used IBM Watson's Personality Insights api to analyze a user's big 5 personality traits. To put it all together, we hosted the database on Amazon AWS Aurora and implemented our restful api with a flask server. Lastly, we used react to retrieve all the data and display a simple, well-designed, intuitive web application.
Challenges we ran into
We were unable to connect our Amazon AWS Aurora database to Amplify like we were expecting so we had to host our own flask server. We also faced many issues querying the IBM Watson Personality Insights api due to cross-origin resource sharing and IBM's faulty services. We had to devise scrappy ways to retrieve social media data. We were very limited on testing with real users and were restricted to only test with our own accounts due to Facebook's app review policy.
Accomplishments that we're proud of
We're very proud of connecting multiple different complex technologies together. We are also very proud of putting everything together in a user interface that we felt was very intuitive and had a very aesthetic design. We decided to tackle complicated challenges to get a amazing results rather than taking shortcuts with easier technologies and quick solutions.
What we learned
We learned many new technologies beyond our comfort zone. We gained new knowledge in how to build a feasible, useable, and scalable web application. We also learned a lot about the importance of privacy of user data.
What's next for Matches
In the future, we would like to get the web application reviewed with App Review by Facebook so we could get real user data to develop the application. We would also like to build this feature into a Chrome extension, giving more hands off and intuitive functionality. We would like to host it on GCP, allowing all people to use it. From the IBM Watson's api, we have much more derived data that we did not use but would like to leverage, adding many more great features for users to easily connect with others.