Our inspiration primarily came from Google's Natural Language API, which is designed to analyze and interpret the context of text. The first idea we came up with was to run sentiment analysis on tweets pertaining to cryptocurrencies, but after we started we didn't feel the need to limit ourselves to just crypto. The result was a webpage that can take any phrase, pull related tweets using tweepy, and return an average of computed sentiments on each tweet.
What it does
Ultimately, by searching for a keyword or phrase, our application is able to pull related tweets from Twitter and then perform sentiment analysis through Google Cloud's Natural Language API. By doing so, GCP and NLP judge the tweets anywhere from a scale of -1 to 1, where anything below -0.25 represents a negative sentiment and anything above 0.25 a positive sentiment.
How we built it
We built our All the Feels with the idea of having Flask as a backend, Angular on the front end, and both deployed and working in tandem through Google's App Engine. Fortunately, we were able to build it without straying from this stack. We used Github for version control, which made deploying to App Engine easier, and also reduced the pain of merging code. Furthermore, Google's Cloud Platform provided many of the useful tools needed to accomplish our task. All of the language processing is done through this platform, and all of the comments are grabbed through a wrapper on Twitter's API, called Tweepy.
Challenges we ran into
Angular doesn't have a standard deployment method, and we wanted to host on google cloud as well, so there was a lot we had to figure out in that regard. We also ran into Cross Origin Requests (CORS) errors, so we used different methods either running a local back-end or using a chrome allow CORS extension to connect to a remote back-end. Front-end wise, learning how to arrange elements within angular with flex-layout was a pain, but once it got working it wasn't as bad.
Accomplishments that we're proud of
Not drop kicking our laptops. In all seriousness, we are proud that we have something to present that reflects the hard work we put in in the past 36 hours. Deploying through Google App Engine, using Google's natural language processing, and integrating Twitter's API were huge milestones in this short sprint. Despite the many challenges, we fought through them as a team and we had a great time. Feel free to check out the fruits of our labor, hosted on allthefeels.tech. Let us know what you think!
What we learned
Ultimately, we learned how to work efficiently as a team because of the the tight time schedule. But specifically, we learned a lot about how to use Flask, Angular, and the Google Cloud Platform. Each entails their respective struggles, such as deploying to App Engine for GCP, or making a nice looking UI within Angular.
What's next for All the Feels
We have a couple of ideas in store for All the Feels. In its current state, All the Feels demonstrates the power of utilizing the Google Cloud Platform to perform language analysis, and there's no better place to grab language in its rawest form than from one of the world's leading social media mediums: Twitter. By having a sentiment on a tweet determined by Google's machine learning algorithms built within the Natural Language API, we can get an idea of how someone feels (to the best of a computer's abilities). One idea we've had is to find a correlation between average sentiment gathered from a large-scale twitter crawl on a cryptocurrency, and the subsequent fall/rise/stagnation of said cryptocurrency's price history. This can then (hopefully) be used as a variable for price predictions. Another more simple inspired idea is to write a twitter bot that digs for negative sentiment comments that contain certain dangerous keywords and phrases, for instance, "kill myself" or "suicide" . Once these dangerous keywords/phrases are found, we can make an automated response containing helpful advice and links to things such as the Suicide Hotline. Overall, the idea is that this can be expanded to many different realms of data gathering and automated responses within twitter. And wherever there is a social media platform with an API, we can extend to as well.