This is a learning management system (LMS) web application built with Next.js, Prisma, UploadThing, and Clerk.js. It allows users to browse, filter, and purchase courses, mark chapters as completed, track progress, and more.
- Browse & Filter Courses: Users can easily navigate through available courses and filter them based on different criteria.
- Mark Chapters as Completed or Uncompleted: Users can track their progress by marking chapters as completed or uncompleted.
- Progress Calculation: The system calculates and displays the progress of each course for the user.
- Student Dashboard: Users have access to a personalized dashboard where they can view their enrolled courses and progress.
- Teacher Mode: Teachers can access a special mode to create new courses, chapters, and manage course content.
- Create New Courses: Teachers can create new courses with detailed descriptions and upload resources.
- Create New Chapters: Chapters can be created within courses, allowing for structured content delivery.
- Easily Reorder Chapters: Intuitive drag-and-drop functionality enables easy reordering of chapter positions.
- Upload Thumbnails, Attachments, and Videos: Integration with UploadThing allows for easy uploading of multimedia content.
- Video Processing using Mux: Videos are processed using Mux for optimal streaming and playback.
- HLS Video Player using Mux: Mux provides an HLS video player for seamless video playback.
- Rich Text Editor: A rich text editor is provided for creating detailed chapter descriptions.
- Authentication using Clerk: User authentication is handled using Clerk.js for secure access control.
- ORM using Prisma: Prisma ORM facilitates database interactions, ensuring efficient data management.
- MySQL Database: Local MySQL database is used for storing application data.
As this project is intended for demonstration purposes and not for deployment, it is not provided with installation guides or instructions for cloning. However, you can explore the source code to understand its implementation.
This project was developed with reference to tutorials from Code With Antonio,