Skip to content

Walid-Khalfa/EduVisionAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EduVisionAI Platform

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.

✨ Features

Core Functionality

  • 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)

Interactive Learning

  • 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

Additional Features

  • 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

πŸ›  Tech Stack

Frontend

  • 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

Backend

  • 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

Development & DevOps

  • ESLint + Prettier - Code quality and formatting
  • Jest - Testing framework
  • Environment Configuration - Secure configuration management

πŸš€ Getting Started

Prerequisites

Installation & Setup

1. Clone the Repository

git clone https://github.com/Walid-Khalfa/EduVisionAI.git
cd EduVisionAI

2. Backend Setup

# Navigate to backend directory
cd backend

# Install dependencies
npm install

# Create environment configuration
cp .env.example .env

Edit 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=development

Start the backend server:

npm start
# Or for development with auto-restart
npm run dev

3. Frontend Setup

# Open a new terminal in the project root
cd frontend

# Install dependencies
npm install

# Create environment configuration
cp .env.example .env

Edit the .env file:

VITE_API_URL=http://localhost:5000
VITE_WS_URL=ws://localhost:5000

Start the development server:

npm run dev

The application will be available at http://localhost:3000.

πŸ“š API Documentation

Authentication Endpoints

  • POST /api/auth/register - Register new user
  • POST /api/auth/login - User login
  • POST /api/auth/logout - User logout
  • GET /api/auth/profile - Get user profile (requires authentication)

PDF & Content Processing

  • POST /api/upload/pdf - Upload and process PDF files
  • GET /api/documents - Get user documents list
  • DELETE /api/documents/:id - Delete document

AI Services

  • POST /api/ai/summary - Generate content summary
  • POST /api/ai/quiz - Generate quiz questions
  • POST /api/ai/explain - Explain concepts (context-aware)

Exam & Assessment

  • POST /api/exam/start - Start exam session
  • POST /api/exam/submit - Submit exam answers
  • GET /api/exam/results - Get exam results
  • POST /api/exam/proctor - Proctoring endpoint (tab switch detection)

Analytics & Progress

  • GET /api/analytics - User learning analytics
  • GET /api/analytics/progress - Learning progress tracking
  • GET /api/analytics/completion - Course completion metrics

WebSocket Events

  • connection - User connects to collaboration room
  • code-change - Real-time code synchronization
  • exam-start - Exam session notification
  • tab-switch - Proctoring tab switch detection

πŸ§ͺ Testing

Backend Tests

cd backend
npm test
# Or run tests in watch mode
npm run test:watch

Frontend Tests

cd frontend
npm test

πŸ— Project Structure

EduVisionAI/
β”œβ”€β”€ 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

🀝 Contributing

We welcome contributions to EduVisionAI! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Ensure all tests pass (npm test)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Guidelines

  • 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)

πŸ”’ Security Considerations

  • 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

πŸš€ Deployment

Production Build

# Frontend
cd frontend
npm run build

# Backend
cd backend
npm run build

Environment Variables for Production

NODE_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.com

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

If you encounter any issues or have questions:

  1. Check the existing Issues
  2. Create a new issue with detailed information
  3. Contact the maintainers directly (if applicable)

About

EduVisionAI is an advanced e-learning platform that transforms PDF courses into interactive, personalized learning experiences using AI technology.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors