A modern, AI-powered Learning Management System built with Next.js that enables users to create personalized courses, generate study materials, build learning roadmaps, and track progress. The platform leverages advanced AI to generate comprehensive educational content including notes, flashcards, quizzes, videos, and interactive learning paths.
- AI-Powered Course Generation: Generate complete courses with chapters, notes, flashcards, and quizzes from any topic
- Learning Roadmaps: Create structured learning paths with prerequisites, dependencies, and progress tracking
- Multiple Study Types: Generate content for Practice, Exam preparation, and Interview preparation
- Interactive Roadmap Views:
- Graph view with visual dependency mapping
- Timeline view for sequential learning
- Syllabus view for structured content
- Video Generation: AI-generated educational videos with narration and visuals
- Multi-language Support: Internationalization support with real-time AI translation
- Progress Tracking: Track your learning progress across courses and roadmaps
- User Authentication: Secure authentication with Clerk
- Payment Integration: Stripe integration for premium features
- AI Roadmap Assistant: Get personalized guidance and explanations for any topic
- Topic Explanations: Comprehensive explanations at beginner, intermediate, and expert levels
- Resource Curation: AI-curated learning resources for each topic
- Project Suggestions: Hands-on project ideas for practical learning
- Quiz Generation: Automated quiz creation with multiple question types
- Skill Checks: Verify your understanding before moving to advanced topics
- Next.js 16 - React framework with App Router
- React 19 - UI library
- TypeScript - Type safety
- Tailwind CSS - Styling
- Framer Motion - Animations
- Radix UI - Accessible component primitives
- React Flow - Interactive graph visualizations
- Remotion - Video generation and rendering
- Next.js API Routes - Serverless API endpoints
- Drizzle ORM - Type-safe database queries
- PostgreSQL (Neon) - Database
- Clerk - Authentication
- Stripe - Payment processing
- Inngest - Background job processing
- OpenAI GPT-4 - Content generation and translations
- Google Generative AI - Alternative AI provider
- AI SDK (Vercel AI) - AI integration utilities
- Drizzle Kit - Database migrations
- ESLint - Code linting
- TypeScript - Type checking
Before you begin, ensure you have the following installed:
- Node.js 18+ (recommended: 22+)
- pnpm (or npm/yarn)
- PostgreSQL database (or Neon account)
- Git
-
Clone the repository
git clone <repository-url> cd lms
-
Install dependencies
pnpm install # or npm install -
Set up environment variables
Create a
.env.localfile in the root directory:# Database NEXT_PUBLIC_DATABASE_URL=postgresql://user:password@host:port/database # Authentication (Clerk) NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key CLERK_SECRET_KEY=your_clerk_secret_key # OpenAI NEXT_PUBLIC_OPENAI_API_KEY=your_openai_api_key # Stripe NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key STRIPE_SECRET_KEY=your_stripe_secret_key STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret # Inngest (optional, for background jobs) INNGEST_EVENT_KEY=your_inngest_event_key INNGEST_SIGNING_KEY=your_inngest_signing_key # App URL NEXT_PUBLIC_APP_URL=http://localhost:3000
-
Set up the database
# Generate migrations (if needed) pnpm drizzle-kit generate # Run migrations pnpm drizzle-kit push
-
Run the development server
pnpm dev # or npm run dev -
Open your browser
Navigate to http://localhost:3000
lms/
βββ app/ # Next.js App Router pages
β βββ api/ # API routes
β β βββ courses/ # Course management endpoints
β β βββ roadmaps/ # Roadmap endpoints
β β βββ video/ # Video generation endpoints
β β βββ translate/ # Translation endpoints
β βββ course/ # Course pages
β βββ dashboard/ # Dashboard pages
β βββ roadmaps/ # Roadmap pages
β βββ (auth)/ # Authentication pages
βββ components/ # React components
β βββ Dashboard/ # Dashboard components
β βββ Roadmap/ # Roadmap components
β βββ Course/ # Course components
β βββ ui/ # Reusable UI components
βββ config/ # Configuration files
β βββ schema.ts # Database schema
β βββ db.ts # Database connection
β βββ AiModel.ts # AI model configuration
βββ lib/ # Utility libraries
β βββ ai/ # AI-related utilities
β βββ i18n/ # Internationalization
β βββ roadmap/ # Roadmap utilities
β βββ video/ # Video generation utilities
βββ locales/ # Translation files
βββ drizzle/ # Database migrations
βββ inngest/ # Background job functions
βββ public/ # Static assets
Create comprehensive courses by simply entering a topic. The AI generates:
- Structured course layout with chapters
- Detailed notes for each chapter
- Interactive flashcards
- Practice quizzes
- Q&A sections
- Educational videos
Build structured learning paths with:
- Hierarchical Structure: Levels β Sections β Subtopics
- Prerequisites Mapping: Visual dependency graph
- Progress Tracking: Track completion status
- Multiple Views: Graph, Timeline, and Syllabus views
- AI Assistant: Get help and explanations for any topic
Generate educational videos with:
- AI-written scripts
- Automated narration
- Visual scenes and animations
- Multi-language support
POST /api/courses- Create a new courseGET /api/courses- Get user's coursesPOST /api/generate-course-outline- Generate course outline
POST /api/roadmaps/generate- Generate a roadmapGET /api/roadmaps/[roadmapId]- Get roadmap detailsPOST /api/roadmaps/[roadmapId]/progress- Update progressPOST /api/roadmaps/[roadmapId]/assistant- Chat with roadmap assistantPOST /api/roadmaps/[roadmapId]/explain/[topicId]- Get topic explanationPOST /api/roadmaps/[roadmapId]/quiz/[topicId]- Generate quizPOST /api/roadmaps/[roadmapId]/resources/[topicId]- Get resources
POST /api/video/generate- Generate videoPOST /api/video/render- Render videoGET /api/video/status/[videoId]- Get video status
The platform supports multiple languages with AI-powered translations:
- English (en) - Source language
- Spanish (es)
- French (fr)
- German (de)
- Portuguese (pt)
- Chinese (zh)
- Japanese (ja)
- Arabic (ar)
- Hindi (hi)
See I18N_README.md for detailed i18n setup instructions.
- Push your code to GitHub
- Import the repository in Vercel
- Add environment variables in Vercel dashboard
- Deploy
Ensure all environment variables from .env.local are set in your deployment platform.
For production, use a managed PostgreSQL service like:
- Neon (recommended for serverless)
- Supabase
- Railway
- AWS RDS
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLintpnpm i18n- Generate translations with Lingo.dev CLIpnpm i18n:watch- Watch mode for translations
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is private and proprietary.
For support, please open an issue in the repository or contact the development team.
- Next.js - The React framework
- Clerk - Authentication
- OpenAI - AI capabilities
- Drizzle ORM - Type-safe database queries
- Remotion - Video generation
- Radix UI - Accessible components
Built with β€οΈ using Next.js and AI