We were inspired to build the application after realizing the potential uses of IBM's Bluemix text-to-mood analysis in personal mood management. With social media playing such a pivotal role in so many peoples' lives, we saw the value in being able to filter the content an individual sees by its mood value. By allowing happier posts through, a person could consciously improve their emotional state.
What it does:
The Profiler scrapes either Twitter or a given subreddit for it's user submitted comments. It builds a mood profile by sending the text data to IBM's Bluemix and returns a mood score. The mood score is displayed for the Twitter and subreddit with an option to sort posts in said subreddit by a chosen emotion. The user also has the option to input their own text for analysis.
How we built it:
The entire back-end is built in node.js and utilizes API's from Reddit, Bluemix, and Twitter. This provides the raw data for our front-end web interface as well as our Android application. Both the node.js back-end and the js front-end are containerized with docker and hosted on cycle.io for efficiency.
Challenges we ran into:
One of earliest issues we ran into was with the usage of callbacks on the back-end. We ran into issues with asynchronicity that were ultimately solved by the utilization of promises in node.js. With our project nearing its completion we ran into a json parsing snafu on the front-end. This was ultimately resolved by some careful tweaking of the data being passed by the back-end.
Accomplishments that we're proud of:
One of our proudest accomplishments is that the Android app not only works in its own right, but that it requests and processes data from the back-end and provides it to the user in an aesthetically pleasing, easily interpreted manner.
What we learned:
Learning how promises work and when to use them in node.js was one of the outstanding skills learned during this project. It may have been one of the earliest snags we ran into but it proved to be one of the greatest revelations. Working with cycle.io as well as docker was a learning experience and taught us valuable server hosting skills. General familiarity increases across the board with IDE's, languages, and APIs were also a plus!
What's next for The Profiler:
The hope is to optimize the code in order to handle larger amounts of data and paint an even more accurate picture of the world's mood around us.