We were inspired by (and also really miss) music festivals and events in general! Even if there are in-person events, most people don't feel comfortable going because of the pandemic. People are stuck not knowing whether or not to attend, because no one knows what's going on in the event or how safe it is before they get there. They want to get actual live attendee feedback about events, such as what's currently going on during a protest, if attendees are dissatisfied about something in particular, and most importantly, how COVID-safe it is.

What it does

Safetweet takes in user input of a specific event and fetches tweets associated with that event. It then analyzes the sentiment of tweets, with emotions ranging from anger to joy, and parses through COVID-related keywords to assess the COVID-safety of the event. We then visualize this information as diagrams that show the "mood" and "safety" of that event. Users are also able to search for events that may be of interest, as well as view events suggested for them based on location and popularity. They can take this information into account before heading on their way.

How we built it

We built the front-end using React.js and visualized maps and charts with the d3.js library. We used Python Flask to connect to the Twitter API using Tweepy and store the data into SQLite for the backend. We then run sentiment analysis on the tweet content using the Natural Language Processing Toolkit to get an overall "mood" score, as well as parse through the tweets for COVID-related keywords such as "crowded" and "pandemic," adding up the number of times these words appear and using that sum to assess COVID-safety. We also found tweets with the highest number of retweets, likes, and comments, and showed those as trending tweets for each event along with the rest of the data for users to see.

We made our designs on Figma and Adobe Photoshop CC.

Challenges we ran into

Getting the front-end to look very similar to the UI design was challenging as we did not have adequate time to fully flesh out the designs before starting the coding. We ran into issues connecting Python Flask to the React front-end, as well as problems with software installation and merging branches. We also wanted to implement more complex features but ran out of time. Communicating between all of us was difficult due to differences in time zones, so we used Zoom and work together when we were available. Overall, these challenges were a great learning experience, both in terms of remote collaboration and software development.

Accomplishments that we're proud of

We successfully connected the back-end to the front-end, so the sentiment analysis is legitimate when the user clicks on an event! It's very interesting seeing the overall mood and popular tweets for each event and we hope it helps users make a decision on whether or not to attend. We thought deeply into business considerations such as competitive analysis and the target user, which is very important in the making of a startup. Finally, we love our user interface, both in the front-end and design :).

What we learned

We didn't realize how many people tweeted angrily or negatively about an event, so it's super helpful to prepare for that situation. We also learned that there needs to be a lot of development prioritization with limited time so we needed to cut out minor features. Collaborating virtually, especially in a technical environment, was difficult, but we made sure to communicate as much as we could and give regular updates on our progress.

What's next for Safetweet

We want to conduct extensive user testing and our designs and gather user feedback before implementing the code into the front-end. We also want to flesh out the back-end more by improving our NLP model and safety analysis through examining word usage more closely in tweets. Ideally, once events are starting back up again and the COVID risk is dying down, Safetweet will be 100% ready for launch, letting people know if the in-person event they are about to attend would be a good experience!

Share this project: