Skip to content

Latest commit

 

History

History
255 lines (204 loc) · 7.63 KB

File metadata and controls

255 lines (204 loc) · 7.63 KB

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)