Chapter 1. DESIGN

Table of Contents

Data Model:
Content Folder
Roles
Relations
Privileges
Category Tree

The dotLRN-Catalog package make use of various packages like acs-content-repository, categories, assessment dotLRN. It makes use of acs-content-repository API to create the data-table and store the data in the database. It is designed to provide professors a way to create courses that can have different versions (revisions) and than can be associated to dotLRN classes and communities, categorized in different categories, and also associate one assessment that will provide a way to the users to register to the system, enroll to different dotlrn classes, make member of communities, etc.

Data Model:

The basic table that has all the information about dotlrn-catalog courses is:

image showing dotlrn_catalog table

I

Indexes: "dotlrn_catalog_pkey" primary key, btree (course_id) Foreign-key constraints: "$1" FOREIGN KEY (course_id) REFERENCES cr_revisions(revision_id)

The new content_type and attribute table are created with the after-install apm-callback-proc as follows:

        content::type::new -content_type "dotlrn_catalog" \
                           -pretty_name "DotLRN Catalog" \ 
                           -pretty_plural "DotLRN Catalog" \
                           -table_name "dotlrn_catalog" \
                           -id_column "course_id"
      
      # now set up the attributes that by default we need for the course
      
      content::type::attribute::new -content_type "dotlrn_catalog" \
                                    -attribute_name "course_key" \
                                    -datatype "string" \
                                    -pretty_name "Course Key" \
                                    -pretty_plural "Course Key" \
                                    -sort_order 1 \ 
                                    -column_spec "varchar(50)"
      content::type::attribute::new -content_type "dotlrn_catalog" \
                                    -attribute_name "course_name" \
                                    -datatype "string" \
                                    -pretty_name "Course Name" \
                                    -sort_order 2 \
                                    -column_spec "varchar(200)"
      content::type::attribute::new -content_type "dotlrn_catalog" \
                                    -attribute_name "course_info" \
                                    -datatype "text" \
                                    -pretty_name "Course Information" \
                                    -sort_order 3 \
                                    -column_spec "text"
      content::type::attribute::new -content_type "dotlrn_catalog" \
                                    -attribute_name "assessment_id" \
                                    -datatype "integer" \
                                    -pretty_name "Assessment ID" \
                                    -sort_order 4 \
                                    -column_spec "integer"