ABINAVRAJ GANESH SUDHAKAR

About

My Work

LinkedIn

Blast

Inspiration

Do you remember George Floyd's death? Do you remember how responsive the nation was with #BlackLivesMatter on social media?

There you go... one of the largest ways to make an impact in this modern world: social media. Social media is extremely powerful in spreading messages about social justice around the world. But how could we take this service to the next level?

Think about it. Imagine a more politically active populous. Imagine a world full of much more passionate and responsive people, cognizant of themselves and the people around them.

We live in a turbulent world, and it's more important than ever before that we make our voices heard to the entire globe.

Social media is evolving, and more people are using their social media platforms platforms to spread news and calls to action. Writing posts and switching between platforms can be cumbersome. Additionally, not all social media websites provide efficient, organized, and comprehensive feedback on the reach of your posts.

Help us promote social justice by helping creators and influencers spread their voices.

Wait... no... help us blast their voices!

What it does

Blast offers a unified interface for making synchronous posts to multiple social media websites. Blast logs in on your behalf and submits your content across all your platforms in seconds.

On a separate tab, Blast keeps a record of all of your posts. You can browse through and find core analytics about the audience and popularity your posts have reached.

Why do we want analytics?

Think about this. You want to make a post about the recent income inequality gap that you want to reduce. But how do you know who is and isn't taking action. How do you know which friends responded and which friends did not? How do you know if you could've blasted better?

Exactly, we use analytics to make your blast much more impactful.

Blast supports Reddit, Twitter, and LinkedIn currently.

How we built it

)

The Frontend

The frontend was entirely built with html, css, and javascript. We created live animations purely with css. We also incorporated a library, chart.js for displaying our analytics. We developed all our pages to be static. The frontend communicates with both Firebase and the Flask API. The frontend updates dynamically to changes requested in the backend. The front end is also made to be mobile responsive with the use of media queries.

The Backend

The backend was constructed with a combination of Firebase and Python. For the Firebase, we conduct authentication for users. We also use it as our database for the users and their specific credentials and data. Firebase firestore is a No-SQL database which we used to save unstructured data. We also use Flask as part of our backend api. The reasons we have this Flask API is because we want to get live data from different user posts. We do this with Selenium, a python library. Python was our choice for webscraping tweets and posts. This was mainly because of libraries such as Beautiful-Soup. This was also the language of commonality in our team which made this an effective choice.

Challenges we ran into

We had to get resourceful in establishing data communication with Facebook and Instagram. Literally, Instagram wanted images, but Selenium was mainly text-based. Uploading from a file system with selenium is a yucky mess. We hope to incorporate this in the future to allow for Instagram integration.

We had some trouble getting into Facebook with our data extractors! Facebook kept shutting down our test accounts. We tried to make alternate accounts, but somehow, Facebook kept tracking us. How do they have all this data? The world will never know...

Twitter has a very long documentation. Who wants to read long confusing documentation? Just get straight to the point. Give us what we want so we can get our project done. Twitter, why?

Finally, ChromeDriver takes longer than we'd hope to handle data requests.

Accomplishments that we're proud of

We are proud of being able to incorporate three different platforms within our project: Twitter, Reddit, and LinkedIn within our given timeframe. We were originally planning on sticking with only one platform, but due to our high efficiency of teamwork and constant communication, we were able to get a huge amount of work done.

We are also proud of the user interface that we have created. The color scheme to the animations to the charts.... everything was phenomenally designed. In fact, the animations created more interactivity to the page. We also made sure the pages were mobile-responsive which indicates that the website could be used on both a phone, tablets, or even a laptop. We are proud that we were able to get a materialistic design that would help users easily adjust to the platform.

What we learned

We gained in experience using social media APIs as well as selenium and data scraping. We increased our skills with JavaScript, website creation, Python, and HTML. We gained experience working with large codebases and unfamiliar libraries.

What's next for blast

We would like to expand the analytics we provide to users and expand on the currently supported social media platforms, including Facebook and Instagram. We would also like to increase the speed and efficiency of our website.

We would also like to add categories of social justice events/actions, such as #BlackLivesMatter or LGBTQ rights, so there could be more awareness toward these movements.

Finally, we would also like to add the functionality of sending images/fliers across for Instagram. Infographics are very powerful in the case of spreading messages.

How to run the project

Note: project is not hosted anywhere, so local setup is required.

Step 1: Download the latest version of ChromeDriver corresponding to your installed version of Google Chrome.

Step 2: Update python directories for PATH variable for Chrome Driver. Modify:

linkedin_post.py; login_post_reddit.py; post_reddit.py; reddit_post_data.py; reddit_post_link.py; twitter_api.py; twitter_post.py; twitter_post_data.py;

Step 3: Run: python server.py to start the API.

Step 4: Open index.html.

Step 5: Create new user!

Step 6: Log into social media networks inside blast.

STEP 7: BLAST YOUR VOICE!

e used React.js for the front end, and Node.js, Express.js, and MongoDB for the back end.