This Next.js LMS (Learning Management System) application provides a platform for managing users, courses, lessons, assignments, notifications, and more. The app includes various features like course enrollment, real-time notifications, lesson scheduling, assignment submissions, and user messaging, along with permission handling and notifications using Firebase Cloud Messaging (FCM).
- Role-based access: Supports roles like Teacher, Student, and Guest.
- Courses and Lessons: Users can create, enroll in, and view courses. Teachers can manage lessons and assignments.
- Assignments and Grading: Assignments can be created and submitted by students, graded by teachers.
- Notifications: Real-time notifications for enrollments, submissions, and assignments.
- Messaging and File Sharing: Users can participate in lesson-based chats, with support for file sharing.
- Subscription Management: Handles user subscriptions through PayPal.
- Clone the Repository: Clone the Next.js project repository to your local machine.
- Install Dependencies: Run
npm install
to install project dependencies. - Environment Variables: Configure your
.env
file with your Supabase API keys and any other required credentials. - Database Initialization: Use the SQL code provided in this README to set up your Supabase tables and types.
- Run the Application: Start the Next.js server using
npm run dev
.
- User Registration: Users sign up, and their profile and settings are initialized automatically.
- Course and Lesson Creation: Teachers can create courses and lessons. Teachers can enroll students in courses.
- Assignments: Teachers create assignments; students submit work, and teachers can grade it.
- Notifications: Users receive real-time notifications based on their actions in the system.
- Messaging: Users can chat and share files within lessons.
This Next.js LMS project provides a comprehensive foundation for creating a dynamic and scalable learning platform with role-based access and real-time notifications using Supabase.