edx-milestones (milestones
) is a Django application which manages significant Course and/or Student events in the Open edX platform.
-
A Milestone represents an event which can occur for a student while interacting with the Open edX platform.
-
Relationships can be created between courses or individual sections of course content (referred to collectively as course entities going forward) and a Milestone. A relationship can indicate that a course entity either requires or fulfills a given Milestone.
-
Student milestone fulfillment status can be recorded and queried.
-
An example feature which Milestones supports is Pre-requisite Courses:
- Course author selects Course 101 in Studio as a pre-requisite of Course 102
- Studio:
- Makes call to Milestones service API
- Milestones:
- Creates a new generic Milestone A for Course 101
- Indicates that Course 101 fulfills Milestone A
- Indicates that Course 102 requires Milestone A
- Studio:
- Student Smith completes Course 101
- LMS:
- Makes call to Milestones service API
- Milestones:
- Pulls the list of milestones fulfilled by Course 101 (set includes Milestone A)
- Indicates that Student Smith has accomplished Milestone A
- LMS:
- Student Smith attempts to access Course 102
- LMS:
- Uses Milestones service API to compare Course 102 milestone requirements against Student Smith's milestones
- Grants Student Smith access to Course 102
- LMS:
- Course author selects Course 101 in Studio as a pre-requisite of Course 102
$ make quality
$ make test
- This package is included in the base requirements of edx-platform
milestones
is included in the list of installed apps for edx-platform:- These documents outline the feature flags required to enable the features that use edx-milestones.
Contributions are very welcome please see our CONTRIBUTING file for more information -- it also contains guidelines for how to maintain high code quality, which will make your contribution more likely to be accepted.
If you're having trouble, we have discussion forums at https://discuss.openedx.org where you can connect with others in the community.
Our real-time conversations are on Slack. You can request a Slack invitation, then join our community Slack team.
For more information about these options, see the Getting Help page.
Please do not report security issues in public. Please email [email protected].