AishikNagar / PosiTweety

PosiTweety is the one-stop solution to anything and everything related to "Social Good". It provides the perfect platform to explore, learn and contribute to making the world a better place.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PosiTweety

Demo

Check out the following links to access our devpost submission and the project demo:

Inspiration

Hiya PosiTweeps! We would like our app, PosiTweety to take part in the “Hack for Good” category and here is our inspiration as to why.

In our quest to do something socially useful, we found it unusually difficult to find relevant topics and were limited by our knowledge about current events. This was further reinforced by the fact that “hot” topics such as entertainment, sports and politics often dwarf other “Socially impactful” ones.

Thus, we decided to make a one-stop solution that will help spread awareness and knowledge about various global issues. We realised that if the people as a whole work towards making a change, anything is possible. For that to happen, people need to be aware of the latest trends and topics in “Social Good” before they can contribute to it. We thought the best way for us to do social good is to provide a platform which generates awareness and empowers others to do the same.

There was nothing better than Twitter, one of the world's leading social media platforms to spread awareness and analyse socially relevant topics. We aimed to create our hack keeping in mind Twitter’s principles of #fast, #fun, #impactful and #straightforward.

Thus came our inspiration for PosiTweety, a software which lets users explore, learn and contribute to making the world a better place.

What it does

  • PosiTweety provides mesmerizing visuals, 3D networks, interactive dashboards and dynamic analytics to spread awareness and learn more about different topics. It uses issues [laid out by the UN] (https://www.un.org/en/sections/issues-depth/global-issues-overview/) to scrape data from the internet for over 20 of the most impactful categories in the society today.

  • Using these categories, it scrapes the internet to find the most relevant hashtags for each category and group them together. It also generates analytical data like the number of hits per hashtag and the distribution of usage for the top hashtags in the category.

  • PosiTweety makes it fun to learn and explore about socially relevant topics. It does this by generating a #Map : A beautiful, dynamic and interactive 3D network of the Hashtags and color coded based on the category to which they belong!

  • Users can also search for a topic of their choice using the search bar or explore a certain category using the legend. On selecting one of the displayed categories, the user is redirected to a dashboard for that specific “Category”. This is full of useful features such as:

  • Visual #Board: Using the data PosiTweety scrapes from the net, powerful and informative visualizations are rendered for the user, such as:

    • Hashtag Use by Percentage : This includes an interactive 3D pie chart of the top hashtags for that specific category, representing their percentage use out of the total in that category.
    • Most relevant tags : An interactive bar chart representing the number of hits which each hashtag gets in that category. This not only lets the user understand the overall scale of each topic, but also lets them decide which tags will help them reach out to a larger audience and have a greater impact.
    • Recommended #Tags : PosiTweety lists out the top hashtags for each category so that the user can explore and learn more in an organized manner. The user can click on any of the listed hashtags to go to the custom #Board for that tag. The features of which will be explained in the following section.
    • Other topics: In order to keep the user engaged, we also generate a dynamic list of other topics the user might want to look into, with each entry linking to its custom #Board.
  • If the user searches for a topic or clicks on a topic from the #Map, they are redirected to the other standout feature of Positweety: the #Board. The #Board is a custom dashboard to learn more about the category which the user has selected. It has a lot of fun features as given below:

    • Tweets: PosiTweety used Twitter API to gather and display tweets relevant to the hashtag which the user has selected. This lets the user understand what others think about the given topic.
    • About: PosiTweety scrapes the internet to generate descriptions for each topic, so that the user can learn more about it. This generates awareness among users for each topic.
    • Media: In this section, the user is shown a gallery of all relevant media on twitter for the topic which they have selected. This engages the user and helps them make a visual picture of the particular topic.
    • News: This section provides the user with relevant news regarding the topic in question, helping them form a well rounded opinion of the topic without any bias. We believe this is important for users to have a positive impact on society. The user can choose to go to the original source for any news article from the dashboard for more info.
    • Resources: This uses Twitter's awesome API to find useful resources which the user can look into. This includes external or internal URL links, links to places where the user can contribute for a cause or any other relevant topic!

How we built it

We used the following technologies to build PosiTweety:

  • Python
  • Javascript
  • React
  • Node.js
  • Flask
  • 2 sleepless nights XD

PosiTweety has a Flask backend, which interacts with the twitter API and runs our algorithms for collecting news, scraping, preparing and processing data and doing all the heavy-work behind the scenes. All the libraries we used for our backend are stored in the requirements.txt file.

The frontend for PosiTweety was built on React, allowing for rapid development and scaling for our hack. This allowed to create beautiful animations like the #Map, powerful visualizations like those on the Category Dashboard and make an overall engaging frontend.

Installation and running

Its super simple to install and run the project.

Clone the repository, cd into the project and run the following commands:

  • pip install -r requirements.txt
  • cd frontend
  • npm i

This should install all the dependencies required for the project.

In order to run the project, cd into PosiTweety and run the foloowing commands:

  • flask run
  • npm start

You should now be able to access PosiTweety on your localhost.

Challenges we ran into

One of our biggest challenges was definitely time management. Right from ideation to implementation, we had to ensure we paced ourselves and executed what we had in mind. Since we were only a team of 2 members, we had to put in extra effort to bring our idea to life and achieve our goal of building a production ready hack. In order to do this, we made sure to follow good coding practices, optimize our algorithms and follow proper devOps procedures as much as possible.

We had both used react and flask before, but we had never integrated them together in an app. We had to ensure our full stack hack was functioning properly and giving the desired results. React being a primarily tool for building single page websites, we had to optimize and use it efficiently for our multi page frontend, all the while ensuring the workflow was in sync with our flask backend.

Another major challenge for us was to make our hack engaging. Since we wanted our users to learn and explore on PosiTweety, it was of utmost importance that they enjoyed their time using it. In order to accomplish this, we surveyed our fellow students and welcomed insights and criticisms as to what could make PosiTweety more engaging and informative. We implemented cool animations, visualizations and tried to use the data at hand as effectively as possible to bring our ideas to life.

Accomplishments that we are proud of

One of our major accomplishments was building a comprehensive, well-rounded hack in such a short time with just 2 members. Both of us worked very hard and spent hours on end developing the hack as best as we could. This is also the first time we explored the features of react to such an extent. We spent a large amount of time researching, wacking our brains to build algorithms for our hack and making awesome features like the #Map. We never once thought of giving up and we really wanted to achieve something impactful through our hack. That is what the both of us value the most in our experience during this hackathon.

What we learned

At the beginning of our hackathon, we couldn’t even fathom how much we would and up learning. While building and exploring our hack, we actually ended up learning about a lot of topics and issues we didn’t even know existed!!

We learnt how to come up with impactful ideas, translate them to reality and discovered a lot of features about the tech we used which we otherwise would not have come across. We also built a lot of patience and aptitude during these 3 days. This was the first complex project we did under such a steep deadline and we are really proud of how it turned out.

Honestly, the best thing we learnt was that the world has a lot of problems, but more importantly, it also has people who want to do good and make a difference. The best decision we could have made was to attempt the “Social Good” category,try and understand the scale and scope of problems the world is facing today and play a small part in solving those issues!

What's next for PosiTweety

We have come up with a few features we want to work on going forward, in order to make positweety better and even more helpful. These include:

  • Scaling out to languages other than english.
  • Build knowledge graphs on our 3d network instead of grouping relevant topics, in order to relay even more powerful visual information.
  • With enough geocoded data, we can make interactive world maps to show which topics are relevant in which regions. And give insights based on geopolitical data.
  • Using NLP and twitter API features to let the user filter content based on sentiment, region, time etc in the frontend itself.

About

PosiTweety is the one-stop solution to anything and everything related to "Social Good". It provides the perfect platform to explore, learn and contribute to making the world a better place.


Languages

Language:JavaScript 90.5%Language:Python 4.4%Language:CSS 3.8%Language:HTML 1.2%