Welcome to our Learning Management System (LMS) platform. This project leverages cutting-edge technology to deliver a robust and user-friendly experience for both students and teachers.
- Next.js 13 with the App Router
- Prisma as an ORM
- PayMob for payments
- UploadThing for file uploads
- Mux for video processing and HLS video playback
- Clerk for authentication
- Planetscale for MySQL database
- Browse & Filter Courses: Easily browse and filter through available courses to find what suits you best.
- Purchase Courses using Stripe: Securely purchase courses using the Stripe payment gateway.
- Mark Chapters as Completed or Uncompleted: Track your learning progress by marking chapters as completed or uncompleted.
- Progress Calculation of each Course: Automatically calculate and display your progress for each course.
- Student Dashboard: A personalized dashboard for students to manage their courses and track their progress.
- Teacher Mode: Special features and tools for teachers to create and manage courses and chapters.
- Create New Courses: Teachers can create new courses with ease.
- Create New Chapters: Add new chapters to existing courses, complete with rich text descriptions.
- Easily Reorder Chapter Position with Drag n’ Drop: Intuitive drag and drop functionality to reorder chapters.
- Upload Thumbnails, Attachments, and Videos: Use UploadThing to upload various media files for your courses.
- Video Processing using Mux: Efficient video processing to ensure smooth playback.
- HLS Video Player using Mux: Stream videos using the HLS video player.
- Rich Text Editor for Chapter Description: Create detailed and formatted chapter descriptions with a rich text editor.
- Authentication using Clerk: Secure and seamless user authentication.
To get started with the development environment, follow these steps:
-
Clone the repository:
git clone https://github.com/farouqdaif1/learning-management-system.git cd lms -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root directory and add the necessary environment variables. Refer to.env.examplefor the required variables. -
Run database migrations:
npx prisma migrate dev
-
Start the development server:
npm run dev
- Browse Courses: Navigate to the courses section to browse available courses.
- Enroll in a Course: Select a course and complete the purchase using Stripe.
- Track Progress: Use the dashboard to view your enrolled courses and track your progress.
- Create Courses: Access the teacher mode to create new courses.
- Manage Chapters: Add, edit, or reorder chapters using the intuitive drag and drop interface.
- Upload Media: Upload course materials such as thumbnails, attachments, and videos.
We welcome contributions from the community. To contribute, please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature
- Make your changes and commit them:
git commit -m "Add your feature" - Push to the branch:
git push origin feature/your-feature
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for more information.
For any questions or suggestions, please open an issue or contact us at daiffarouq@gmail.com.