Building a Learning Portal using Drupal

What is Drupal

A concise definition of Drupal is difficult to come by, as many people use Drupal for many different things. The following definitions provide an incomplete cross-section of how different people use Drupal. Our working definition is the final one in the list.

· Drupal is a database-driven web application written in PHP.

· Drupal is an open-source Content Management System (CMS) freely available under the GPL.

· Drupal is a community-building platform.

· Drupal is a web development framework. You can use Drupal as a platform to build a broad range of web applications.

Our definition: Drupal is a tool that helps people builds interactive websites. It is free to download, install, customize, and use.

What Drupal Can Do For You

Drupal is not a traditional Learning Management System. Drupal started as a community-building platform, and these community-centered roots inform the range of possibilities available within Drupal today.

Drupal provides a wide variety of useful tools for educators. For the instructor, Drupal can serve as a blogging platform, allowing teachers to communicate directly with students, parents, and the larger school and internet community.

Drupal also offers a flexible range of privacy options that allow users to keep some—or all—of the content within a site private. However, a Drupal site can be used for far more than a secure blogging platform. Within a single Drupal site, you can set up social bookmarking, podcasting, video hosting, formal and informal groups, rich user profiles, and other features commonly associated with Social Web Communities. Building your site in Drupal allows you to start with precisely the features you want, and expand as needed.

Drupal Terminology

Drupal, like most software applications, has a specific lexicon. Mastering Drupal jargon is useful for many reasons, not the least of which is that using Drupal-specific terminology can help you search for information more effectively. The glossary in this chapter will give you an overview of commonly used Drupal terms, and what they mean.

This list of terminology will cover our common tasks and features. For a glossary that delves into some of the technical aspects of Drupal, the Glossary page in the Drupal handbook is a useful resource:

Node: A node is a piece of content that has been created on your site. For example, if you create a page, you have created a node.

Content Type or Node Type: On your Drupal site, you will have different types of nodes, or content. The default install comes with two content types, Page and Story. As we progress through this book, we will create a variety of other node types, such as bookmarks, student blogs, audio nodes, and so on. While all types of nodes are content, different node types can have different functions on your site.

Post: A post is a piece of content of any content type. For example, if a user creates a page node, they have created a post.

Core: Core refers to the base install of Drupal. The core install consists of the essential modules and some basic themes for Drupal. Although any person who has an account on can suggest a change to the core codebase, most changes to core are thoroughly reviewed by developers within the community, and only a small number of people have the rights to actually make changes to core. As a result, the core codebase is stable and secure. The core codebase can be downloaded from

Contributed Modules: These have been written and shared by members of the Drupal community. Unlike core, which represents the work of several hundred contributors, most contributed modules have been written by individuals, or small teams working together. Contributed modules extend the functionality of Drupal, and this book describes how to use various contributed modules effectively. However, you should be cautious when installing a new contributed module. Contributed modules have not been reviewed as thoroughly as core. An overview of all contributed modules is available at

Theme: Themes control the look and feel of your site. The core install comes with several base themes, and you can download a range of contributed themes from

Menu: Menus provide lists of links, and can be used to create an organizational and navigational structure for your site. All menus can be seen and edited at admin/build/menu; additionally, all menus create blocks.

Block: A block displays content within a specific place on the page. All menus create blocks, but you can also embed HTML or PHP code within a block. Blocks can be administered at admin/build/block.

Region: Every theme defines specific regions; blocks can be placed into these different regions using the administrative menu at admin/build/block.

Taxonomy: Taxonomy can be used to organize content within a Drupal site. Drupal permits site administrators to create different taxonomy categories to organize posts. For example, when posting an assignment, an instructor might want to create two taxonomies: one for the type of assignment, and another for the subject of the assignment.

Term: Terms, or tags, are specific items within a taxonomy. For example: a Physics instructor creates two taxonomies to organize assignments. The first is ‘Type of Assignment’ and the second is ‘Subject’. If the instructor assigns his or her students to read an explanation of the Theory of Relativity, this assignment could be tagged with Reading (for Type of Assignment) and Relativity (for Subject).

User: This is the technical term for people using your site.

Role: All site users belong to one or more roles. Site administrators can assign different rights to different roles.

Anonymous user: Any person who visits your site and is not a member of your site is considered an anonymous user. The Anonymous user role allows you to specify how people who are not site members can interact with content and members of your site.

Authenticated user: All site members are authenticated users, and belong to the default authenticated user role. This default role can be used to assign a base level of rights to all site members. Then, other roles can be used to assign more advanced privileges to users.

UID1: This stands for User ID 1, or the first user on a Drupal site. UID1, by design, has full rights over your entire site. As a matter of best practice and security, UID1 should only be used as a back-up administrator account. Often, problems with your configuration will not be visible when logged in as UID1 because UID1 has more rights than other users.

Installing Drupal


To get Drupal up and running, you will need all of the following:

A domain

A web host

FTP access to your web host


A local testing environment

For building sites, either a web host or a local testing environment will meet your needs. A site built on a web-accessible domain can be shared via the internet, whereas sites built on local test machines will need to be moved to a web host before they can be used for your course.

PHP version

Drupal 6 will run on PHP 4.3.5; however, many contributed modules require PHP 5.2. For this reason, PHP 5.2 is recommended. The Drupal 7 release will require PHP 5.2.

MySQL version

Drupal 6 will run on MySQL 4.1 or higher; 5 is recommended. The Drupal 7 release will require MySQL 5.0.

Installing Drupal—The Quick Version

The following steps will get you up and running with your Drupal site. This quickstart version gives an overview of the steps required for most setups. A more detailed version follows immediately after this section.

Once you are familiar with the setup process, installing a Drupal site takes between 5 and 10 minutes.

1. Download the core Drupal codebase from

2. Extract the codebase on your local machine.

3. In your extracted codebase, navigate to the sites/default directory. This directory contains one file: default.settings.php. Make a copy of this file, and name the copy settings.php.

4. Using phpMyAdmin, create a database on your server. Write down the name of the database.

5. Using phpMyAdmin, create a user on the database using the following SQL statement: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, ON databasename.* TO ‘username’@’localhost’ IDENTIFIED BY ‘password’;

6. You will have created the databasename in Step 4; write down the username and password values, as you will need them to complete the install.

7. Upload the Drupal codebase to your web folder.

8. Navigate to the URL of your site. Follow the instructions of the Install Wizard. You will need your databasename (created in Step 4), as well as the username and password for your database user (created in Step 5).

Modules and Themes in Drupal


The above diagram shows the folder inside the Drupal software

Drupal-> modules is the place where all the downloaded modules are copied

Drupal -> themes is the place where all the themes (designs for your website) will be copied

After copying the theme and modules to the concern folder, they should be enabled through the admin panel like Administrator -> settings -> modules or administrator -> settings -> Themes

Administering Drupal

The following image shows the administration screen for Drupal. The administrator can able to

  • control the themes for the admin and as well users,
  • control the block placements,
  • enable/disable modules,
  • can set the date/time settings
  • Assigning roles to the users, etc.

The following is the screen to achieve all these points given above.


Assigning Roles


Operation: administer -> User management -> Roles

The roles can be assigned be the administrator. For Education and Elearning, roles can be teacher, student and different permissions can be given to them.

For example, Teacher can be able to create, edit, access notes, but the student can able to only access contents. Such kind of roles can be fixed by the administrator.

In the above diagram, once the role is created, there Is a link called edit permission, the administrator can able to set permissions.



Operation: administer -> Site builidng -> Modules

In the above diagram, the list of modules which comes along with drupal package is available. Some of the modules are enabled and some are disabled. It is upto the user that the modules can be enabled/disabled.

To Enable, the checkbox to the ticked.

How to add a new module

  • To add any new module, go to the website
  • For example, a module called as webform is being downloaded to create forms in the webpage, to download go to this link
  • A file with an extension of .tar.gz will be downloaded. Which can be extracted through a standard software called as winrar for windows. Linux has the default extract of such files.
  • Copy the folder webform/ which is extracted from the above step and put it into C:/wamp/www/drupal/modules
  • After the folder is copied, refresh the module enable/disable link


  • Enable the module by tick the checkbox

Creating the Content

Content is the main for any eLearning environment. For creating content in drupal, a teacher/educator need not know about the scripting language PHP, as an editor is been developed for placing the content.


Operation: Create Content

In the above diagram, there are four contents like blog entry, page, story and webform

But by default, only two content type page and story will be enabled, but in this picture, the blog entry module and webform modules are enabled, so we can create content for any of the four types

Blog Entry – This content type is very helpful for displaying the lecture notes in a frequent manner, like once a day or week (Even students/learners can also do the job by enabling a role to them)

Page – A page, similar in form to a story, is a simple method for creating and displaying information that rarely changes, such as an "About us" section of a website. By default, a page entry does not allow visitor comments and is not featured on the site’s initial home page.

  • The notes can be pasted or typed and comment section can be enabled so that for any doubts, the students can able to post a query in the comment window and every other student can take a note of it.

Story – A story, similar in form to a page, is ideal for creating and displaying content that informs or engages website visitors. Press releases, site announcements, and informal blog-like entries may all be created with a story entry. By default, a story entry is automatically featured on the site’s initial home page, and provides the ability to post comments.

Webform – Create a new form or questionnaire accessible to users. Submission results and statistics are recorded and accessible to privileged users.

Students Assignment and Project Management

  1. Go to create content and click Webform
  2. A page is opened with the following menus
    1. Menu Link title – “Assignment 1 – B. Tech (CSE)”
    2. Webform Settings – “Assignment 1 – B. Tech (CSE)” and write a short description like date of submission, what file type is permitted, what will be the grade, etc.
    3. Input format – Don’t do anything
    4. Webform access control – If only students are given access to submit their assignments, then enable students alone.
    5. Webform mail Settings: a mail will be delivered each time an assignment is submitted. If the teacher needs that, it can be enabled by typing an email address, else leave it blank
    6. Comment Settings: make it to Read/Write, so that the student can comment on the assignment submission , but the comment section can be disabled also
    7. Authoring information: give the name of the faculty
    8. Captcha: Enable a challenge to avoid automatic submission.
  3. Save the configuration, now there is a screen to add the components, the following elements are needed to submit the assignments
    1. Register Number of the student: Can be populated as dropdown

i. If assignment is given to more than one student, then multiple selection is to be enabled

    1. Assignment Title :

i. Max length of the title can be specified

    1. Upload the assignment

i. File type should be specified like pdf, doc, rtf, docx

ii. File size should be specified: 1000kilobytes

  1. Submit the form and the form is ready for viewing
  2. Once the form is submitted by all the students, all the files from that particular folder is copied and can be sent for evaluation.

Student Project Management System

Same like Assignment Submission, but there is more number of form components needed as given below

  1. The project can be done by a single student to a maximum of 4 students per batch.
    1. So, 4 drop down boxes are needed, the first drop down box being mandatory
    2. Any one student of that batch can login and submit the form
    3. All student particulars like students email ids, phone numbers, etc
  2. Title of the project
  3. Guide information like guide name, email and phone number
  4. Project Venue like Industry, In house or Semester Abroad Programme
    1. A separate textarea for External Guide particulars
  5. Project abstract
    1. Can be uploaded as a separate file or using a text area they can type.
  6. Once the form is submitted by all the students, then the entire form is downloaded as an excel sheet and a project number may be allocated to each project like 2009001, 2009002, etc.
  7. During each project review like 0th review, 1st review, 2nd review and final viva, the relevant presentation and documents will be uploaded by the students. And even the information like how the project will be executed may also be collected.

So this project management is a very good application that can be done using the webform module given to the students/learners.

Not only that the feedback can also be collected from the student by giving a common userid and password to provide their feedback.

TS Pradeepkumar

I teach B.Tech, M.Tech, develop softwares & mobile apps, work with Linux (most of the time), talk/give “hands on” on NS2, MOODLE, WordPress, Linux and open source, play flute, learn new things…. I am working at VIT University (One of the Top universities in India) and I hold a Bachelors (Electrical & Electronics) and Masters in Embedded system Technologies. I love to teach students particularly in open source softwares and tools. I author couple of blogs,

More Posts - Website

Follow Me:
TwitterFacebookLinkedInPinterestGoogle PlusYouTube

Read More