We wanted a simple way to visualize how people were talking about current events. Twitter and Facebook have trending topics, but nothing (at least easily accessible) to analyze how people actually are feeling about the topic. You could open the topic in your browser and read a subsample of the messages, or have a service scrape a hundred or more entries and do the analysis for you. We opted to create the service.

What it does

Social Tone is a simple search engine that runs your query against (soon to be multiple) web services, such as Twitter, and fetches a few hundred data points to be processed. We then leverage the power of IBM Watson's tone analysis service to analyze the emotional tone conveyed within the data, with the results of the analysis being visualized by a series of beautiful graphs. The site also logs the query and sentiment in a database, so if the word has been searched before it will show you a time-series analysis of the sentiment through all available queries.

How we built it

The backend is in Python 3, using Django as the server to ease database manipulation and queries, as well as allow various Python APIs, like tweepy as well as Yelp, Facebook, and more, although those services are not currently activated. The front end search utilizes React.js and Chart.js to neatly draw the data once it is available from the server. React.js's component state was perfect for this task, since as soon as the data is available it will render without needing any hacked together JavaScript to inject it.

Challenges we ran into

The first challenge was even coming up with something to do, as we showed up with no plans. It started with just setting up the AWS EC2 instance with nginx, gunicorn, and django, as that was all we knew we were going to be using. From there we started messing around with review aggregation, but found that a lot of services weren't very friendly to hook up to, outside of Twitter so we just went with that.

Accomplishments that we're proud of

Just finishing a project was an accomplishment for us, not to mention that it looks nice (for two non-designers). Also it was pretty cool to get SSL set up on the site using a free certificate from LetsEncrypt! Honestly, tying all of these different languages and frameworks together was pretty cool.

What we learned

print statements will break your production Django server

What's next for socialtone


Built With

Share this project: