SentixAi is a modern, full-stack web application designed for film enthusiasts, analysts, and studios to track real-time audience sentiments. It ingests massive real-world movie review datasets and analyzes them using an embedded, local Artificial Intelligence NLP model.
| Login Screen | Signup & OTP Verification |
|---|---|
![]() |
![]() |
- Local AI Sentiment Analysis: Uses DistilBERT (
distilbert-base-uncased-finetuned-sst-2-english) via Hugging Face's Transformers.js. Runs entirely on your local machine (zero API costs, complete privacy). - Real IMDB Data Ingestion: Built-in pipeline to process and ingest a 50,000+ review IMDB dataset directly into the database.
- Social Movie Discovery: A Letterboxd-inspired UI where users can browse popular movies, read reviews, and see aggregate sentiment scores.
- Executive Analytics Dashboard: Visualizes sentiment distribution, total reviews processed, and AI-generated insights.
- Ultra-Secure Authentication: Combines Firebase Auth (Google & Email/Password) with a custom backend-driven 6-digit OTP email verification step (via
nodemailer). - Premium UI/UX: Designed with a dark cinematic theme using React, Tailwind CSS, and a centralized theming system.
- Framework: React 18 + Vite + TypeScript
- Styling: Tailwind CSS + Lucide Icons
- Auth State: Firebase Authentication SDK + React Context
- API Client: Custom
fetchWithAuthwrapper for secure backend communication
- Framework: Node.js + Express + TypeScript
- Database: SQLite (local
dev.db) - ORM: Prisma (Type-safe database queries and migrations)
- AI/ML Engine:
@xenova/transformers(DistilBERT loaded as a Singleton service) - Email/Auth:
nodemailerfor OTP, Firebase Admin SDK for JWT verification
The relational database is managed via Prisma and includes 8 core models:
- User: Managed alongside Firebase UIDs.
- Movie: Stores metadata and TMDB/IMDb identifiers.
- Review: Raw text and user ratings.
- SentimentAnalysis: 1-to-1 mapping with Reviews, stores AI confidence and Pos/Neg labels.
- OtpVerification: Temporary table for signup email verification.
- IngestionJob: Tracks background dataset processing progress.
- Node.js (v18 or higher)
- npm or yarn
git clone https://github.com/manishworkss/SentixAi.git
cd SentixAicd backend
npm install
# Setup Prisma and SQLite Database
npx prisma generate
npx prisma db push
# Start the development server
npm run devOpen a new terminal window:
cd frontend
npm install
# Start the Vite development server
npm run dev- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
- Prisma Studio (DB Viewer):
npx prisma studio(runs on 5555)
- Ingestion: The admin triggers an ingestion job. The backend reads the
IMDB Dataset.csv, cleans the HTML tags, maps them to movies, and saves raw reviews in the database. - Background Processing: A non-blocking Node.js service continuously polls the database for unanalyzed reviews.
- Inference: Reviews are fed into the DistilBERT model in batches of 50.
- Scoring: The model returns POSITIVE/NEGATIVE labels and a confidence score (0 to 1).
- Storage & Dashboard: Results are stored in the
SentimentAnalysistable and immediately reflected on the frontend Analytics Dashboard.




