Loading...
The Course LMS is a modern Learning Management System (LMS) built using the latest technologies in the Next.js ecosystem. It offers a complete solution for course management, user authentication, media handling, and subscription management. This documentation will guide you through setting up the project, understanding its core features, and resolving common issues.
Technology | Version | Description |
---|---|---|
Next.js | 15 | App Router, Server Components |
React | 19 RC | Latest React release candidate |
TypeScript | - | Static typing for better code quality |
Prisma | 6 | Database ORM for PostgreSQL and MongoDB |
NextAuth | v5 Beta | Authentication provider |
Shadcn UI | - | Prebuilt UI components |
TipTap Editor | - | Rich text and markdown editor |
Cloudinary | - | Media storage and optimization |
Stripe | - | Payment processing |
Framer Motion | - | Animations and transitions |
Tailwind CSS | - | Utility-first CSS framework |
git clone https://github.com/yourusername/course-lms.git
cd course-lms
Due to compatibility issues with Next.js 15 and React 19 RC, you need to install dependencies with legacy peer dependencies:
npm install --legacy-peer-deps
.env
FileCreate a .env
file in the root directory with the following environment variables:
DATABASE_URL="mongodb+srv://..."
NEXTAUTH_URL="http://localhost:3000"
AUTH_SECRET="your-secret-key"
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="your-cloud-name"
CLOUDINARY_API_KEY="your-api-key"
CLOUDINARY_API_SECRET="your-api-secret"
NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET="your-upload-preset"
STRIPE_SECRET_KEY="sk_test_..."
STRIPE_WEBHOOK_SECRET="whsec_..."
Ensure Prisma is configured correctly:
npx prisma generate
npx prisma db push
npm run dev
The application will be available at http://localhost:3000
.
src/
├── app/ # App Router pages
│ ├── (backoffice)/ # Admin area
│ ├── (dashboard)/ # User dashboard
│ ├── (landing)/ # Public pages
│ └── api/ # API routes
├── components/ # UI components
├── hooks/ # Custom hooks
├── lib/ # Utilities
└── types/ # TypeScript types
.env
file..env
file..env
file..env
file.--legacy-peer-deps
during installation due to compatibility issues.DATABASE_URL
in the .env
file.AUTH_SECRET
and callback URLs are correctly configured.vercel deploy