Code Monkey home page Code Monkey logo

course_shifts's Introduction

Description

This is django app based on OpenEdx Ficus release "open-release/ficus.2" that provides the way for student to move forward all due dates for given course according to the rules defined by the course staff. Similar feature at the Coursera is called "Session Switch": when activated, course has several sessions with the same content but different deadlines and student can switch them at will. This feature can be useful when student have missed some deadlines but still wants to finish the course and to get credit.

There are several differences between this app and course rerun/CCX:

  1. The content of the course is exactly the same in all course shifts. Therefore it should be easier for staff to upgrade such course if necessary for all students at the same time. It also doesn't spend additional system resources.
  2. Forum is shared between all course shifts. This can be useful when there are not so much students in each shift.
  3. Students are able to change due dates if they need to, and therefore course schedule becomes more flexible.

Details

Let C be 'Start Date' value for some Course, S be 'start date' value for CourseShift in Course, and D be 'due date' value for Problem in Course, where D is later than C. Then for every Course student enrolled on CourseShift Problem due date would be shifted at (S - C) value, therefore new 'due date' would be D + (S - C).

Feature is implemented via additional FieldOverrideProvider and CourseUserGroups, similar to the way it's done for 'INDIVIDUAL_DUE_DATES' feature. Every course student is associated with some CourseUserGroup, and provider checks for membership and shifts due dates in a way described above.

Currently feature doesn't affect Special Exams. Currently student can choose shift only at the enrollment, he can't change it later, but staff can do it via instructor dashboard.

Installation

  1. 'course_shifts' should be added to the INSTALLED_APPS variable, feature should be enabled:
INSTALLED_APPS += ('course_shifts',)
FEATURES["ENABLE_COURSE_SHIFTS"] = True
  1. course_shifts.provider.CourseShiftOverrideProvider should be added to the FIELD_OVERRIDE_PROVIDERS
FIELD_OVERRIDE_PROVIDERS += (
    'course_shifts.provider.CourseShiftOverrideProvider',
)

Note that if feature INDIVIDUAL_DUE_DATES is also used, then IndividualStudentOverrideProvider must be added before CourseShiftOverrideProvider.

  1. Run course_shifts migrations
python manage.py lms migrate course_shifts --settings=YOUR_SETTINGS

4. Pull this branch from github. Branch is based on edx release 'open-release/ficus.2' (Watch branch diff ). It contains all necessary changes in edx-platform: it adds new cohort type, new tab for instructor dasboard in LMS, field in Studio Advanced Settings to enable shifts for course.

course_shifts's People

Contributors

martynovp avatar zimka avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.