- Table of contents
- About
- Why Twitterify?
- Demonstration
- Project Architecture
- Tech Stack
- Implementation Details
- Steps to Download and Integrate
- Performance and Analysis
- Project Contributors
- Achievement
- Twitterify is a web application which provides quick accurate and valuable statistical insights on real time twitter data.
- The application consists of three modules that focusses on analyzing trending data, threads and user profiles respectively.
- The application aquires real time twitter data from the twitter API's. The data is processed and then analyzed before the insights are shown to the users
- Check out the website landing page for more information: https://ssrtdevs.github.io/Twitterify-landing-page/
- Twitter is a popular platform where millions of tweets are posted daily to share opinions. To comprehend user opinions or trending hashtags, users have to spend a significant amount of time reading tweets.
- The application aims to provide insightful information based on the sentiments and emotions expressed in trending Twitter data, including threads and hashtags. It can be useful for gaining a better understanding of people's opinions on current events.
- Summaries, category and sentiments of the top trends are shown
- Users can read a few tweets associated with a particular hashtag
- Search Anything feature enables users to know about any hashtag or trending topic in different geographic locations
- Displays the summary of a thread, sentiment, emtion expressed, thread lenght, replies to thread.
- Media carousel and links of the thread are provided in different sections
- Ther sentiments in the user tweets are noted and a statistical figure of the positive and negative tweets tweeted by the user is displayed
- User timeline is displayed
- Word cloud is generated to showcase the most frequently used words by the user
- React JS, Flask, Daisy UI, Hugging Face ML Models, Tweepy library
- The platform uses the BART model for Abstractive Text Summarization and BERT model for Sentiment Analysis from Hugging Face
- The Tweepy library was used to extract the required tweets using the Twitter API's.
- The application conisted of 2 servers catering to the frontend and backend of the application.
- The frontend server was made using React JS and made use of data processed by the Flask server at the backend.
- The flask server soley interacted with the Twitter API's to extract data and processed it based on the corresponding requests made by the React Server at the frontend.
Twitterify has achieved a perfect score of 100 in the Best Practices category of the Lighthouse report, indicating that the project conforms to recommended web development standards.
- 🎉 Secured runner-up position at the Project Expo organized by our college
- Prerequisite
- Nodejs >= 18
- Python >= 3.0
- Fork and Clone the repository on your local machine.
- The frontend and backend servers of the application run independently and need to be set up before starting them.
- Setting frontend
- To run the react server, simply navigate to the reactfrontend directory and run
npm install
. Once the installation completes you just neednpm start
. This would start the react server on port 3000 on the localhost. - The application then can be viewed on the browser on localhost:3000 and can be used by the users.
- Setting Backend
- Setting the Backend could be quite a hassle.
- To set up the flask server, open the terminal in the flaskBackend directory and run
pip install -r requirements.txt
. This would install all the necessary packages for the flask server.
- Setting the API keys
- You need to make
.env
inside flaskbackend dir and put the API keys in there. Get your API keys here.
api_key=**********
api_key_secret=***************
access_token=**********
access_token_secret=********
consumer_key=********
consumer_secret=**********
bearer_token=********
- Setting up models: (This will be time consuming 😢)
- Head over here to know about model setup
- To run the flask server, run
flask --app server run
subsequently on the terminal opened for the flask server. This would start the flask server on port 5000 on the localhost.