Skip to content

LithkeshBalajiB/Sentiment-Analysis-System

Repository files navigation

🧠 Sentiment Analysis System

An AI-powered sentiment analysis platform that classifies text as Positive, Negative, or Neutral in real time — built with React, TypeScript, and a modern component-driven UI.

TypeScript React Vite Tailwind CSS Vitest


✨ Features

  • Real-time sentiment classification — Classifies any text input as Positive, Negative, or Neutral instantly
  • NLP-based text processing — Natural Language Processing pipeline for accurate sentiment detection
  • Interactive analysis page — Dedicated results view with detailed sentiment breakdown
  • Data visualization — Sentiment scores and trends rendered with Recharts
  • Dark mode support — Full light/dark theme toggle via next-themes
  • Form validation — Input handling with React Hook Form and Zod schema validation
  • Toast notifications — Real-time feedback using Sonner
  • Test coverage — Unit and integration tests with Vitest and React Testing Library
  • Responsive design — Fully optimised for desktop, tablet, and mobile

🖥️ Screenshots

Snapshots
Screenshot 2026-05-20 160833
Screenshot 2026-05-20 160908
Screenshot 2026-05-20 162728

🛠️ Tech Stack

Category Technology
UI Framework React 18
Language TypeScript 5.8
Build Tool Vite 5 with SWC
Styling Tailwind CSS 3
Component Library shadcn/ui (Radix UI primitives)
Routing React Router DOM v6
Data Fetching TanStack Query
Charts Recharts
Forms React Hook Form + Zod
Theming next-themes
Notifications Sonner
Testing Vitest + React Testing Library
Package Manager Bun

🚀 Getting Started

Prerequisites

  • Bun ≥ 1.0 or Node.js ≥ 18 with npm
  • Git

Installation

# 1. Clone the repository
git clone https://github.com/LithkeshBalajiB/Sentiment-Analysis-System.git
cd Sentiment-Analysis-System

# 2. Install dependencies
bun install
# or: npm install

# 3. Start the development server
bun run dev
# or: npm run dev

Open http://localhost:5173 in your browser.

Build for Production

bun run build
bun run preview     # preview the production build locally

🧪 Running Tests

# Run all tests once
bun run test

# Run tests in watch mode
bun run test:watch

Tests are written with Vitest and React Testing Library and cover core sentiment logic and UI components.


📂 Project Structure

Sentiment-Analysis-System/
├── public/                  # Static assets and screenshots
├── src/
│   ├── components/          # Reusable UI components (shadcn/ui + custom)
│   ├── pages/               # Application pages (Home, Analysis)
│   ├── hooks/               # Custom React hooks
│   ├── lib/                 # Sentiment analysis logic and utilities
│   └── styles/              # Global CSS and Tailwind configuration
├── vitest.config.ts         # Vitest test configuration
├── vite.config.ts           # Vite build configuration
├── tailwind.config.ts       # Tailwind CSS configuration
└── package.json             # Dependencies and scripts

💡 Use Cases

  • Social media monitoring — Analyse tweets, comments, and posts for public sentiment
  • Customer feedback — Classify product reviews and support tickets automatically
  • Brand monitoring — Track how users feel about a brand over time
  • Opinion mining — Extract sentiment signals from large volumes of free text
  • Research & education — Explore NLP concepts with an interactive interface

🔮 Future Enhancements

  • Advanced deep learning model integration (BERT / transformer-based)
  • Multi-language sentiment support
  • Batch text processing via CSV upload
  • Sentiment trend dashboard with historical analytics
  • REST API backend for external integrations
  • Cloud deployment (Vercel / Cloudflare Pages)

🤝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feat/your-feature-name
  3. Commit your changes: git commit -m 'feat: add your feature'
  4. Push to the branch: git push origin feat/your-feature-name
  5. Open a Pull Request

Code Style

bun run lint       # ESLint check

About

Real-time AI-powered sentiment analysis — classify text as Positive, Negative, or Neutral using NLP, built with React 18, TypeScript, and shadcn/ui.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages