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
- Add desired tag from github code repository
- edx-platform/requirements/github.txt
- "Our libraries" section
- Add 'milestones' to the list of installed apps:
- common.py
- Feature flag convention is preferred
- In edx-platform devstack:
- pip install -r requirements
- paver test_system -s lms
Contributions are very welcome, but please note that edx-milestones is currently an early stage work-in-progress and is changing frequently at this time.
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.
Please do not report security issues in public. Please email [email protected].
You can discuss this code on the edx-code Google Group or in the
edx-code
IRC channel on Freenode.