I came to the realization that, while we now have thousands of "friends" online, and we are constantly in the loop of what everyone is doing via timelines and newsfeeds, there isn't yet an app whose aim is to improve the _ quality _ and not just quantity of friendships and interactions.
What it does
Socialytics takes any messages sent between you and your friends, analyzes the sentiment of them, and shows you a graph of how your friendship has changed over time.
How I built it
I first scraped Facebook Messenger for all of my chat data. After extracting the most relevant information, I pushed these messages to Microsoft's Azure Machine Learning to do sentiment analysis. With each message, its timestamp, and its sentiment, I was able to create a d3 graph that changes over time according to a slider that indicates specific dates.
Challenges I ran into
Facebook's API is heavily centered toward privacy, and as such, I found it very difficult to get even my own messaging data. I used a Python script to scrape all of my Facebook messages. Even then, the data wasn't very pretty. Some timestamps read "July 26th" while others read "July 27", for example. Some had spaces in places such as "5:27 PM", while others just showed "5:27PM".
Accomplishments that I'm proud of
I'm most proud of d3.js. It's a library I've heard and been curious about for a while, but it wasn't until now that I actually dived into it head first. I'm happy also to have had such helpful mentors at the hackathon who gave me a hand.
What I learned
It's interesting that whenever I feel like giving up on a bug or on learning a complicated library or some technical detail, and I persevere for just a bit longer, I usually find myself being able to push past that obstacle. Toward the end of the hackathon, d3.js was really giving me a hard time. I thought to myself I can just put the app down and submit it as is. After all, all the core features were already there. Consciously pushing forward, I managed to solve my issues with d3.js and now I feel I have a much better understanding of how to use the library.
What's next for Socialytics
There are so many more things that can be done to help others improve their most meaningful relationships. Social media, up until now, has been about saturation of people and information that isn't very helpful. The aim for Socialytics is to really dig into user's most important social relationships. Those 2, 5, or 10 friends that make all the difference in their lives. I have ideas for helping users meet with some important friends that they haven't talked to in a while. I can use Google Calendar to intelligently schedule lunches and meet ups between people. I can help users keep track of the things they talk about with their friends, so they won't forget when a big event is coming up. There is still so much potential to improve our social relationships with technology.