MoodScoop is a sentiment analysis tool that tracks changing opinions of Twitter users around given topics in real time.
Perfect for me, anyway. The choice of final year projects in Computer Science is vast, but the choices made tend to be constrained to chess engines, some mid-level software engineering and maybe a game or two. I wanted to do something totally different.
I wanted to take my interests in UX design, communication platforms, and to an extent current affairs, and found that a data analysis tool that could be connected to social media would help me explore all of those areas.
Pressing forward with the little I already knew, I began building a tool that would connect to Twitter and search for a phrase given by the user, returning insights about the data it found.
In my surroundings, I saw plenty of students excited about building all kinds of complexity into their final year projects as a number one priority. While technical complexity is not so much a nice-to-have as something we were explicitly marked on, my aim was to make the project appear incredibly simple - even if it wasn't.
You see, that's the magic of technology to me. The ability to automate. The ability to do things at lightning speed with a computer because your time is better spent elsewhere.
I started with MoodScoop's logo: a deliberately iconic and incredibly simple collection of dots. Designed to imitate typing indicators, as well as implying progress and that there is more to come, the logo ties in with the tool's basis on language and conversation.
Final year projects have to be completed in a fixed time frame and with limited resources. Naturally, I wanted to spend my time working on the quality of my project's language processing and building an effective UI, not wasting time with tedious database and server setup.
For this reason, the project is based on Python and the Django web server, which provides a simple web setup with minimal configuration.
In order to limit the scope of the project and ensure timely delivery, the architecture was (loosely) specified ahead of time, as demonstrated in this graphic.
This screenshot shows an example of a results page on Moodscoop. While full lexical data and source tweets are shown in a data-intensive format lower down the page, the design aims to show primarily visual information above the fold.
Emojis - as an increasingly common decorator for text on social media - are given the top spot as a small selection of them can give the user a very good idea of sentiments expressed in the data found. As the saying goes, "A picture is worth a thousand words".
As the final deadline approached in May of 2018, it became clear that this project was an incredibly lucky choice (depending on how you look at it). Facebook's Cambridge Analytica scandal was just beginning to unravel in the final month, turning public conversation onto the use of personal data online and choosing how data is represented online more than ever before.
MoodScoop's own functionality has many parallels with the questions being asked of organisations like Facebook at the time, and questions about how to ensure fair and neutral representation of what people were saying, and much more, made for intriguing and complex decision making about how the project should work.
Given all of this, I'm planning to use the skills and experiences of this project to develop more tools that integrate with social media going forward, with an increased focus on giving users greater control over their digital footprints.