Moodle CIMS: Installing and Using the Bulk Course Upload Tool

7 min read


Moodle as a Curriculum and Information Management System

Moodle as a Curriculum and Information Management System

Use Moodle to manage and organize your administrative duties; monitor attendance records, manage student enrolment, record exam results, and much more

  • Transform your Moodle site into a system that will allow you to manage information such as monitoring attendance records, managing the number of students enrolled for a particular course, and inter-department communication
  • Create courses for all subjects in no time with the Bulk Course Creation tool
  • Create accounts for hundreds of users swiftly and enroll them in courses at the same time using a CSV file.
  • Part of Packt’s Beginner’s Guide series: Readers are walked through each task as they read through the book with the end result being a sample CIMS Moodle site
        Read more about this book      

(For more resources on Moodle, see here.)

Using the Bulk Course Upload tool

Rather than creating course categories and then courses one at a time and assigning teachers to each course after the course is created, we can streamline the process through the use of the Bulk Course Upload tool. This tool allows you to organize all the information required to create your courses in a CSV (Comma Separated Values) file that is then uploaded into the creation tool and used to create all of your courses at once.

Due to its design, the Bulk Course Upload tool only works with MySQL databases. Our MAMP package uses a MySQL database as do the LAMP packages. If your Moodle site is running on a database of a different variety you will not be able to use this tool.

Time for action – installing the Bulk Course Upload tool

Now that we have our teacher’s accounts created, we are ready to use the Bulk Course Creation tool to create all of our courses. First we need to install the tool as an add-on admin report into our Moodle site. To install this tool, do the following:

  1. Go to the Modules and plugins area of
  2. Search for Bulk Course Upload tool.
  3. Click on Download latest version to download the tool to your computer.
  4. If this does not download the package to your hard drive and instead takes you to a forum in the Using Moodle course on, download the package that was posted in that forum on Sunday, 11 May 2008.
  5. Expand the package, contained within, and find the uploadcourse.php file.
  6. Place the uploadcourse.php file in your admin directory located inside your main Moodle directory.
  7. When logged in as admin, enter the following address in your browser address bar: http://localhost:8888/moodle19/admin/uploadcourse.php. (If you are not using a MAMP package, the first part of the address will of course be different.)
  8. You will then see the Upload Course tool explanation screen that looks like the following screenshot:

  9. The screen, shown in the previous screenshot, lists the thirty-nine different fields that can be included in a CSV file when creating courses in bulk via this tool. Most of the fields here control settings that are modified in individual courses by clicking on the Settings link found in the Administration block of each course. The following is an explanation of the fields with notes about which ones are especially useful when setting up Moodle as a CIMS:
    • category: You will definitely want to specify categories in order to organize your courses. The best way to organize courses and categories here is such that the organization coincides with the organization of your curriculum as displayed in school documentation and student handbooks. If you already have categories in your Moodle site, make sure that you spell the categories exactly as they appear on your site, including capitalization. A mistake will result in the creation of a new category. This field should start with a forward slash followed by the category name with each subcategory also being followed by a forward slash (for example, /Listening/Advanced).
    • cost: If students must pay to enroll in your courses, via the PayPal plugin, you may enter the cost here. You must have the PayPal plugin activated on your site, which can be done by accessing it via the Site Administration block by clicking on Courses and then Enrolments. Additionally, as this book goes to print, the ability to enter a field in the file used by the Bulk Course tool that allows you to set the enrolment plugin, is not yet available. Therefore, if you enter a cost value for a course, it will not be shown until the enrolment plugin for the course is changed manually by navigating to the course and editing the course through the Settings link found in the course Administration block. Check frequently for updates to the Bulk Course Upload tool as the feature should be added soon.
    • enrolperiod: This controls the amount of time a student is enrolled in a course. The value must be entered in seconds so, for example, if you had a course that ran for one month and students were to be unenrolled after that period, you would set this value to 2,592,000 (60 seconds X 60 minutes per hour X 24 hours per day X 30 = 2,592,000).
    • enrollable: This simply controls whether the course is enrollable or not. Entering a 0 will render the course unenrollable and a 1 will set the course to allow enrollments.
    • enrolstartdate and enrolenddate: If you wish to set an enrollment period, you should enter the dates (start and end dates) in these two fields. The dates can be entered in the month/day/year format (for example, 8/1/10).
    • expirynotify: Enter a 1 here to have e-mails sent to the teacher when a student is going to be unenrolled from a course. Enter a 0 to prevent e-mails from being sent when a student is going to be unenrolled. This setting is only functional when the enrolperiod value is set.
    • expirythreshold: Enter the number of days in advance you want e-mails notifying of student unenrollment sent. The explanation file included calls for a value between 10 and 30 days but this value can actually be set to between 1 and 30 days. This setting is only functional when the enrolperiod value and expirynotify and/or notifystudents (see below) is/are set.
    • format: This field controls the format of the course. As of Moodle 1.9.8+ there are six format options included in the standard package. The options are lams, scorm, social, topics, weeks, and weeks CSS, and any of these values can be entered in this field.
    • fullname: This is the full name of the course you are creating (for example, History 101).
    • groupmode: Set this to 0 for no groups, 1 for separate groups, and 2 for visible groups.
    • groupmodeforce: Set this to 1 to force group mode at the course level and 0 to allow group mode to be set in each individual activity.
    • guest: Use a 0 to prevent guests from accessing this course, a 1 to allow uests in the course, and a 2 to allow only guests who have the key into the course.
    • idnumber: You can enter a course ID number using this field. This number is only used for administrative purposes and is not visible to students. This is a very useful field for institutions that use identification numbers for courses and can provide a link for connecting the courses within Moodle to other systems. If your institution uses any such numbering system it is recommended that you enter the appropriate numbers here.
    • lang: This is the language setting for the course. Leaving this field blank will result in the Do not force language setting, which can be seen from the Settings menu accessed from within each individual course. Doing so will allow users to toggle between languages that have been installed in the site. To specify a language, and thus force the display of the course using this language, enter the language as it is displayed within the Moodle lang directory (for example, English = en_utf8).
    • maxbytes: This field allows you to set the maximum size of individual files that are uploaded to the course. Leaving this blank will result in the course being created with the site wide maximum file upload size setting. Values must be entered in bytes (for example, 1 MB = 1,048,576 bytes). Refer to an online conversion site such as to help you determine the value you want to enter here.
    • metacourse: If the course you are creating is a meta course, enter a 1, otherwise enter a 0 or leave the field blank.


Please enter your comment!
Please enter your name here