******************************* Configure Multi Course Programs ******************************* When offering Open edX courses, you may need at some point to link multiple courses into a course-single learner experience where learners: 1. Get enrolled into more than one course from a single operation. 2. Receive a certificate showing successful completion of several courses. The open edX platform offers some possibilities for the first part of the challenge based on a component called the **course discovery service**, but this solution relies heavily on the integration of a separate marketing site and may not always be available. eduNEXT has developed a powerful alternative that covers both parts: Enrollment in a program and the generation of a program certificate. The functionality is built on a model course acting as the program course; this course represents the collection of courses offered in the program. The model course will contain a configuration that links the courses in the program to the model course. The configuration solves the 2 challenges in the following way: 1. Learners can enroll in this model course as they would with any other course, and this enrollment automatically triggers the enrollment in the child courses. 2. The final grade and the certificate of the course model are granted based on the final grades of the courses part of the program. Site Configuration ################### The LMS site requires the activation of this functionality. Reach out to the eduNEXT support team to request this activation. Configuration Steps #################### Create the Course Program ************************* To configure the model course (program), follow these steps: 1. Create the model course in Studio platform. 2. Create one subsection for each of the courses you will offer in the program. You can name the subsection with the name of the course. .. image:: ../_assets/course_sections_program.png :width: 500px :align: center :alt: course sections in the course model. 3. In each of those subsections, create a course unit. In that course unit, add a staff graded points component. .. image:: ../_assets/staff_graded_points_component.png :width: 500px :align: center :alt: Staff graded points component. 4. After creating the units, go to the live version on the LMS site and save the problem ID. .. image:: ../_assets/staff_debug_info_id.png :width: 500px :align: center :alt: Staff debug info option. .. image:: ../_assets/staff_graded_points_component_id.png :width: 500px :align: center :alt: Staff graded points component ID. 5. To allow the users' enrollments in the program to trigger the enrollments in the other courses, add the following JSON string to the field Other Course Settings on the advanced settings page of the model course. (program). .. code-block:: json { "EDNX_TRIGGER_FOLLOWUP_ENROLLMENTS": [ { "course_id": "course-v1:Demo+Test+2020", "mode": "honor" }, { "course_id": "course-v1:Demo+Test2+2021", "mode": "honor" } ] } - In the example below, There are 10 courses that belong to the program. .. image:: ../_assets/other_course_settings_model_course.png :width: 500px :align: center :alt: Other course settings field in the model course. Where: - **course_id**: represents de course ID of the courses belonging to the program. - **mode**: used to create the enrollment in the courses. This setting will trigger enrollments in the other courses after its own enrollment has been completed. It can be used for other purposes besides course programs. .. seealso:: For more information about course modes, visit |certs_manage_Documentation|. .. |certs_manage_Documentation| raw:: html this article Create or Configure the Courses That Will Belong to the Program *************************************************************** The model course will receive the final grades of the courses belonging to the program through the configuration of the staff graded points components mentioned above. (The problem IDs that were saved in the previous step) To link a course to the program(course model) follow these steps: Go to the course in Studio-settings-advanced settings. In the field of other course settings, add .. code-block:: json { "EDNX_TRIGGER_GRADES_ASSIGNMENT": { "block_id": "123456abcd", "program_id": "course-v1:Demo+DUMMY+2014_T1", "exact_score": true } } .. image:: ../_assets/other_course_settings_course_belonging_program.png :width: 500px :align: center :alt: Other course settings field in the course that will belong to the program. This setting allows the following: Imagine program A has three courses X, Y, and Z. Then, this course has three subsections representing each of the courses in the program X, Y, and Z. In each subsection, there is a unit with staff graded points components whose IDs are linked to the model course(program). - **block_id**: if the current course is X, then this is the problem ID of the staff graded points component in subsection x. - **program_id**: ID of the course A, model course (program). - **exact_score**: when true, User U obtains 90% of the grade in course X, then 0.9 is assigned to the staff graded points component in the subsection X in the model course. Otherwise, User U obtains 90% of the grade in course X, then 1 is assigned to the staff graded points component in subsection X in the model course; this means that the platform is just marking the course X as complete without taking the exact grade. .. note:: All the courses including the model course and the courses belonging to the program must have the certificates configuration and thus the grading policy configuration. .. seealso:: To know more about the certificates configuration, you can visit the following |certs_Documentation2|. .. |certs_Documentation2| raw:: html Article .. seealso:: For more information about the grading policy configuration, visit |certs_Documentation|. .. |certs_Documentation| raw:: html this article How to Test It ############## Using an Instructor (Course Admin) Account/ Student Account *********************************************************** After creating the course model(program) and courses that will belong to the program, and finishing the steps above, you can test the feature as described below. 1. For this example, let's create two courses besides the course model (program). This step does not apply to the student role. 2. Go to the course model description page (program) and select **enroll**. 3. Go to the dashboard, the user must have been enrolled in the courses belonging to the program. 4. Complete course 1. 5. Generate certificate in course 1. 6. Let's assume that each block in the course program represents half of the entire course score. Then, go to the progress page in the course program. Half of the total score must be filled. 7. Complete course 2. 8. Generate certificate in course 2. 9. Go to the progress page in the course model (program), you must have 100% of the score. Final Notes *********** 1. Grades will be assigned to the Course Program when the certificate is generated, so double-check that the certificate configurations are correct. 2. If the enrollments are not created after the main enrollment, check the configuration and whether the courses were created successfully. The same goes for the certificate configuration.