Skip to content
Project: React Web Application built in Fall 2018. Allows users to create an account, add any hashtag and duration, monitor the sentiment over time and display trends on a visually appealing dashboard! Driven by data from the Twitter API, and powered by Google Cloud Platform.
JavaScript HTML CSS
Branch: master
Clone or download
anthonyanader Merge pull request #21 from anthonyanader/refactoring
Add necessary constructors to certain classes. Minor refactors.
Latest commit eae40fa Oct 17, 2019


Social Media Monitoring via Sentiment Analysis

💾 - Installing Dependencies

# clone this repository
    git clone

# cd into the project directory
    cd kaliVisuals

# install frontend dependencies
    cd frontend
    npm install

# install functions dependencies
    cd functions
    npm install

# install backend dependencies (optional)
    cd functions
    npm install

🔧 - API Keys

# go to the functions directory
    cd functions

# create new file
    touch twitterApiKeys.js

# update the following after obtaining your keys

    module.exports = {
        consumer_key: 'YOUR_CONSUMER_KEY',
        consumer_secret: 'YOUR_CONSUMER_SECRET',
        access_token_secret: 'YOUR_TOKEN_SECRET',
        timeout_ms: 60*1000,

👾 - Technologies

  • React - The entire client side is built using React and styled using Semantic-UI-React

  • Firebase - Firebase Auth, Firebase Realtime Database and Cloud Functions are powering the entire backend of this web application

  • Sentiment - AFINN-based sentiment analysis for Node.js

  • Twitter-API - Parsing hundreds of tweets/call/day and aggregating sentiment score. Working in conjunction with cloud functions running Node, to parse tweets and calculate sentiment

  • Cron-Job - Daily scheduled execution of fetching and analyzing sentiment data before displaying the data on the dashboard. looking to move the scheduling of tasks to google compute engine

🐜 - Known Bugs

  • Warning -- upon user deletion of a monitored hashtag, a warning is emitted due to chart unmounting incorrectly. Most probably have to do with the DB listeners still attached to chart after deletion

  • When creating a new user, the avatar image doesn't always load; it requires a refresh of the page.

🔗 - Coming Features

  • Change user avatar
  • More API sources
  • Search Functionality
You can’t perform that action at this time.