Eta OTT is a revolutionary AI-driven educational platform that transforms static learning material into interactive, intelligent experiences. By integrating advanced machine learning with a seamless OTT (Over-The-Top) streaming interface, Eta provides students with personalized knowledge graphs, AI-powered tutoring, and real-time conceptual analysis.
- π§ Intelligent AI Tutor: Context-aware AI that answers student queries based specifically on the uploaded course material (PDFs/Videos).
- πΈοΈ Knowledge Graph Visualization: Automatically maps relationships between concepts using Neo4j and D3.js, providing a topological view of learning paths.
- π₯ Multi-Source Extraction: Seamlessly extract knowledge from Video files, YouTube links, and PDFs using a dedicated Python ML service.
- β‘ Real-time Interaction: Live synchronization and doubt solving powered by Socket.io.
- π± Cross-Platform Accessibility: Fully responsive Web application and native Mobile experience (Beta).
- π Semantic Search: Vector-based search utilizing Qdrant for extremely accurate information retrieval.
graph TD
User((Student / Admin))
subgraph Frontend
Web[React + Vite Web App]
Mobile[React Native Mobile App]
end
subgraph "Core Backend (Node.js)"
API[Express API Gateway]
Socket[Socket.io Real-time]
end
subgraph "ML Service (Python)"
FastAPI[FastAPI Extraction Engine]
PDF[PDF Extractor]
Video[Video/Audio Transcriber]
end
subgraph Persistence
Mongo[(MongoDB: MetaData)]
Neo[(Neo4j: Knowledge Graph)]
Qdrant[(Qdrant: Vector Store)]
Redis[(Redis: Caching)]
end
User <--> Web
User <--> Mobile
Web & Mobile <--> API
API <--> Socket
API <--> FastAPI
API <--> Persistence
FastAPI <--> Qdrant
sequenceDiagram
participant U as User
participant B as Backend
participant ML as ML Service
participant V as Vector DB
participant G as Knowledge Graph
U->>B: Uploads Content (Video/PDF)
B->>ML: Send for Processing
ML->>ML: Transcript/Text Extraction
ML->>V: Store Embeddings
B->>G: Generate Conceptual Nodes
B->>U: Content Ready for Learning
- React 19 with Vite for lightning-fast builds.
- Tailwind CSS & Framer Motion for premium aesthetics and micro-animations.
- Zustand for lightweight state management.
- D3.js & React-Force-Graph for complex data visualizations.
- Node.js & Express (ESM) for the core API.
- Socket.io for real-time bidirectional communication.
- Firebase Admin for robust authentication.
- Cloudinary for scalable media storage and CDN.
- AWS Polly for high-quality Text-to-Speech integration.
- Python / FastAPI for high-performance extraction endpoints.
- MongoDB (Primary metadata store).
- Neo4j (Graph database for ontological relationships).
- Redis (Session and high-speed cache).
- Qdrant (Vector database for AI long-term memory).
erDiagram
INSTITUTION ||--o{ BRANCH : "major"
BRANCH ||--o{ COURSE : "offers"
COURSE ||--o{ CONTENT : "contains"
USER ||--o{ INSTITUTION : "belongs_to"
USER ||--o{ DOUBT : "raises"
CONTENT ||--o{ DOUBT : "has"
USER ||--o{ BRANCH : "enrolled_in"
USER {
string firebaseUid
string email
string role "admin | faculty | student"
int confidenceScore
}
CONTENT {
string title
string type "pdf | video | youtube"
string url
json metadata "extracted by ML service"
}
| Role | Permissions |
|---|---|
| Admin | Manage Institutions, Branches, and Faculty. View site-wide analytics. |
| Faculty | Create Courses, Upload Content, Manage Students, and Reply to Doubts. |
| Student | Browse Courses, Watch Videos, View Knowledge Graphs, and Ask AI Tutor. |
π Eta OTT
βββ π backend # Node.js Express server with Mongoose & Neo4j
βββ π eta-web # Student & Faculty Portal (React + Tailwind)
βββ π eta-mobile # Cross-platform Mobile App (Expo)
βββ π ml-service # Python FastAPI for Video/PDF Processing
βββ π docs # Documentation & Implementation Logs
- Node.js: v18 or late
- Python: v3.9+ (with
pipandvenv) - Databases:
cd ml-service
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
pip install -r requirements.txt
python main.pycd backend
npm install
# Create a .env file based on .env.example
npm run devcd eta-web
npm install
npm run devEnsure your .env files contain the following keys:
Backend:
MONGODB_URI,REDIS_URL,NEO4J_URI,NEO4J_USER,NEO4J_PASSWORDQDRANT_URL,QDRANT_API_KEYCLOUDINARY_CLOUD_NAME,CLOUDINARY_API_KEY,CLOUDINARY_API_SECRETFIREBASE_PROJECT_ID,FIREBASE_CLIENT_EMAIL,FIREBASE_PRIVATE_KEYGROQ_API_KEY(For AI LLM)AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY(For Polly TTS)
- Ingestion: A PDF or Video is uploaded to Cloudinary.
- Extraction: The
backendcalls theml-serviceto process the asset. - NLP Processing:
ml-serviceuses OCR (for PDFs) or Whispering (for Videos) to extract text. - Vectorization: Extracted text is chunked and stored in Qdrant with high-dimensional embeddings.
- Graph Logic: Named entities from the text are used to create or update relationships in Neo4j.
- Query Phase: When a student asks a doubt, the backend retrieves relevant context from Qdrant and Neo4j, then feeds it to the Groq Llama-3 model to generate a precise answer.
Eta OTT is built with a focus on Visual Learning.
- Glassmorphic UI: Transparent, layered components for a modern feel.
- Micro-interactions: Hover effects and transitions powered by
framer-motion. - Responsive Layouts: Seamless transition between Desktop and Mobile views.
- Live Collaboration: Shared whiteboards for faculty and students.
- Gamification: Badges and progression levels based on confidence scores.
- Offline Mode: Download content for offline viewing on the mobile app.
- Multi-language Support: AI translation for transcripts and documents.
This project is licensed under the ISC License.
Developed for the future of education. π