Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    Courses

    Overview

    The Courses product integration allows students to view their courses per term.

    Vendors

    The Courses product integration is currently supported by the Ellucian Banner (XE) and RESTful API.

    User Experience

    The following section describes information relating to the user experience for the Courses product integration.

    User Activities

    • Students select the Courses tile to display a list of terms.
    • Student select a term to display the courses associated with that term.

    Authentication

    The Courses product integration requires the student's identifier from the vendor's system. This is obtained with token based authentication attributes.

    The connection to the vendor is handled as part of the generic API Configuration under the Vendor section. The first part of the API Configuration details the URL to which to connect and any parameters that are required. The second part relates to the API Authentication for the URL, which is vendor-specific, and could also be specific to the vendor instance the client is running.

    Offline Support

    None. Students must be online to retrieve their course data.

    Screenshots

    The following is an overview of the Courses product integration user interface for a reference when configuring it:

    select_a_term.png

    spring_2020.png

    Technical Overview

    The following section describes technical information for the Courses product integration.

    Prerequisites

    The following prerequisites are required to configure the Courses product integration:

    • User identifier mapping
      • If you have CMAuth configured, map the relevant vendor ID in the integration profile (Additional Mapping), for example: bannerId=employeeID, where employeeID is the relevant user attribute on the vendor’s backend system.
      • If you have LDAP configured, verify that the relevant attribute is returned as an attribute from the LDAP response.
    • The campusM native app (Android/iOS) must be updated with the June 2020 release or later.

    Required Format

    Select one of the following links for the required format for that vendor:

    Ellucian Banner 9 (Also Referred to as XE) Vendor

    • campusM uses two API calls to fetch courses data:
      • The first call is to retrieve all of the available terms of the student:

        https:// {HOST}/StudentApi/api/terms

      • The second call is to retrieve the courses data for the selected term:

        • https://{HOST}/StudentApi/api/students/{userId}/class-schedules?term={termId}

    • Banner 9 is the latest release of Banner.
    • XE is an add-on to Banner that allows customers to extend it.
    • For all integrations done prior to this PI, Banner 9 and XE have been interchangeable.
    • The following is an example of a JSON response for the terms API:

      [

          {

              "version": 0,

              "id": 1,

              "acyr_code": {

                  "version": 0,

                  "id": 16,

                  "code": "2010",

                  "description": "2019-2020"

              },

              "code": "202040",

              "description": "Summer 2020",

              "endDate": "2020-07-23",

              "financialAidPeriod": 1,

              "financialAidProcessingYear": "9293",

              "financialAidTerm": "1",

              "financialEndPeriod": 12,

              "housingEndDate": "2020-07-23",

              "housingStartDate": "2020-06-03",

              "startDate": "2020-06-03",

              "trmt_code": {

                  "version": 0,

                  "id": 2,

                  "code": "M",

                  "description": "Summer Semester"

              }

          }

      ]

    • The following is an example of Courses JSON response:

      [

          {

              "studentCourseRegistrations": [

                  {

                      "academicYear": "2019",

                      "academicYearDescription": "2018-2019",

                      "completionDate": "2019-05-03",

                      "courseNumber": "434",

                      "courseReferenceNumber": "10040",

                      "courseRegistrationStatus": {

                          "code": "RW",

                          "description": "**Web Registered**"

                      },

                      "courseTitle": "Principles of Physiology",

                      "creditHour": 3.0,

                      "faculty": [

                          {

                              "bannerId": "A00120999",

                              "displayName": "Vanterpool, Conwin",

                              "primaryIndicator": true

                          }

                      ],

                      "gradingMode": "S",

                      "gradingModeDescription": "Standard Letter Grade",

                      "instructionalMethod": "TR",

                      "instructionalMethodDescription": "Traditional",

                      "level": {

                          "ceuInd": false

                      },

                      "meetingTimes": [

                          {

                              "beginTime": "1300",

                              "building": "CH",

                              "buildingDescription": "Carter Hall",

                              "campus": "M",

                              "campusDescription": "Main AAMU Campus",

                              "creditHourSession": 3.0,

                              "endDate": "2019-05-03",

                              "endTime": "1350",

                              "friday": true,

                              "hoursWeek": 2.5,

                              "meetingScheduleType": "L",

                              "meetingType": "CLAS",

                              "meetingTypeDescription": "Class",

                              "monday": true,

                              "room": "216-AUD",

                              "saturday": false,

                              "startDate": "2019-01-07",

                              "sunday": false,

                              "thursday": false,

                              "tuesday": false,

                              "wednesday": true

                          }

                      ],

                      "partOfTerm": "1",

                      "partOfTermDescription": "Full Term",

                      "scheduleDescription": "Lecture",

                      "scheduleType": "L",

                      "sequenceNumber": "01",

                      "startDate": "2019-01-07",

                      "subject": "BIO",

                      "subjectDescription": "Biology",

                      "term": "201910",

                      "termDescription": "Spring 2019"

                  }

              ],

              "totalBill": 8.0,

              "totalCeu": 0.0,

              "totalCredit": 5.0

          }

      ]   

    RESTful API

    • campusM uses two API calls to fetch the courses data:
      • The first call is to retrieve all of the available terms for the student:

        https://{HOST}/getTerms?userId={userId}

      • The second call is to retrieve the courses data for the selected term:

        https://{HOST}/getCourses?termId={termId}&userId={userId}

    • The terms API returns a JSON response with the following structure:

      [

        {

          "termId": 1,

          "description": "Fall 2020",

          "termCode": "202010"

        },

        {

          "termId": 2,

          "description": "Spring 2020",

          "termCode": "202020"

        }

      ]

    • The courses per term API returns a JSON response with the following structure:

      [

         {

                "termCode": "2006",

            "courseNumber":"120",

            "subject":"ENG",

            "courseTitle":"Drama",

            "courseRegistrationStatusDescription":"Registered In-Office",

            "creditHour":"3.0",

            "scheduleDescription":"Lecture",

            "courseReferenceNumber":"11238",

            "meetingTimes":[

               {

                  "beginTime":"1600",

                  "endTime":"1850",

                  "location":"TGP 008",

                  "days":[

                                "Sunday",

                     "Tuesday"

                  ]

               },

                      {

                  "beginTime":"1300",

                  "endTime":"1450",

                  "location":"TAP 008",

                  "days":[

                                "Monday",

                     "Tuesday"

                  ]

               }

            ],

            "lecturer":[

               {

                  "name":"Adams, Clark",

                  "emailAddress":"Clark.Adams@university.edu"

               },

               {

                  "name":"Lopez, Smith",

                  "emailAddress":"Smith.Lopez@university.edu"

               }

            ]

         },

         {

            "termCode": "2006",

            "courseNumber":"322",

            "subject":"FCS",

            "courseTitle":"Trends and Issues",

            "courseRegistrationStatusDescription":"Web Registered",

            "creditHour":"3.5",

            "scheduleDescription":"Lecture",

            "courseReferenceNumber":"11653",

            "meetingTimes":[

               {

                  "beginTime":"1730",

                  "endTime":"2030",

                  "location":"CS 250",

                  "days":[

                     "Wednesday"

                  ]

               }

            ],

            "lecturer":[

               {

                  "name":"Lopez, Smith",

                  "emailAddress":"Smith.Lopez@university.edu"

               }

            ]

         }

      ]

    Technical Flow Diagram

    Both Banner and RESTful API currently require Basic Authentication API Authentication for all implementations that are currently available. "No Auth" can sometimes be used in testing.

    Configuration

    The following table describes the configuration options available for the Courses product integration.
    Note that while the majority of these fields are not mandatory, they are displayed with their default values unless otherwise stated.
    Configuration Option Description Mandatory Data Type Default Example
    Enable Product Integration Select to enable the product integration on the user's campusM app. No      
    Product Integration Description A description of the product integration for internal use Yes      
    Screen Title Appears in the top header (of the integration, in the app). No String Courses  
    Primary Theme Color Used for the Screen Title header and other header elements. No Hex code #444444  
    Secondary Theme Color Used for the Grade block headers. No Hex code #6f8ea4  
    Display Registration Status Enables or disables the registration status on the course detail page No Checkbox Yes  
    Display Credit Hours Enables or disables the credit hours on the course detail page No Checkbox Yes  
    Display Type Enables or disables the type on the course detail page No Checkbox Yes  
    Display Meeting Times Enables or disables the meeting times on the course detail page   No Checkbox Yes  
    Display Course Reference Number Enables or disables the course reference number on the course detail page   No Checkbox Yes  
    Display Instructor Enables or disables the instructor on the course detail page No Checkbox Yes  
    Past Terms (in days) Display past terms for the last number of days Relevant only for Banner No String 0  
    Next Terms (in days) Display future terms for the next number of days Relevant only for Banner No String 0  
    Input Date Format The format of the dates coming back from the API No Date format hmm  
    Display Date Format The format to display time throughout the integration No Time format

    hh:mm 
    hh:mm a
     

     
    Terms Page Header Used for the Terms page header. No String Select a term  
    Registration Status Label Used for the Registration Status block header No String Registration Status  
    Type Label Used for the Type block header No String Type   
    Meeting Times Label Used for the Meeting Times block header No String Meeting Times  
    Credit Hours Label Used for the Credit Hours block header No String Credit Hours  
    Course Reference Number Label Used for the Course Reference Number block header No String Course Reference Number  
    Instructor Label Used for the Instructor block header No String Instructor   
    Unknown Terms Text Displayed any time a term is to be displayed, but there is no valid description for that term. No String Unknown Term  
    No data Message This message will appear when there is no data No String No Courses found  
    Terms Service Failure Message This message will appear when the integration is unable to reach or process the terms API correctly.   No String The page is having trouble fetching academic terms - please try again shortly.  
    No Terms Message This message will appear when there are no terms No String    
    Service Failure Message This message will appear when the integration is unable to reach or process the service call correctly. No String The page is having trouble fetching your courses - please try again shortly.  
    Vendor Name Defines to which vendor the integration connects Yes Object n/a BannerXE
    API Configuration
    This section contains the API details  to define the API structure. You can test the API configuration. See Testing API Product Integration Configuration.
    Base URL to retrieve the information The URL for the API Yes URL  
    https://{HOST}
    Parameter Input Option The parameter input option for User ID (for Banner – Banner ID, for RESTful API – any user identifier used in the other system). Possible values: Username, Token Property, and Constant. It is sent as the path parameter. Yes Drop-Down list   Token Property
    Authentication Type Select one of the following options:
    • No Auth
    • Basic Auth
    • API Key
    • Bearer token
    • OAuth
    Yes Drop-down list    
    Import/ Export Configuration
    You can configure product integration and then export it to another campusM environment, for example, from sandbox to production or from preview to production.  
    Export Create a JSON file with all product integration configuration. No      
    Import Use this option in order to load configuration from JSON of an exported product integration. No      
    • Was this article helpful?