Course Browser Tool

Goals

  • Develop a browser tool for administrators to manage the association of sites with course sections
  • Modify Site Info to integrate browser tool for course section lookup during site creation/editting

Browser Tool

Two prototypical users will need the CM Browser tool: instructors searching for Sections during site creation, and administrators managing the association of sites and Sections. Browsing should allow the user to view their institution from a high level, and to drill down to the Section they are seeking. A search feature should allow the user to find relevant Sections quickly and easily.

Hierarchy Within Course Management Data

The CM API models the organization of course Sections in a hierarchy of arbitrary depth. A Section exists at the bottommost tier. Above this is the CourseOffering, which represents the static definition of a course across Sections and AcademicSessions. These two levels will be assumed to be common to all CM implementations. Above this level, however, each institution may group CourseOfferings into a web of CourseSets to model its local organization. The key task for designing the Browser is to permit browsing of this hierarchy in a usable manner across a variety of CM API implementations.

In order to navigate the CourseSets within a CM implementation it must be possible to obtain the available categories that are defined and the ranking of those categories within the hierarchy. Two options exist:

  1. Add Methods to Get Categories and Rank to CourseManagementService
    This may be one method that returns a list ordered by rank, or two independent methods
  2. Add Configuration Property sakai.cm.categories
    This should be a rank-ordered list

Authorization

Currently any registered Sakai user can create a new site *. We are unable to generalize the access rules an insitution might want to apply to course browser access. For this reason we must design authorization functions carefully to permit local definition of appropriate access rules. Our main concerns are:

  • Institutional policy may limit course site creation to those instructors identified by the Course Management API
  • Instructor data may be incomplete in a CM API implementation so some institutions may need to rely in part or completely on instructors using the Course Browser to select their sections.
  • Many institutions provide an approval process to gatekeep course site creation to validate a user's self-selection of course sections. Some users will require the ability to approve site-to-section mappings.
  • Authority to make section-to-site mappings is distributed within most institutions such that portions of the course data hierarchy are the responsibility of different (departmental) administrators.

Authorization for the Course Browser should include the following:

  1. The ability to turn on/off logic that authorizes mapping based upon the CM API implementation's data about instructors
  2. Authorization functions that can be granted to users in specific roles covering the following privileges:
    • Ability to view all course management data
    • Ability to view all section-to-site mappings
    • Ability to create, edit, delete section-to-site mappings for CM units for which the API designates the user as instructor
    • Ability to create, edit, delete all section-to-site mappings rooted at a particular node in the CM data hierarchy
    • Ability to create, edit, delete all section-to-site mappings

Browser Tool Activities

  1. User searches course management data to determine which site is mapped to a particular section
    1. User selects "Search for sections" and is presented with a form to enter search criteria. Each field in the form permits entry of multiple search terms. These fields will include:
      • Unit name (this will be used to seach CanonicalCourses)
      • Subject
      • Course title (e.g. 'Calculus', '"Tax Accounting" Advanced')
      • Section identifier (e.g. '001', 'A')
    2. Upon submit a display of the matching sections is returned. This display shows the Sections with their parent course management units to preserve context. Related sites will be displayed.
  2. User searches course management data to determine which sections are mapped to a particular site
    1. User selects "Search for sites" and is presented with a form to enter search criteria. This form includes a single criteria field, "Title", which will except multiple search terms.
    2. Upon submit the user a display will be generated showing the matching sections and associated course management units.
  3. Administrator uses Course Browser to map a set of sections to a new site
    1. The Administrator uses site setup to create the site
    2. During site setup the Administrator associates sections using the Course Browser helper tool described in Modifications to SiteInfo below.
  4. Administrator uses Course Browser to map a set of sections to an existing site
    1. Administrator locates a site using the search or browse options described above.
    2. Administrator selects an "Edit Section Mappings" link.
    3. The user is prompted to search or browse for sections.
    4. Each page of results permits the Administrator to select sections
    5. When the Administrator has completed selection "Map Sections" or "Cancel" is clicked
    6. Administrator is returned to a view of the site from which this use case started
  5. Administrator uses Course Browser to unmap a set of sections from a site
  6. Administrator uses Course Browser to unmap all sections from a site

Browser Tool Design

CM Browser tool will use the existing cm-browser-tool project within the course-site-admin module. This is a JSF project.

This section under development... I need to review the existing CM Browser work carefully.

Modifications to SiteInfo

Detection of Course Management Implementation

SiteInfo will need to maintain its existing functionality. This means that new screens will need to appear only if the a Course Management Implementation is detected. Two options exist:

  • Registration of a "use course management" property in sakai.properties
    sakai.cm.useCourseManagement=true
    
  • Checking component manager for a registered CourseManagementService

Daisy's comment: oh, I like the first option, this way you can turn it on and off very easily. So by default, should it be on or off out of the box?

SiteInfo steps to modify

Daisy's comment: Great stuff! Can you include the image as a link too. I can't read the text in the box. I need to blow it up.

This depicts the current pre-CM flow of control within SiteInfo for the process of adding course sections to a Site. Not all code or interactions are covered. This process starts after clicking "New" from the Worksite Setup Tool.

Relevant Details

doXXX_YYY methods - these are methods called by a generic dispatcher in one of SiteAction's superclasses. They are selected by an action parameter encoded in the GET or POST parameters of the incoming request.

chef-XXXXX.vm - these are velocity templates used to create the screens for the UI. Each template name corresponds with a template index. These indexes are used in switch statements throughout SiteAction and are used to indicate which screen should be produced next for the user.

Screen names in this diagram have been created as descriptive labels for the purposes of this document. These particular screen names will not be found in the code or Sakai documentation.

Portions to Modify

SiteAction methods

public void doManual_addCourse (RunData rundata)
  1. enable lookup of course sections
    1. check for a new action called "lookup"
    2. launch helper that takes user through the CM Browser tool
    3. upon return insert course information into available fields, or add to list of sections maintained in SessionState
  2. validate sections that are added via the manual form entry fields

Velocity templates

chef-site-newSiteCourseManual.vm
  • add a "Lookup Course" link that registers the "lookup" action