Human are addicted to knowing what's going on around them and the world, so we decided to create something to feed this desire through a new perspective.
What it does
Our web application takes in a user's text input, and uses it to query relevant tweets and/or the desired sub-reddits. It relays this information by analyzing sentiments. For tweets, volume and percentages of classification (positive, negative or neutral) are stacked as a bar graph for the past week. For reddit, the sub-reddit's sentiment distribution is displayed as a 3 column bar graph.
How we built it
We built this using flask and Node.js. The application processes user input with flask, then retrieves the tweets and reddit content using the APIs of Twitter and Reddit. The sentiments are analyzed using the same APIs. Twitter volumes are calculated for each day by looking for number of tweets that actually contain the key word in the search. It finally displays this data by making a stacked bar graph with date on the x axis, and volume on the y axis.
Challenges we ran into
We originally began with the idea of making an AR robot. This idea was to use a phones camera to point at a robot, and get the robot to follow a path drawn on the phone screen (which would have a camera preview). Once we realized ARCore and OpenCV (used to recognize the robot), couldn't be used simultaneously, we switched to a simpler method of moving the robot using just OpenCV. This concept was to have the robot constantly move towards the center of the screen (from the phones perspective of the robot on the ground), based solely on pixel locations. Feedback control would be given by error based on pixel differences. We eventually pivoted away from this approach as well because of a lot of trouble using Android Studio.
This is when we moved to our current project (on Saturday afternoon). Some of the challenges with this project included limits on tweet queries which inhibited our testing. We also struggled with writing to and loading the csv file that contained the data analysis dynamically. Our static files would be stored in the browser's cache and not be refreshed. We also had a lot of trouble with the csv file not being found by d3.
Accomplishments that we're proud of
Charles and his analytical prowess. We're happy having been able to quickly change direction and still put out a close to working product.
What we learned
We learned that it's ok to pivot and change direction. We also learned that it's good to fail quickly and learn.
What's next for Charles
Next steps would include more data to work with and more interactive graphs. We would also like to analyze data from longer periods in the past and detect patterns in sentiment data.