Skip to content

openxlearn/edu-learning-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

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

Repository files navigation

EduLearn - AI-Powered Education Learning Platform

An AI-powered education learning platform that supports standardized test preparation and online tutoring. The platform enables students to practice questions, take mock exams, receive AI-driven explanations, and participate in both pre-recorded and live AI tutoring sessions.

Features

🎯 Practice Questions

  • Access thousands of practice questions across all exam types
  • Filter by exam type (SSAT, SAT, GRE, GMAT, ACT, TOEFL, IELTS)
  • Filter by category (Math, Verbal, Reading, Writing, etc.)
  • Filter by difficulty level (Easy, Medium, Hard, Expert)
  • Instant answer evaluation with detailed explanations
  • Track practice attempts and progress

πŸ“ Mock Exams

  • Full-length timed mock exams simulating real test conditions
  • Auto-save and resume functionality
  • Instant scoring upon completion
  • Question-by-question review with explanations
  • Pass/fail indicators based on exam-specific thresholds

πŸ€– AI Tutoring

  • Personalized AI-powered tutoring sessions
  • Context-aware explanations for incorrect answers
  • Step-by-step problem solving guidance
  • Conversation history preservation
  • Support for math equations with LaTeX notation

πŸ“Ή Video Classroom

  • Pre-recorded video lessons organized by exam and topic
  • Video progress tracking
  • Bookmark functionality for key moments
  • Playback speed control
  • Resume from where you left off

✏️ Interactive Whiteboard

  • Real-time collaborative whiteboard
  • Drawing tools (pencil, shapes, text)
  • Color picker and brush size controls
  • Undo/redo functionality
  • Export to PNG

πŸ“Š Progress Tracking

  • Comprehensive analytics dashboard
  • Performance by category and exam type
  • Difficulty distribution analysis
  • Mock exam history and scores
  • Study streak tracking
  • Video learning progress

Tech Stack

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • Database: PostgreSQL with Prisma ORM
  • Authentication: NextAuth.js
  • AI Integration: OpenAI API (GPT-4)
  • Real-time: Socket.io (for whiteboard collaboration)
  • Charts: Recharts

Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • OpenAI API key

Installation

  1. Clone the repository (if applicable) or navigate to the project directory:

    cd edu-learning-platform
  2. Install dependencies:

    npm install
  3. Set up environment variables: Copy the example environment file and update with your values:

    cp .env.example .env

    Update the following variables in .env:

    DATABASE_URL="postgresql://username:password@localhost:5432/edu_learning?schema=public"
    NEXTAUTH_URL="http://localhost:3000"
    NEXTAUTH_SECRET="your-super-secret-key-change-in-production"
    OPENAI_API_KEY="sk-your-openai-api-key"
  4. Set up the database:

    # Generate Prisma client
    npx prisma generate
    
    # Run database migrations
    npx prisma migrate dev --name init
    
    # (Optional) Seed the database with sample data
    npx prisma db seed
  5. Start the development server:

    npm run dev
  6. Open the application: Navigate to http://localhost:3000

Project Structure

edu-learning-platform/
β”œβ”€β”€ prisma/
β”‚   β”œβ”€β”€ schema.prisma         # Database schema
β”‚   └── seed.ts               # Database seed script
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                  # Next.js App Router pages
β”‚   β”‚   β”œβ”€β”€ api/              # API routes
β”‚   β”‚   β”‚   β”œβ”€β”€ auth/         # Authentication endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ questions/    # Practice questions API
β”‚   β”‚   β”‚   β”œβ”€β”€ mock-exams/   # Mock exams API
β”‚   β”‚   β”‚   β”œβ”€β”€ tutoring/     # AI tutoring API
β”‚   β”‚   β”‚   └── progress/     # Progress tracking API
β”‚   β”‚   β”œβ”€β”€ auth/             # Auth pages (signin, signup)
β”‚   β”‚   β”œβ”€β”€ practice/         # Practice questions page
β”‚   β”‚   β”œβ”€β”€ exams/            # Mock exams page
β”‚   β”‚   β”œβ”€β”€ tutoring/         # AI tutor chat page
β”‚   β”‚   β”œβ”€β”€ classroom/        # Video lessons page
β”‚   β”‚   β”œβ”€β”€ whiteboard/       # Interactive whiteboard page
β”‚   β”‚   └── progress/         # Progress dashboard page
β”‚   β”œβ”€β”€ components/           # React components
β”‚   β”‚   β”œβ”€β”€ ui/               # Base UI components
β”‚   β”‚   β”œβ”€β”€ layout/           # Layout components
β”‚   β”‚   β”œβ”€β”€ dashboard/        # Dashboard components
β”‚   β”‚   β”œβ”€β”€ video/            # Video player component
β”‚   β”‚   └── whiteboard/       # Whiteboard component
β”‚   β”œβ”€β”€ lib/                  # Utility libraries
β”‚   β”‚   β”œβ”€β”€ auth.ts           # NextAuth configuration
β”‚   β”‚   β”œβ”€β”€ prisma.ts         # Prisma client
β”‚   β”‚   β”œβ”€β”€ openai.ts         # OpenAI integration
β”‚   β”‚   └── utils.ts          # Helper functions
β”‚   └── types/                # TypeScript types
β”œβ”€β”€ .env.example              # Environment variables template
β”œβ”€β”€ package.json
└── README.md

API Endpoints

Authentication

  • POST /api/auth/register - Register new user
  • POST /api/auth/[...nextauth] - NextAuth.js endpoints

Questions

  • GET /api/questions - Get practice questions (with filters)
  • POST /api/questions - Create new question
  • GET /api/questions/[id] - Get question details
  • POST /api/questions/[id]/submit - Submit answer

Mock Exams

  • GET /api/mock-exams - List available mock exams
  • GET /api/mock-exams/[id] - Get exam details
  • POST /api/mock-exams/[id]/start - Start exam attempt
  • POST /api/mock-exams/[id]/save - Auto-save answers
  • POST /api/mock-exams/[id]/submit - Submit exam

Tutoring

  • GET /api/tutoring/chat - Get user's chat sessions
  • POST /api/tutoring/chat - Create new chat session
  • GET /api/tutoring/chat/[chatId] - Get chat messages
  • POST /api/tutoring/chat/[chatId] - Send message
  • POST /api/tutoring/explain - Get AI explanation for question

Progress

  • GET /api/progress - Get user's progress data

User Roles

  • Student: Default role. Can practice questions, take exams, chat with AI tutor
  • Teacher: Can upload and manage questions, create exams
  • Admin: Full access to all features and content management

Environment Variables

Variable Description
DATABASE_URL PostgreSQL connection string
NEXTAUTH_URL Application URL for NextAuth
NEXTAUTH_SECRET Secret key for session encryption
OPENAI_API_KEY OpenAI API key for AI features

Development

Running Tests

npm run test

Building for Production

npm run build
npm start

Database Management

# Open Prisma Studio (database GUI)
npx prisma studio

# Reset database
npx prisma migrate reset

# Generate migration
npx prisma migrate dev --name <migration-name>

Deployment

  1. Set up a PostgreSQL database (e.g., Supabase, Neon, or Railway)
  2. Deploy to Vercel, Railway, or similar platform
  3. Configure environment variables in your deployment platform
  4. Run database migrations: npx prisma migrate deploy

Supported Exams

  • SSAT - Secondary School Admission Test
  • SAT - Scholastic Assessment Test
  • GRE - Graduate Record Examinations
  • GMAT - Graduate Management Admission Test
  • ACT - American College Testing
  • TOEFL - Test of English as a Foreign Language
  • IELTS - International English Language Testing System

Future Enhancements

  • Human tutor marketplace
  • Payment and subscription management
  • Official exam scoring certification
  • Mobile application
  • Live tutoring sessions with video/audio
  • Collaborative study groups

License

This project is private and proprietary.

Support

For questions or issues, please contact the development team.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors