Inspiration
We wanted to create a website that would show the issues that people care about most. We had hoped this could eventually be expanded into something that policymakers could use to help them understand what their constituents actually care about. The IssueMap that we built is a first step toward that.
What it does
Given a user-input keyword, IssueMap collects tweets relating to the keyword, analyzes them for good, bad, or neutral sentiment, and plots marker on a map. The markers correspond to where the tweet was sent, and are colored based on the sentiment (bad = red, good = green, neutral = yellow). Searching for a new keyword clears the current markers on the map.
How we built it
We built IssueMap using React and node.js, and using Google Maps API, Google Geocoding API, and a sentiment analyzer.
Challenges we ran into
One challenge we faced was that every time a marker was added to the map, the entire map re-rendered. This causes the map to rapidly flicker. Under the time limitations of the project, we were not able to fix this. If we had more time, we could restructure our code to have it use Promises instead of Callbacks in order to not have the entire map re-render each time a marker is added.
Accomplishments that we're proud of
IssueMap successfully collects tweets from Twitter, reads them, finds keywords, finds sentiments, and puts markers corresponding to them on a map. We are particularly proud of how we used the Google Maps API to determine latitude and longitude from address input (from Twitter).
What we learned
We gained experience in React and Node.js, as well as using the Google Maps API and Google Geocoding API to convert address inputs to latitude and longitude.
What's next for issue-map
We hope to add a translation feature so that the sentiment analysis can be applied to non-English tweets. In addition, changing the format from live collection of Tweets to being able to see the "issue map" for any time period would make IssueMap much more useful.
Log in or sign up for Devpost to join the conversation.