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.
- 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
| Snapshots |
|---|
![]() |
![]() |
![]() |
| 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 |
- Bun ≥ 1.0 or Node.js ≥ 18 with npm
- Git
# 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 devOpen http://localhost:5173 in your browser.
bun run build
bun run preview # preview the production build locally# Run all tests once
bun run test
# Run tests in watch mode
bun run test:watchTests are written with Vitest and React Testing Library and cover core sentiment logic and UI components.
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
- 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
- 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)
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feat/your-feature-name - Commit your changes:
git commit -m 'feat: add your feature' - Push to the branch:
git push origin feat/your-feature-name - Open a Pull Request
bun run lint # ESLint check

