This Learning Management System (LMS) platform is developed using Next.js and serves as a comprehensive solution for online education. It supports both students and teachers, providing various features to facilitate online learning and course management. This project was created for educational purposes to explore and implement modern web development technologies and practices.
- Course Creation: Create and manage courses.
- Chapter Management: Add and organize chapters within courses.
- Content Upload: Upload chapter-wise videos, PDFs, and other materials.
- Media Handling: Use Uploadthing for managing uploads and Mux for video presentation.
- Course Enrollment: Enroll in available courses.
- Content Access: Access course videos and materials uploaded by teachers.
- Frontend: Next.js
- Authentication: Clerk.js for sign-in and sign-up functionality.
- File Uploads: Uploadthing for handling uploads of videos, PDFs, photos, and other files.
- Video Streaming: Mux for video presentation within the app.
- Payment Integration: Stripe for handling payments.
- Database: Prisma ORM for interacting with a PostgreSQL database.
- UI Components: Shadcn library for styling and UI components.
- Node.js (v14 or higher)
- PostgreSQL
- Stripe Account
- Mux Account
- Clerk.js Account
- Uploadthing Account
-
Clone the Repository
git clone https://github.com/Mihirjataniya/Learning_Management_system.git cd Learning_Management_system
-
Install Dependencies
npm install
-
Environment Variables Copy the provided
.env.example
to.env
and fill in the necessary values.cp .env.example .env
-
Run Database Migrations
npx prisma migrate dev
-
Start the Development Server
npm run dev
-
Access the Application Open your browser and navigate to
http://localhost:3000
.
- Sign up or log in using Clerk.js.
- Create a new course.
- Add chapters to the course.
- Upload videos and materials to each chapter using Uploadthing.
- Manage courses and content through the teacher dashboard.
- Sign up or log in using Clerk.js.
- Browse available courses.
- Enroll in a course.
- Access course content, including videos and materials, through the student dashboard.
- Complete course and track progress.