The next generation course building CI tool for A+
Keep updating...
- Get access to Shepherd from A+ using Oauth. ( Get
signalfromflask-lti-loginand authenticate user). - model: User
- Group users, grant user different privileges and permissions according to the group.
- Tree-like structure. Example: Aalto → CSI → CS → Programming_1.
- model:
- Group: many-to-many relationship with User.
- GroupPermission: the permission types of Group. Currently two types:
(create) subgroups,(create) courses. - CreateGroupPerm: the permission of groups for creating (sub)groups.
field
groupis the group with the(create) subgroupspermission; fieldtarget_groupis the group whichgroupcan create subgroups under. - CreateCoursePerm: the permission of groups for creating courses. the field
patterndefines the prefix that the course key should follow. - ManageCoursePerm: the permission for managing courses. The owner roles of a course include
adminandassistant.
- Course management interface
- To create new courses, the user needs to be in a group with the
(create) coursespermission. - model: CourseInstance
- Record the build processes of courses
- model: Build, BuildLog
- SSH key management
- model: GitRepository
Handle push webhook in GitHub or Gitlab.
-
Define Build tasks, define automated pipeline (pull/clone->build->deploy->clean).
-
- Define background task for deploy key pair generation.
- Define the scheduled task for key validation.
Message broker for updating frontend statues display in realtime, and also routing realtime log output to frontend.