Skip to end of metadata
Go to start of metadata

On this page are sections "Technical Note:", which described how the LAMS concepts are implemented in the code. If you are reading this page to learn how to use LAMS then skip the technical notes as they may confuse matters. If you are reading this page to because you are making code changes to the user management module then you will need to read the techincal notes.

Course Management

 Usually in academic institutions, the curriculla is structure in the following way (exceptions according to the institution or type of intitutions may exist):

Term (i.e. 2006)
    |--> Semester  (i.e. First Semester or Fall)
             |-->  Grade/Degree (i.e. Psychology)
                        |-->  Course Offering (Abnormal Psychology) 
                                |--> Lecture
                                |--> Tutorials

The term, semester and degree give structure for organizing the academic activities. However, it is at the course and class level where actual learning/teaching occurs. Therefore it is from here that we will focus to create our User Management module.


Courses correspond to Course offerings. That is University courses that students can enroll to take classes. For instance, if you are a student at a University, you might enroll in courses that are part of the degree you are pursuing. For instance, if you are a Biology student, you could enroll into the "Microbiology" course. 

Now say the Microbiology course has a weekly lecture and five tutorial classes each day of the week in which the tutors help the students with their weekly practical test/experiments, etc. Each student then attends the lecture and only one tutorial a week. Each student is allocated to only one tutorial class.

   |--> Weekly Lecture (by Professor Yoichi Takayama)
   |--> Monday Tutorial
   |--> Tuesday Tutorial
   |--> Wednesday Tutorial
   |--> Thursday Tutorial
   |--> Friday Tutorial

Course and Classes are the actual "units" where the teaching occurs and both of them are containers of people that have a roles with these groups. (See Roles for further details)

Users are created in LAMS first and are then assigned to particular courses and classes. If a user is a member of lecture or tutorial class, they are also a member of the course containing that class.

Course Statuses

There are four Course Statuses:

  • Active
  • Hidden
  • Archived
  • Removed

 An Active Course is a current course and therefore running lessons for this course are to be shown in the index page.

 The Hide Course status completely hides the course to teachers and students.

When a course is Archived, the course does not longer show in the index page, instead, these sequences are now shown in the My Profile page instead as Archived courses (next to the course title, we displaye the archival date). The sequences for these archived course can only be exported as "Portfolio Export" and cannot be access by students. Only the Course Manager should have Monitor access to these sequences from the My Profile page. The System Admin are able to changed the course status back to Active or Hidden (also the Course Manager -if allowed to change the status of the course -see Create Course use case below, can change it too). When a course is archive, we need to store the date in which the course was archived.

A Removed Course means that all student records, sequences and classes are can be deleted from the database. Note: in LAMS 2.0 the data will probably still be left in the database but no one will be able to access the data. In later versions the data will be removed from the database. Once a status has changed to Removed it cannot be reversed. Only System Admins can remove courses.

Course Use cases

  1. Create a Course
  2. Modify a Course

Courses are only set by system administrators.

Create a Course 

  1. Add a Course Name, Course Code, Description and language&locale (required)
  2. Check "Course Administrators can add new users" option (unchecked by default)
  3. Check "Course Administrators can browse all users in the system" option (unchecked by default)
  4. Check "Course Administrators can change status of course" option (unchecked by default)
  5. Check "Course Administrators can create Guests accounts" (not to be implemented until 2.1)
  6. Add Users to course (search one by one or bulk excel upload)
  7. Assign roles to added users
  8. System creates a default content folder and a lesson sequence subfolder for this course (and adds permissions for all the users in it)

Once a course is created its default status is Active.

Technical Note

The default content folder name is the name of the course. In the default content folder is one subfolder, in which the sequences used for running a lesson are stored (the sequences are a copy of the original authored sequence and are created when a lesson is started). The default name of the sequence folder in English is "Lesson Sequence Folder". This name of this folder should be internationalised.

Modify Course

  1. Select a course to modify
  2. Edit Course Name, Course code and/or Description, Locale
  3. Edit Course Permissions (the three checkboxes mentioned above: Course Administrators can add new users, Course Administrators can browse all users in the system and Course Administrators can change status of course) [This can only be edited by the System Administrator]
  4. Edit Users (add/remove)
  5. Edit Roles (for users in course)
  6. Edit Course Status

Technical Note

In LAMS, this is implemented as follows.

  • Institution: A single institution organisation exists, of type ROOT ORGANISATION. This is an internal organistion used to make coding easier.
  • Course: The Institution organisation has many Course organisations. Each Course organisation is of type COURSE ORGANISATION.
  • Lecture and Tutorial Classes: Each Course has one or more Lecture and Tutorial Classes, which are of type CLASS.


Classes are created by Course Admins  and/or Course Managers and/or System Administrators

Course admins can create Classes by using the Course Management Tab in the index page. From there, Course admin can create and edit new classes. 

Note: people can overlap between classes e.g. there could be a one class that includes everyone from the course, and then four other classes that split the students into four non-overlapped groups. The lecturer could be made a member of all classes.

The course manager must belong to all classes. The course manager will be added to the staff group for all lessons, and hence will need to be in all the classes.

Classes Use cases

  1. Add a Class
  2. Edit Class
  3. Hide Class
  4. Remove Class 

Add a Class

  1. Add a Class Name, code, description and language and locale
  2. Select/Add users into class and assign roles. Note: if the user is not already in the course, they should also be added to the course.

Edit Class

  1.  Edit Class Name, code, description and language and locale
  2. Edit users
  3. Edit users roles in the class

Hide Class

  1. Select a class to hide
  2. Confirm action 

Remove class

  1. Select a class to remove
  2. Check whether there's any lesson for that class 
  3. if not lesson in class then proceed to confirmation for deletion
  4. if lesson exists tell the course admin that class cannot be removed 

User Management

 We are planning to have pluggins for different authentication methods (LDAP, active directory, etc)... but we might not finish this for LAMS 2.0. Although we'll try. Below we describe the user management aspects for LAMS 2.0 standalone (that is LAMS with its own internal authentication).

LAMS Internal Authentication (standalone) 

Adding Users to LAMS 2.0

System administrator add users to LAMS using the following use cases:

  • Simple web form interface
  • Bulk Create Users (provisioning)

Simple web form interface

Sysadmin create one user at a time.

  1. Enter username, password, first name, last name (required)
  2. Add email, external user identifier

Bulk Create Users

LAMS 2.0 provides a Excel spreadsheet for bulk creating users. The spreadsheet format is set by LAMS and it includes a field that have a coma separated

Editing Users data

In order to select a student for editing the sysadmin can select:

  • Big picker (lists all users available -one big massive list)
  • Picker searcher (provides a searching mechanism that searchs on external user_id, lastname, username, firstname)

and then edit/update the user records using a simple edit user's info. This simple edit form updates the users' personal details as well as his/her courses and roles.

Allocating students into courses as System Administrators/Global Course Admins

  • Bulk allocation/removal of students

Using a spreadsheet, sysadmins can add/remove students from courses.

Allocating students into classes (for Course Managers or Course Admins)

When a course manager is creating a class (see above use case), he/she has a chose of methods to add people into a class: 

  • Spreadsheet
  • Big picker (all the list of the people available in the course is displayed at once)
  • Searcher picker 

Course Content Folders

Each course has a course folder. In this folder is the learning designs for the course. Classes do not have a folder.


Lessons are instances of classes that a teacher or system administrator creates to run a tasks (formerly called lessons).

Running A Lesson?

How do all these roles and classes interact in a lesson? This is an example flow to illustrate how it works. We assume that there are separate staff for course administrators, author administrators, course managers and course administrators. These roles could be assigned to just one or two staff members if that is appropriate. The example assumes that all the lecturers for the course have author and monitor roles in the course, and the students have learner role.

Before the course starts:

  • The course administrator sets up a course and put 100 students in the course, along with 2 lecturers and 3 tutors. Either the course administration or the course manager sets up 5 tutorial groups and these tutorial groups are created as "Tut Group A" through "Tut Group E", and assigns the students, lecturers and tutors to the tutorial groups.

Running a learning design in a tutorial:

  • The author administrator creates some learning designs and saves the designs into the course.
  • One of the course tutors runs the "Add Lesson" wizard. He/she starts a new lesson and selects a learning design for the lesson. The learning design is copied and stored in the lesson sequence folder automatically, so that any changes made to the design during the lesson don't affect the original copy.
  • The tutor selects the "Tut Group A" as the class for the lesson. This brings up a list of all the people in "Tut Group A" and they all default to selected. There are two lists on the screen - staff (anyone with course manager or monitor roles) and learners (anyone with learner role).  Any course managers (for this course) will be listed as selected but the checkbox disabled. The tutor cannot unselect any of the course managers - all course managers (for the course) must be made part of the staff list for this lesson.
  • One of the students in this class has broken a leg so won't be attending this week. So the tutor deselects this student. The list of selected people is saved against the lesson. The people in the staff list as saved as a staff list and the learners are saved in a learner list.
  • The tutor starts the lesson immediately and everyone in the lesson works through the sequence. The lesson will appear as a link on a user's index page if the user is in the learner list for this lesson, and will appear as a monitor button on the user's index page if the user is in the staff list for this lesson. One user can be both lists (staff and learner) in which case they will get a link and a button.

Running a special one-off class:
It is found that a special tutorial is needed to cover a particular issue in the course. It will have some students from all the regular tutorial groups and will be given by one of the lecturers.

  • The lecturer creates a learning design and saves it into the course.
  • The course manager or course administrator creates a new class "Special Tut Class" within the course. This new class has just a list of students who are known to be attending the special tutorial. It could also be set up to include everyone from the course.
  • The lecturer runs the "Add Lesson" wizard. He/she starts a new lesson and selects the learning design for the lesson. The learning design is copied as before.
  • The lecturer selects the "Special Tut Class" and sets up the staff and learner lists as needed.
  • The lecturer selects the schedule option ans sets the lesson to start at the same time as the special tutorial will be run. 
  • Then when the special tutorial is held, the lesson will start automatically and the lecturer and students will participate in the lesson.

  • No labels