EduVisionAI is an advanced e-learning platform that transforms PDF courses into interactive, personalized learning experiences using AI technology. The platform provides a comprehensive suite of tools for students and educators to enhance learning outcomes through intelligent content processing, interactive assessments, and collaborative features.
- PDF Upload & Processing: Extract and process course materials with advanced text extraction capabilities
- AI-Powered Summaries: Generate concise summaries, revision sheets, and key concepts using AI models
- Smart Quizzes: Auto-generated quiz questions with adaptive difficulty based on learning progress
- Secure Exam Simulator: Timed exams with proctoring features and anti-cheat detection (tab switching monitoring)
- AI Chat Tutor: Context-aware AI tutor for personalized learning support and Q&A
- Collaboration Room: Real-time shared code editor and document collaboration
- Progress Analytics: Comprehensive dashboard with learning analytics and progress tracking
- User Authentication: Secure JWT-based authentication with role-based access
- Responsive Design: Mobile-first responsive interface optimized for all devices
- Real-time Updates: WebSockets for live collaboration and progress tracking
- React 18 + TypeScript + Vite - Fast, type-safe development
- TailwindCSS + shadcn/ui - Modern, customizable UI components
- React Query - Server state management
- React Router - Client-side routing
- Recharts - Interactive data visualization
- Monaco Editor - Advanced code editing experience
- Socket.io Client - Real-time communication
- Node.js + Express - Robust server framework
- MongoDB + Mongoose - NoSQL database with ODM
- Socket.io Server - Real-time bidirectional communication
- Novita AI SDK - AI-powered content processing
- JWT Authentication - Secure token-based authentication
- ESLint + Prettier - Code quality and formatting
- Jest - Testing framework
- Environment Configuration - Secure configuration management
git clone https://github.com/Walid-Khalfa/EduVisionAI.git
cd EduVisionAI# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Create environment configuration
cp .env.example .envEdit the .env file with your configuration:
PORT=5000
MONGO_URI=your_mongodb_connection_string_here
JWT_SECRET=your_super_secret_jwt_key_here_replace_with_long_random_string
NOVITA_API_KEY=your_novita_ai_api_key
NODE_ENV=developmentStart the backend server:
npm start
# Or for development with auto-restart
npm run dev# Open a new terminal in the project root
cd frontend
# Install dependencies
npm install
# Create environment configuration
cp .env.example .envEdit the .env file:
VITE_API_URL=http://localhost:5000
VITE_WS_URL=ws://localhost:5000Start the development server:
npm run devThe application will be available at http://localhost:3000.
POST /api/auth/register- Register new userPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutGET /api/auth/profile- Get user profile (requires authentication)
POST /api/upload/pdf- Upload and process PDF filesGET /api/documents- Get user documents listDELETE /api/documents/:id- Delete document
POST /api/ai/summary- Generate content summaryPOST /api/ai/quiz- Generate quiz questionsPOST /api/ai/explain- Explain concepts (context-aware)
POST /api/exam/start- Start exam sessionPOST /api/exam/submit- Submit exam answersGET /api/exam/results- Get exam resultsPOST /api/exam/proctor- Proctoring endpoint (tab switch detection)
GET /api/analytics- User learning analyticsGET /api/analytics/progress- Learning progress trackingGET /api/analytics/completion- Course completion metrics
connection- User connects to collaboration roomcode-change- Real-time code synchronizationexam-start- Exam session notificationtab-switch- Proctoring tab switch detection
cd backend
npm test
# Or run tests in watch mode
npm run test:watchcd frontend
npm testEduVisionAI/
βββ backend/
β βββ src/
β β βββ controllers/ # Request handlers
β β βββ middleware/ # Authentication, validation
β β βββ models/ # Database schemas
β β βββ routes/ # API route definitions
β β βββ services/ # Business logic
β β βββ utils/ # Utility functions
β βββ tests/ # Test files
β βββ scripts/ # Setup and utility scripts
β βββ package.json
βββ frontend/
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API service layer
β β βββ types/ # TypeScript type definitions
β β βββ utils/ # Utility functions
β βββ public/ # Static assets
β βββ package.json
βββ README.md
βββ .env.example
We welcome contributions to EduVisionAI! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Ensure all tests pass (
npm test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style and conventions
- Write tests for new features and bug fixes
- Document API endpoints and complex functions
- Keep commits atomic and descriptive
- Ensure code passes linting (
npm run lint)
- JWT tokens with appropriate expiration times
- Input validation and sanitization
- Secure API endpoints with authentication middleware
- Environment variables for sensitive data
- CORS configuration for production deployment
- Rate limiting for API endpoints
# Frontend
cd frontend
npm run build
# Backend
cd backend
npm run buildNODE_ENV=production
PORT=5000
MONGO_URI=your_mongodb_atlas_connection_string
JWT_SECRET=super_long_secure_secret_key
NOVITA_API_KEY=your_production_api_key
FRONTEND_URL=https://yourdomain.comThis project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the existing Issues
- Create a new issue with detailed information
- Contact the maintainers directly (if applicable)