-
Notifications
You must be signed in to change notification settings - Fork 254
LMS Engine
Aneesh Rao edited this page Dec 11, 2024
·
1 revision
- Introduction
- User Roles and Permissions
- Courses Architecture
- Content Types and Structure
- Course Instances and Access Levels
- Video and Assessment Processing Pipelines
- Institute and Registration Flow
- Development Notes
- Fine-Grained Proctoring Features for Students
CAL LMS is a MOOC-like architecture designed to facilitate learning across multiple institutes. It enables:
- Institutes to create and manage courses.
- Students, instructors, and staff to access content and functionalities based on their roles.
This documentation outlines the structure, hierarchy, and workflows within the LMS to aid developers in understanding its design.
- Create and manage courses and modules.
- Add, update, and remove content (videos, articles, assessments).
- Enroll in courses and access course content.
- Complete assessments.
- Administrative support for courses and students.
- Manage student enrollments and grading (if delegated).
- Manage courses and course related content for assigned institutions.
- Allow CREATE, READ and UPDATE operations on courses associated with assigned institutions.
- Manage courses and course related content for all institutions.
- Allow CREATE, READ and UPDATE operations on any course.
- Manage courses and course related content for all institutions.
- Allow CREATE, READ, UPDATE and DELETE operations on any course.
- Institute(s): A course can be launched by one or more institutes.
-
Course: The top-level container for learning content.
-
Module: Represents a week or unit of content.
-
Section: Divides a module into smaller, logical parts.
- Section Item: Individual learning components (e.g., articles, videos, assessments).
-
Section: Divides a module into smaller, logical parts.
-
Module: Represents a week or unit of content.
- Article: A Markdown file with customizations.
- Video: An MP4 file or a YouTube link, with optional start and end times.
- Assessment: A quiz or assignment to evaluate understanding.
- Articles or videos are followed by assessments.
- Assessments can also stand alone without being attached to a video/article.
- Videos cannot stand alone without an associated assessment.
- Format: Markdown files.
- Usage: Rich textual content with optional customization.
- Source: MP4 file links or YouTube links.
- Options: Customizable start and end times for playback.
- Stand-alone or tied to videos/articles.
- Automatically generated questions or manually created by instructors.
- A course is offered to students through its instances.
- Multiple instances of the same course can exist.
- Public: Any student can register.
- Unlisted: Registration is restricted to specific students chosen by the instructor.
- Private: Only students from the associated institute can register.
- Video content is processed.
- Transcript is generated.
- Questions are auto-generated from the transcript.
- Questions are registered in the database.
- An assessment is created using all questions.
- After a video/segment ends, a random subset of generated questions is presented as an assessment.
- On submission:
- Submission data is stored for grading.
- A grader evaluates the assessment and updates results.
- If a video has defined segments:
- Process start timestamps in ascending order.
- Create separate video objects for each segment.
- Follow the general processing pipeline for each segment.
- Institutes are registered in the system.
- Instructors are associated with their respective institutes.
- Instructors create courses, and course instances are launched.
- Students register for course instances based on the instance's access level.
- Institutes → Instructors → Courses → Course Instances → Students
- All courses must include assessments for their videos and articles.
- A course instance's access level determines its visibility and registration flow.
- Ensure all pipelines (video, assessment, etc.) are well-tested for edge cases (e.g., undefined segments, large datasets).
- Modularize the code to separate concerns for institute management, course content, and user interactions.(Already done, need to improvize)
- Use consistent naming conventions across modules.
- Write reusable and scalable components for pipelines (e.g., video processing).
- Maintain strict validation for content input (e.g., video URLs, timestamps).
This feature introduces configurable proctoring options for enhanced exam monitoring:
-
Student Level Proctoring
- Default: The proctoring level will follow the course-level setting.
- No: Proctoring is completely disabled for the student.
- Strict: The student is subjected to strict proctoring, overriding the course-level setting.
-
Course Level Proctoring
- Enabled: Proctoring is activated for the course.
- Disabled: Proctoring is turned off for the course.
The final proctoring behavior will depend on a combination of the student’s setting and the course’s setting:
- Student: No → No proctoring, regardless of course setting.
- Student: Strict → Strict proctoring, regardless of course setting.
- Student: Default → Proctoring follows the course-level setting.
Dhananjaya Lab for Education Design IIT Ropar