This eLearning platform enables users to enroll in courses, submit assignments, and take exams. The platform supports four types of users: Students, Instructors, Admins, and Super Admins. Each role has distinct functionalities, ensuring the system is secure and efficient in managing courses and student progress.
The platform is developed using the MERN stack along with additional tools like bcrypt for password encryption, express-rate-limiter for rate limiting, Vite for fast builds, Bootstrap, and Material-UI (MUI) for styling:
## 3. User Roles and Permissions- Enroll in Courses: Students can enroll in available courses.
- Submit Assignments: Students can upload their assignment submissions for each course as a pdf.
- Solve Exams: Students can participate in multiple-choice exams and submit answers.
- View Deadlines: Students can see upcoming deadlines for assignments and exams.
- Track Progress: Students can view their progress for each course they are enrolled in, including marks for assignments and exams.
- Manage Course Materials: Instructors can add, edit, and delete course materials, such as announcements, exams, and assignments.
- Add MCQ Exams with Auto-Correction: Instructors can create multiple-choice exams with model answers. The system automatically corrects student submissions and displays the marks.
- Track Student Progress: Instructors can view the progress of students enrolled in the courses they teach.
- Manage Courses: Admins can add, edit, or delete courses from the system.
- Manage Users: Admins can remove students or instructors from the system.
- Assign Instructors to Courses: Admins can assign instructors to specific courses.
- View Student Progress: Admins can view the progress of all students in all courses.
- Full Admin Access: Super Admins have all the capabilities of Admins.
- Course Enrollment: Students can browse the course catalog and enroll in available courses.
- Assignment Submission: Students upload their completed assignments to be graded by the instructor.
- Exam Participation: Students can take exams, with MCQ exams being auto-corrected by the system.
- Progress Tracking: Students can view their marks and progress for every enrolled course.
- Material Management: Instructors can create and manage course materials, including assignments, exams, and announcements.
- Auto-Graded Exams: Instructors can upload MCQ exams along with correct answers for automatic grading.
- View Student Progress: Instructors can monitor the performance of students in the courses they are assigned.
- Course Management: Admins can create, update, and delete courses.
- User Management: Admins can remove students or instructors from the system and assign instructors to courses.
- Progress Monitoring: Admins have access to the performance records of all students.
- Admin Management: Super Admins can manage Admins, as well as all other entities within the system.
- JWT (JSON Web Token): All users are authenticated using JWT tokens, ensuring secure access to the platform's resources.
- Email Verification & Password Reset: Users can reset their passwords through email authentication. A UUID v4 token is generated and sent to the user’s email for password recovery.
The frontend is built using React.js with Material-UI and Bootstrap for component styling. Providing a user-friendly interface for navigating the platform. Each user role has a dedicated dashboard with role-specific features and actions.
The platform uses MongoDB as the primary database, with the following collections:
- Users: Stores details about students, instructors, admins, and super admins.
- Courses: Stores course information, including the materials, exams, and student enrollment data.
- Assignments: Stores submitted assignments for each course.
- Exams: Stores MCQ exams and model answers.
- Posts: Stores the Announcements added by instructors