EduFlow is a comprehensive, feature-rich Learning Management System (LMS) built from scratch with modern web technologies. It provides a complete solution for online course delivery, user management, payment processing, and certificate generation. The platform offers a seamless experience for both students and administrators, with role-based access control, interactive learning tools, and robust payment integration.
- π Authentication - Email OTP, Google, and GitHub login options
- π Course Management - Browse, search, and enroll in courses
- π₯ Video Learning - Interactive video player with progress tracking
- π PDF Resources - Download and view course materials
- π Certificates - Auto-generated PDF certificates upon course completion
- π Dashboard - Track progress, recent activity, and learning statistics
- βοΈ Profile Settings - Customize profile, notifications, and appearance
- π³ Payments - Secure Stripe integration for course purchases
- π₯ User Management - View, edit, and manage all platform users
- π Course Management - Create, edit, and organize courses with chapters/lessons
- π¬ Content Upload - Support for images, videos, and PDF resources
- π Analytics Dashboard - Track revenue, user growth, and course performance
- π·οΈ Category Management - Organize courses by categories
- ποΈ Support Tickets - Manage user inquiries and support requests
- π° Payment Configuration - Configure Stripe and transaction rules
| Technology | Purpose |
|---|---|
| Next.js 16 | React framework with App Router |
| React 19 | UI library |
| TypeScript | Type-safe development |
| Tailwind CSS 4 | Utility-first styling |
| shadcn/ui | Component library |
| Framer Motion | Animations |
| React Hook Form | Form handling |
| Zod | Schema validation |
| TipTap | Rich text editor |
| Recharts | Data visualization |
| Lucide Icons | Icon library |
| Technology | Purpose |
|---|---|
| Next.js API Routes | Serverless API endpoints |
| Prisma ORM | Database ORM |
| PostgreSQL (Neon) | Database |
| Better Auth | Authentication (Email OTP, Google, GitHub) |
| Stripe | Payment processing |
| Resend | Email delivery |
| AWS S3 / Tigris | File storage (images, videos, PDFs) |
| Vercel Blob | Certificate storage |
| Technology | Purpose |
|---|---|
| AWS S3 / Tigris | Course thumbnails, videos, PDFs |
| Presigned URLs | Secure direct uploads |
| React Dropzone | Drag-and-drop file upload |
| Vercel Blob | Certificate storage |
| Technology | Purpose |
|---|---|
| pdf-lib | Professional PDF certificate generation |
| Custom HTML/CSS | Certificate design templates |
layek_lms/
βββ app/
β βββ (auth)/ # Authentication pages (login, signup, verify)
β βββ (public)/ # Public routes (home, courses)
β βββ admin/ # Admin dashboard
β βββ dashboard/ # User dashboard
β βββ api/ # API routes
β βββ layout.tsx # Root layout
βββ components/ # Reusable UI components
βββ lib/ # Utilities, configurations
βββ prisma/ # Database schema and migrations
βββ public/ # Static assets
βββ hooks/ # Custom React hooks
βββ contexts/ # React contexts
βββ utils/ # Helper functions
βββ types/ # TypeScript type definitions
- User - Authentication, profile, role (USER/ADMIN)
- Course - Title, description, price, level, category, status
- Chapter - Course chapters with position ordering
- Lesson - Lessons within chapters (video, PDF, thumbnail)
- Enrollment - User course enrollments with payment status
- LessonProgress - Track completed lessons per user
- Certificate - Generated certificates for completed courses
- Category - Course categorization
- Better Auth integration with Email OTP, Google, and GitHub
- Role-based access control (USER / ADMIN)
- Protected routes middleware for dashboard and admin areas
- Session management with secure cookies
- Stripe Checkout integration for one-time payments
- Webhook handling for payment confirmation
- Invoice generation and PDF receipts
- Automatic enrollment upon successful payment
- Auto-generation upon course completion
- Professional PDF certificates using pdf-lib
- Unique certificate IDs with verification
- Storage in Vercel Blob with public access
- Certificate dashboard for users to view and download
- Custom video player with controls
- Progress tracking with automatic saving
- Thumbnail generation from video frames
- Fullscreen support and keyboard shortcuts
- Drag-and-drop upload using react-dropzone
- Presigned URLs for direct S3/Tigris upload
- Support for images, videos, and PDFs
- Progress tracking during upload
- Automatic file deletion from storage
- Node.js 20+
- PostgreSQL database (Neon recommended)
- Stripe account
- S3-compatible storage (Tigris)
# Clone the repository
git clone https://github.com/layekmia/EduFlow-Modern-Full-Stack-Learning-Management-System.git
cd eduflow-lms
# Install dependencies
pnpm install
# Set up environment variables
cp .env.example .env.local
# Run database migrations
npx prisma migrate dev
# Generate Prisma client
npx prisma generate
# Seed database (optional)
npx prisma db seed
# Start development server
pnpm dev# Database
DATABASE_URL="postgresql://..."
# Authentication
BETTER_AUTH_URL="http://localhost:3000"
BETTER_AUTH_SECRET="..."
# OAuth
GITHUB_CLIENT_ID="..."
GITHUB_CLIENT_SECRET="..."
GOOGLE_CLIENT_ID="..."
GOOGLE_CLIENT_SECRET="..."
# Storage
NEXT_PUBLIC_S3_BUCKET_NAME_IMAGES="..."
AWS_ACCESS_KEY_ID="..."
AWS_SECRET_ACCESS_KEY="..."
AWS_ENDPOINT_URL_S3="..."
# Stripe
STRIPE_SECRET_KEY="..."
STRIPE_WEBHOOK_SECRET="..."
NEXT_PUBLIC_STRIPE_PUBLIC_KEY="..."
# Email
RESEND_API_KEY="..."
# Cloudinary (optional)
CLOUDINARY_CLOUD_NAME="..."
CLOUDINARY_API_KEY="..."
CLOUDINARY_API_SECRET="..."
# Vercel Blob
BLOB_READ_WRITE_TOKEN="..."The application is optimized for deployment on Vercel:
# Build for production
pnpm build
# Start production server
pnpm start- Set all environment variables in Vercel dashboard
- Configure Stripe webhook for production URL
- Set up custom domain (if needed)
- Enable database backups
This project is proprietary and confidential. Unauthorized copying, distribution, or use is strictly prohibited.
Layek - GitHub
- β Complete LMS with 50+ features
- β Production-ready authentication system
- β Secure payment integration with Stripe
- β Professional PDF certificate generation
- β Admin dashboard with full CRUD operations
- β Responsive design for all devices
- β SEO optimized with metadata and static generation
Built with β€οΈ using Next.js, TypeScript, and Tailwind CSS