User management and learning outcome profile service

Description: This service defines methods for creating users and groups, getting information about them, adding users to groups with a certain role, adding achievements or assessment records to profiles, and retrieving profiles.

Business objects: user, group, achievement, assessment record, profile

Notes: The API does not define specific properties of a user, beyond name, email and learning outcome profile. Implementations can and should make additional information available that is needed for making the service useful for learning communities in a specific application context.

listUsers

Description: lists all users registered at the OICS - might be restricted to system administrators for privacy protection.

Input parameters: Void.

Output: list of users with names and pointers to detailed information.

createUser

Description: creates a new OICS user. OICS users can publish annotations to OICS objects and store learning outcome profiles.

Input parameters: email; first names; last name; password.

Output: userId.

getUser

Description: returns all information about the user that is available for the authenticated user

Input parameters: user identifier.

Output: list of property/value pairs; values can be pointers to a representation of the property (for example profile).

modifyUser

Description: modifies a property of the user.

Input parameters: property name; value.

Output: Void.

Notes: The following properties should be supported: email, first_names, last_name, email_privacy_level (if set to 1, user's email is shown to other users).

createGroup

Description: creates a group representing a learning context (e.g. a class instance) with users assigned roles (teacher and learner).

Input parameters: group name.

Output: groupId.

addUserToGroup

Description: add a user to a group with a given role (teacher or learner).

Input parameters: user identifier; group identifier; role.

Output: Void.

getGroup

Description: lists all members of a group with their respective role.

Input parameters: group identifier.

Output: List of tuples (userId,role).

addAchievement

Description: adds an achievement to a user's learning outcome profile (the achievement is linked to a learning outcome, assessment record and context). Through the type parameter, this method can be used to add attained learning outcomes, taught learning outcomes and learning needs.

Input parameters: user identifier; identifier (optional); title (optional); description (recommended); related learning outcome (recommended); context (recommended); assessment record (recommended); type: attainment (default), teaching, learningNeed (optional).

Output: identifier.

Note: If no identifier is submitted it will be generated. The title and description of an achievement may be similar to title and description of the attained learning outcome of the achievement.

addAssessmentRecord

Description: adds an assessment record that is an evidence of an achievement (the assessment record is linked to an achievement).

Input parameters: user identifier; identifier (optional); type (mandatory); title (mandatory); score (optional); date (mandatory); assessing body (mandatory); description (recommended); attached reference (optional); level of Assessment Result (scheme, value) (optional).

Output: identifier.

Note: If no identifier is submitted it will be generated.

getLearningOutcomeProfile

Description: retrieves the learning outcome profile for a user.

Input parameters: user identifier.

Output: list of achievements.