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.
- 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
- 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
- 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
- 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
- Real-time collaborative whiteboard
- Drawing tools (pencil, shapes, text)
- Color picker and brush size controls
- Undo/redo functionality
- Export to PNG
- Comprehensive analytics dashboard
- Performance by category and exam type
- Difficulty distribution analysis
- Mock exam history and scores
- Study streak tracking
- Video learning progress
- 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
- Node.js 18+
- PostgreSQL database
- OpenAI API key
-
Clone the repository (if applicable) or navigate to the project directory:
cd edu-learning-platform -
Install dependencies:
npm install
-
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"
-
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
-
Start the development server:
npm run dev
-
Open the application: Navigate to http://localhost:3000
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
POST /api/auth/register- Register new userPOST /api/auth/[...nextauth]- NextAuth.js endpoints
GET /api/questions- Get practice questions (with filters)POST /api/questions- Create new questionGET /api/questions/[id]- Get question detailsPOST /api/questions/[id]/submit- Submit answer
GET /api/mock-exams- List available mock examsGET /api/mock-exams/[id]- Get exam detailsPOST /api/mock-exams/[id]/start- Start exam attemptPOST /api/mock-exams/[id]/save- Auto-save answersPOST /api/mock-exams/[id]/submit- Submit exam
GET /api/tutoring/chat- Get user's chat sessionsPOST /api/tutoring/chat- Create new chat sessionGET /api/tutoring/chat/[chatId]- Get chat messagesPOST /api/tutoring/chat/[chatId]- Send messagePOST /api/tutoring/explain- Get AI explanation for question
GET /api/progress- Get user's progress data
- 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
| 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 |
npm run testnpm run build
npm start# Open Prisma Studio (database GUI)
npx prisma studio
# Reset database
npx prisma migrate reset
# Generate migration
npx prisma migrate dev --name <migration-name>- Set up a PostgreSQL database (e.g., Supabase, Neon, or Railway)
- Deploy to Vercel, Railway, or similar platform
- Configure environment variables in your deployment platform
- Run database migrations:
npx prisma migrate deploy
- 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
- Human tutor marketplace
- Payment and subscription management
- Official exam scoring certification
- Mobile application
- Live tutoring sessions with video/audio
- Collaborative study groups
This project is private and proprietary.
For questions or issues, please contact the development team.