π POC COMPLETE & WORKING! Enterprise-grade offline-first educational platform with multilingual voice interaction, accessibility features, and hybrid sync with government knowledge bases.
GitHub: https://github.com/VIKAS9793/EduVault
Live Demo: http://localhost:3000 (when running locally)
# Clone and setup
git clone https://github.com/VIKAS9793/EduVault.git
cd EduVault
npm install
# Start development server (Vite - lightning fast! β‘)
npm start
# Access at http://localhost:3000
# Hot Module Replacement: ~200ms (instant feedback)react-scripts to Vite for 10x faster builds and modern ESM tooling.
Complete documentation is available in the docs/ folder:
- π Project Overview - Complete project vision and technical details
- π Setup & Deployment - Installation and deployment guide
- π₯ User Manual - Complete user guide
- π§ͺ Testing Guide - Testing procedures
- β FAQ - Frequently asked questions
- π PM Documentation - Product management case studies
- Full PWA Application with offline capability
- Multilingual Support (English β Hindi)
- Voice Interaction (Speech Recognition + Text-to-Speech)
- Interactive Quizzes with instant feedback
- Accessibility Features (WCAG 2.1 AA compliant)
- Government Content Integration (NCERT, DIKSHA, ePathshala)
EduVault POC running in English - Home screen with lesson cards
EduVault POC - Lesson detail view with quiz section
EduVault POC running in Hindi - Home screen with lesson cards
EduVault POC - Lesson detail view with quiz section in Hindi
- β Professional Branding: EduVault logo, Indian color scheme (Indigo + Saffron)
- β Bilingual Support: Complete English and Hindi interface
- β Lesson Navigation: Clean lesson cards with subject filters
- β Interactive UI: Voice Help and Sync buttons prominently displayed
- β Quiz Integration: "Start Quiz" sections in lesson details
- β Accessibility: Clear typography, high contrast, touch-friendly design
- β PWA Ready: Installable app with custom icons
- Offline-First Architecture: Full functionality without internet connection
- Multilingual Support: English & Hindi with extensible language framework
- Voice Interaction: Offline ASR (speech recognition) + TTS (text-to-speech)
- Accessibility: WCAG 2.1 AA compliant, screen reader support, haptic feedback
- Interactive Quizzes: Knowledge assessment with instant feedback
- Government Sync: Integration with NCERT/DIKSHA APIs for content updates
- PWA Ready: Installable on any device, works like native app
- <200MB Footprint: Optimized for low-resource devices (<2GB RAM)
- IndexedDB Storage: Efficient offline data persistence
- Service Worker: Advanced caching strategies
- Type-Safe: 100% TypeScript with strict mode
- Tested: Comprehensive unit & integration tests
- Secure: CSP headers, input validation, no PII exposure
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (React) β
β ββββββββββββββββ βββββββββββββββββββββββββββ β
β β Components β β Services β β
β β - LessonList β β - ASR (Speech Recognition)β β
β β - QuizComp β β - TTS (Text-to-Speech) β β
β β - VoiceBtn β β - LLM (AI Assistant) β β
β ββββββββββββββββ β - LessonEngine β β
β β - GovContentFetcher β β
β βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Offline Storage Layer β
β ββββββββββββββββ ββββββββββββββββββββββββ β
β β IndexedDB β β Service Worker β β
β β - Lessons β β - Static Cache β β
β β - Progress β β - Runtime Cache β β
β β - Settings β β - Offline Fallback β β
β ββββββββββββββββ ββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β (when online)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Government APIs (NCERT/DIKSHA) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
# Navigate to project directory
cd "C:\Users\vikas\Downloads\AI PROJECT"
# Start development server
npm startApplication opens at: http://localhost:3000
- β Splash Screen: Gradient background (Indigo β Saffron)
- β Header: EduVault logo + tagline "ΰ€ΰ₯ΰ€ΰ€Ύΰ€¨ ΰ€ΰ₯ ΰ€ͺΰ€Ήΰ₯ΰ€ΰ€, ΰ€Ήΰ€° ΰ€ΰ₯ΰ€¨ΰ₯ ΰ€€ΰ€"
- β Language Selector: Switch between English and Hindi
- β Color Scheme: Indigo primary (#3F51B5), Saffron accent (#FF9933)
- View Lesson List: See 3 preloaded lessons
- Click "Photosynthesis": Opens lesson detail page
- Read Content: View lesson text and metadata
- Click "Back": Return to lesson list
- Test Other Lessons: Indian Constitution, Pythagorean Theorem
- Voice Help Button: Click orange "Voice Help" button
- Microphone Permission: Allow browser microphone access
- Speak Commands: Try saying "start lesson" or "next question"
- Read Aloud: Click "Read Aloud" in lesson detail
- Audio Playback: Click "Play Audio" for lesson narration
- Start Quiz: Click "Start Quiz" in any lesson
- Answer Questions: Select multiple choice options
- Instant Feedback: See green (correct) or red (incorrect) responses
- Progress Bar: Watch completion percentage
- Final Score: View results at end
- Change Language: Use dropdown "ΰ€ΰ€Ύΰ€·ΰ€Ύ / Language"
- Switch to Hindi: Select "ΰ€Ήΰ€Ώΰ€ΰ€¦ΰ₯"
- UI Updates: Labels change to Hindi
- Content: Lesson content adapts to language
- Voice: TTS switches to Hindi voice
- Desktop: Look for install icon (β) in browser address bar
- Mobile: Menu β "Add to Home Screen"
- Install: Follow prompts to install as app
- Launch: Open from home screen/desktop
- Offline: Works without internet after installation
- Keyboard Navigation: Use Tab to navigate through elements
- Focus Indicators: Orange ring appears on focused elements
- Screen Reader: Enable and test with NVDA/JAWS
- High Contrast: Test in Windows high contrast mode
- Voice Commands: Use voice for hands-free navigation
- Open DevTools: Press F12
- Go to Network Tab: Set throttling to "Offline"
- Refresh Page: App should still work
- Navigate: All features should function normally
- Restore Online: Set back to "No throttling"
# Open browser DevTools (F12)
# Go to Application tab
# Check:
# - Service Workers: "eduvault-service-worker" active
# - IndexedDB: "eduvault-db" with lesson data
# - Manifest: All 3 icons (192, 512, 1024) loaded
# - Storage: Cached resources for offline use# Lighthouse Audit (DevTools β Lighthouse)
# Target scores:
# - Performance: 90+
# - Accessibility: 95+
# - Best Practices: 90+
# - SEO: 90+
# - PWA: 100Visit these URLs to see your custom icons:
http://localhost:3000/icons/icon-192.png
http://localhost:3000/icons/icon-512.png
http://localhost:3000/icons/icon-1024.png
# Create production build
npm run build
# Test production version
npx serve -s build -l 3001
# Visit: http://localhost:3001
# Should work identically to dev version- Node.js β₯ 18.0.0
- npm β₯ 9.0.0
# Clone repository
git clone <repository-url>
cd EduVault
# Install dependencies
npm install --legacy-peer-deps
# Start development server
npm startApplication will open at http://localhost:3000
# Create optimized production build
npm run build
# Build output in ./build directory
# Deploy to any static hosting (Netlify, Vercel, GitHub Pages)# Run all tests with coverage
npm test
# Run tests in watch mode
npm run test:watch# Run full verification suite
npm run verify
# Individual checks
npm run lint # ESLint
npm run type-check # TypeScript
npm run format # Prettier
npm run audit:security # Security auditnpm run build
# Deploy build/ to static host
# Users can install via browser "Add to Home Screen"npm install @capacitor/core @capacitor/cli
npx cap init
npx cap add android
npm run build
npx cap copy
npx cap open android
# Build APK in Android Studio# Package entire build/ folder
# Distribute via USB/SD card
# Run via local web server or file:// protocolCreate .env file in project root:
# API Configuration
REACT_APP_NCERT_API=https://api.ncert.gov.in
REACT_APP_DIKSHA_API=https://diksha.gov.in/api
# Feature Flags
REACT_APP_ENABLE_VOICE=true
REACT_APP_ENABLE_SYNC=true
# Development
REACT_APP_DEBUG=falseEdit public/lesson_content/lessons.json:
{
"id": "lesson_XXX",
"title": "Your Lesson Title",
"language": "en",
"subject": "Mathematics",
"grade": 7,
"audio_file": "lesson_content/audio/lesson_XXX_en.mp3",
"text_content": "Lesson content here...",
"quiz": [
{
"question": "Your question?",
"options": ["Option A", "Option B", "Option C"],
"answer": "Option A",
"explanation": "Why this is correct..."
}
]
}Place MP3 files in public/lesson_content/audio/
- Services: ASR, TTS, LLM, LessonEngine, DBManager
- Utilities: ServiceWorkerRegistration, IndexedDB
- Hooks: useAccessibility, useOfflineDetection
- Component interactions
- Service worker caching
- Offline/online transitions
- ARIA compliance
- Keyboard navigation
- Screen reader compatibility
- Color contrast ratios
- Lighthouse audits (target: 90+ scores)
- Bundle size analysis
- Load time metrics
- Content Security Policy (CSP): Strict resource loading
- Input Validation: All user inputs sanitized
- HTTPS Only: Production requires secure connection
- No Secrets in Code: Environment variables for sensitive data
- API Whitelisting: Only approved government domains
- Data Privacy: No PII collection, offline-first
npm run audit:security- β Semantic HTML5 elements
- β ARIA labels and roles
- β Keyboard navigation support
- β Screen reader announcements
- β Focus management
- β Color contrast >4.5:1
- β Text resizing support
- β Haptic feedback
- β Voice interaction
- NVDA (Windows)
- JAWS (Windows)
- TalkBack (Android)
- VoiceOver (iOS/macOS)
- First Contentful Paint: <1.5s
- Time to Interactive: <3.0s
- Largest Contentful Paint: <2.5s
- Cumulative Layout Shift: <0.1
- Total Bundle Size: <500KB gzipped
- Code splitting
- Lazy loading
- Service worker precaching
- Image optimization
- Tree shaking
- Minification
- TypeScript: Strict mode, full type coverage
- ESLint: Airbnb style guide
- Prettier: Consistent formatting
- Commits: Conventional commits format
- Create feature branch
- Write tests first (TDD)
- Implement feature
- Run
npm run verify - Submit pull request
MIT License - see LICENSE file for details
- NCERT for educational content standards
- DIKSHA platform for API specifications
- Web Speech API for voice capabilities
- IndexedDB for offline storage
- Project Summary - Complete project overview, vision, and current status with visual proof
- POC Testing Guide - Step-by-step testing instructions for all features
- POC Completion Status - Detailed status report of working features and capabilities
- Deployment Guide - Production deployment instructions and hosting options
- PRD (Product Requirements Document) - Complete product specifications and requirements
- User Stories - Detailed user personas and use cases
- Roadmap - Future development plans and milestones
- Competitive Analysis - Market analysis and competitor comparison
- Go-to-Market Strategy - Launch strategy and market entry plan
- Metrics & KPIs - Success metrics and performance indicators
- Stakeholder Communication - Communication templates and strategies
- Release Notes - Version history and feature updates
- FAQ - Frequently asked questions and troubleshooting
- Security Guide - Security best practices and implementation
- User Manual - End-user guide for using the application
- Installation Guide - Complete setup and installation instructions
- For Developers: Start with Project Summary β Testing Guide β Deployment Guide
- For Product Managers: Start with PRD β User Stories β Roadmap
- For Stakeholders: Start with Project Summary β POC Completion Status β Go-to-Market
- Issues: GitHub Issues
- Documentation:
/docsdirectory (see above for detailed guide) - Community: Discussions tab
Built with β€οΈ following MAANG engineering standards
Production-ready β’ Accessible β’ Secure β’ Scalable
