Building the Moodle CIMS Foundation: Creating Categories and Courses


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.)

Course categories

Categorization is an innate human behavior that allows us to perceive and understand the environment that surrounds us. Moodle designers must have recognized our tendency to categorize, because Moodle contains a flexible categorization system that allows for the creation of categories in which you may house additional categories and courses. Any educational program that offers courses of various varieties will invariably be using a categorization system like this for grouping courses into specific categories. A language program, for example, might group courses into skill-specific categories such as those of listening, speaking, reading, and writing. A larger entity, such as a college, would likely group courses into content-specific categories such as literature, sciences, speech communications, and the like, with additional subcategories used inside each of those main categories. No matter what the categorization system, Moodle is well-equipped to accommodate via its intuitive user-friendly course category creation interface.

Manual creation of course categories

We will quickly walk through the manual creation of a simple categorization system in the next few pages. It should be noted however, that course categories can be created automatically via the use of the Bulk Course Upload tool that will be introduced later in the next article. While the automated creation process is certainly a more efficient one, it is a good idea to understand how to create, edit, and adjust categories manually as the need to make adjustments may arise after categories have been created automatically, and at that point, the only practical method may be via the manual process.

Using the language program sample as an example, we will set up a categorization system that uses the traditional language skills (listening, speaking, reading, and writing) as the highest level in the categorization system with subcategories for levels. In our example, our program will have four levels: Advanced, Intermediate, Beginner, and Basic, so we will set up each skill category such that it contains subcategories that coincide with the four levels.

Time for action – manually creating course categories

Let's get started by first taking a look at the courses and categories that exist in the default installation of our MAMP package. We'll proceed by manually creating the categories and subcategories we need for our language program example.

  1. Log in to your Moodle site as admin, or as a user with administrative permissions, and click on the All courses link found at the bottom of the Course categories block from your front page.

    An alternative method for accessing the Course category window is to simply type the word 'course' into your browser at the end of your website address from the front page of your Moodle site. This will direct your browser to the default file, index.php, located in the course directory (for example, for the XAMPP package, it will look like this http://localhost/moodle19/course).

  2. The following screenshot is of a default MAMP installation. For Windows XAMPP installations, no courses or categories will exist.

  3. You will see the two default courses that are created in the MAMP package and no category. As shown in the following screenshot, the full name of the course will appear on the left side of the screen with a small icon of a person, below it. The icon, shown with an arrow pointing to it in the following screenshot, signifies that the course is set to allow guest users to access it. On the right side of the screen is the course summary.

  4. Click on the Turn editing on button from the All courses screen, shown in the previous screenshot, to reveal the course category as shown in the next screenshot. This editing screen displays the categories and the number of courses contained in each category. The category was not listed in the course view window in the previous screenshot because there is currently only one category.

  5. With editing on, now click on the Add new category button and, on the subsequent screen, type in the desired category title. For this example, we are going to enter the four skills mentioned previously. Also, as we want these to be our four main categories, we will set the Parent category to Top. Enter a category description and click on the Create category button to finish the process. The following screenshot shows our setup prior to creating the category:

  6. After clicking on the Create category button, the screen that you will see next will be an editing screen that will allow you to edit from within the Listening category you just created. As a result, you will not see the Add new category button. Instead, you will see an Add a sub-category button. Click on this button to access the screen that allows you to create a new category. After doing so, you will simply need to change the Parent category to Top. Repeat this process until you have created all of your top-level categories. After you have created all categories, turn the editing feature off and click on the Course categories breadcrumb link, found at the top-left of the screen, to see the result. It will look like the following screenshot:

    If you wish to change the order in which the categories appear, you can turn editing back on and use the up and down arrows to move categories.

  7. In the following screenshot, which is the same screen as the previous one, with editing turned on, we have moved the Miscellaneous category to the bottom and rearranged the main categories into a different order.

  8. Next, we will create the four level categories using the same process explained for the main categories. The only difference is that we will create each of the four levels inside the main categories by designating the main category as the Parent category. From the editing screen shown in the previous screenshot, click on one of the categories and then on the subsequent Add a sub-category button, as shown in the following screenshot. Creating the category in this fashion will result in the parent category being automatically set to the main category to which you are adding the sub-category.

  9. In the same fashion as earlier when we created multiple categories in succession however, after adding the first sub-category, if you click on Add a sub-category again, you will need to then adjust the Parent category. If you do not do so, you will be effectively burying sub-categories within sub-categories. The alternative is to click on the Course categories pull-down menu prior to clicking on Add a sub-category. Create all four levels, Advanced, Intermediate, Beginner, and Basic, using this process, for each of the four skills (Listening, Reading, Speaking, and Writing).
  10. When you have finished adding all of the subcategories to the main categories and have returned to the main Course Categories window, your screen should look like the following screenshot:

What just happened?

You have just created a simple categorization system with four main skills (Listening, Speaking, Reading, and Writing). Next you created four subcategories—levels, inside each of the main categories (Advanced, Intermediate, Beginner, and Basic).

As you followed the example used here or maybe created an even more intricate categorization scheme, you may have felt that the process was a bit time consuming and required quite a few mouse clicks. As mentioned in the beginning of this explanation, creating categories via the Bulk Course Upload tool is much more efficient and recommended when possible. There will be times however, when you need to create new categories after courses have already been made or to edit or rearrange categories. On these occasions, you may find it necessary to use the manual procedure so it is a good idea to be familiar with the process.

        Read more about this book      

(For more resources on Moodle, see here.)

Teacher account creation

We could, at this point, jump to an explanation of the Bulk Course Upload tool. Unfortunately however, the Bulk Course Upload tool will not automatically create user accounts for us. Therefore, if we want to make the most of the tool, we will need to first create the accounts that we will label as teachers in the file used by the Bulk Course Upload tool.

Time for action – creating teacher accounts

We will create twenty users that are each going to be assigned to teach four courses. If you are only creating one user on your site, you may decide to create the account manually by clicking on the Add a new user link found via the following path: Site Administration | Users | Accounts | Add a new user. When adding multiple users however, it is a much more efficient process to use the Upload users feature found in the same list under Accounts where the Add a new user feature is located. To create the new teacher accounts, follow these steps:

  1. Click on the Upload users link as previously described. The following screenshot shows the path visually:

  2. After clicking on Upload users you will be presented with a screen that allows you to browse your computer and select the file that contains the information necessary to create the accounts. The file must be formatted as a CSV (Comma Separated Values) file and can be created in any text editor or in a Microsoft Excel or Open Document spreadsheet file and then saved as a CSV document. We will use Excel or an Open Document spreadsheet because there are often fields that are repeated and dragging a cell in a spreadsheet application allows for quick replication of values that are the same.

    When using special characters and/or foreign language fonts, Open Document format, created using the Open Source productivity package Open Office, provides more accurate and reliable options for using UTF8, a character encoding method that allows for the use of virtually all languages and special characters.

  3. Click on the question mark icon located to the right of the Upload users title to access detailed information about formatting of the file used to create users. The icon can be seen circled in the following screenshot of the Upload users screen.

  4. Following is a screenshot of the file used to create our twenty accounts that will be designated as teachers. This file is accessible from the Packt website at

    There are a couple of things that should be noted in this screenshot:

    • Although it does not appear in the help file accessed by clicking on the question mark found next to the Upload users page title, the use of the emailstop field name allows you to set the user's Email activated setting, that appears in a user's profile, to This email address is disabled. We are using it because the domain we have specified for these dummy accounts is not a domain name that actually exists. This will prevent the system from attempting to send e-mails to these addresses. This is important if you will be creating users without knowing their e-mail addresses because Moodle requires that users have an e-mail address entered when accounts are created.
    • Notice the way last names for users sixteen to nineteen have been formatted using the number (for example, 6teen) instead of spelling out the name. This is because the Bulk Course Creation tool, which we will use later in this chapter, uses a search function built into Moodle that will return multiple users if one user's name is contained within the name of another user. For example, 'John Smith' and 'John Smithson' would both be returned from a search for 'John Smith'. The Bulk Course Creation tool can only assign a teacher when the search for that teacher returns a single user. Although it may be rare for this type of name overlap to occur in your system, you should be aware of the issue. You can also use usernames in place of full names when assigning teachers to courses, but will have the same problem with overlap. In our example, shown previously, a search for a teacher with the username 'Teacher1', would return eleven results. Why, you say? Because, not only would it return 'Teacher1', but it would also return teachers 10 through 19 as they all contain 'Teacher1' in their username.
    • Additionally, the help file accessed from the Upload users page is a bit vague about the fields required in the file utilized to create accounts. Let it suffice to say that, generally, the more information you include in your user account creation file, the better. The six fields included in the file shown here are a minimum for quick and easy account creation. Of course, you may opt not to use the emailstop field if you are using legitimate e-mail addresses.
    • Once you have formatted your file and saved it in the CSV format, you can then click on the Browse button to locate your file and then click the Upload users button to start the account creation process.
    • You will be presented with a preview screen in which the first ten records from your file are displayed and you are given the option to adjust various settings. The following screenshot is of this preview screen. Under the Settings heading, the default values will be appropriate for creating new accounts if you have formatted your file in the same manner as the one we are using.
    • Under the Default values heading, click on the Show Advanced button to display other settings that can be adjusted. You should change the default country here using the Select a country pull-down menu and possibly even the City/town setting, if you want to standardize this setting to the city or town in which your school or program is located.

    You can change the default country by clicking on the Location settings link found under the Location directory in the Site Administration block found on the front page of your site. Even if you have set the default country via the Location settings, you will still need to specify the country when creating new accounts.

  5. Generally, when creating accounts in bulk, you will not need to change any of the other default values unless so desired. Click on the Upload users button once you are finished and the accounts will be created. The following screenshot is of the Upload users preview screen with the Show Advanced menu toggled off:

  6. After clicking on Upload users, the next screen you will see will be a results screen displaying all of the accounts created. Summarized details are presented at the bottom of the screen just above the Continue button. If you receive any errors you may need to go back and correct formatting errors in your CSV file or you may be attempting to create two users with the same username. You will receive an error message that will help you trace the root of your problem. The results of the users with a weak password check, in our case, is zero because we have turned off the password policy in the site policies security settings.

  7. Click on Continue from this screen to return you to the Upload users page. From this point you can click on the Users folder found in the Site Administration block and then on Browse a list of users to view and confirm the existence of the accounts you just created.

What just happened?

You have just created twenty user accounts inside your Moodle site. These users have not yet been assigned any roles. They are simply registered users at this point but that will change shortly when we assign them to teach courses that we'll be creating with the Bulk Course Upload tool.

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.


In this article, you have learned how to set up and organize course categories manually via the editing screen of your Moodle site. You then walked through the process of creating accounts for teachers that were going to be assigned to courses through the use of the Bulk Course Upload tool.

In the next article we will take it further by Installing and Using the Bulk Course Upload Tool for Moodle CIMS.

Further resources on this subject:

You've been reading an excerpt of:

Moodle as a Curriculum and Information Management System

Explore Title