Drupal can be regarded as “content management system” (CMS) however it is also a “content management framework” (CMF). In other words, unlike a typical CMS, it is geared more towards configurability and customization. In addition to providing sitebuilding tools, it offers ways for programmers and developers to customize Drupal using plug-in modules. It is a sort of “builder’s kit” made up of pre-designed components that can be used as it is or can be extensively reconfigured to suit your needs. Drupal’s power comes from its more abstracted approach to handling web content and functionality.
Some of the important features:
Flexible module system
Modules are plug-ins that can modify and add features to a Drupal site. For almost any functional need, chances are good that either an existing module fits the need exactly or can be combined with other modules to fit the need.
Customizable theming system
All output in Drupal is fully customizable, so you can bend the look and feel of your site to your will.
Extensible content creation
You can define new types of content (blog, event, word of the day) on the fly. Contributed modules can take this one step further and allow administrators to create custom fields within your newly created content types.
Search engine optimization
Drupal offers support for human-readable system URLs, and all of Drupal’s output is standards-compliant; both of these features make for searchengine friendly websites.
Role-based access permissions
Custom roles and permissions allow for fine-grained control over who can access what within the system. And existing modules can take this level of access control even further down to the individual user level.
Social publishing and collaboration tools
Drupal has built-in support for tools such as group blogging, comments, forums, and customized user profiles. The addition of almost any other feature you can imagine—for instance, ratings, user groups, or moderation tools—is only a download away.
Terminology :
We will be looking into few commonly used terms in drupal:
Modules:
All of the administrative and user functionality in Drupal, from fundamental features such as ability to log in or create content to complex functions, all come from modules. In Drupal each module provides specific functionality, and works together with other modules to enhance their functionality. Some examples of modules are the Contact module, which enables a site-wide contact form, and the User module, which handles user authentication and permission checking. The “core” drupal modules are present in the drupal/modules folder while the “contributed” modules should be placed in drupal/sites/all/modules. You can enable or disable modules by going to Administer->SiteBuilding->Modules.

Users:
The next building block of a Drupal website is the concept of users. The first user you create when you build a new Drupal site is special. User 1 has permission to perform any action on the Drupal site. Every additional user can be assigned to configurable roles. Each role can be given permissions to do different things on the
website: visiting specific URLs, viewing particular kinds of content, posting comments etc.. By default, Drupal comes with two predefined roles: ‘authenticated user’ and ‘anonymous user’. Anyone who creates a user account on the site is automatically assigned the ‘authenticated user’ role, and any visitors who haven’t yet created user accounts (or haven’t yet logged in) have the ‘anonymous user’ role.

Nodes:
Any form of content such as blog post, pages,news items are all stored as nodes. All nodes, regardless of the type of content they store, share a handful of basic properties such as: author,creation date,title,body. In addition to nodes basic properties, all nodes can take advantage of certain builtin Drupal features, like flags that indicate whether they’re published or unpublished and settings to control how each type of node is displayed. Permissions to create and edit each type of node can also be assigned to different user roles; for example, users with the “blogger” role could create “Blog entry” nodes, but only “administrator”
or “editor” users could create “News” nodes. Drupal comes preconfigured with two types of nodes: “Page” and “Story.” You can also create your own content types.
What happens, though, if you need to store more information than “title” and “body content?” Plug-in modules can add to Drupal’s content system new kinds of nodes that offer more features. One example (which comes with Drupal) is the “Poll” module. When users create new “Poll” nodes, they create a list of poll questions rather than the usual “body” content.The idea that new modules add properties and build on top of the node system means that all content in Drupal is built on the same underlying framework. Features like searching, rating, and comments all become plug-and-play components for any new type of node you may define, because under the hood, Drupal knows how to interface with their base elements—nodes.
Taxonomy:
Drupal maintains almost everything as a node. So How do you separate nodes into separate categories ?. That’s exactly what Taxonomy does. It’s just a technical term for a way of organizing and classifying things. It allows the administrator of a site to set up categories of topics that nodes can be associated with when they’re created. In Drupal, these categories are called vocabularies. Each vocabulary contains specific terms (like Mountains or Automobiles or Pets) that can be used to describe content. Drupal supports three kinds of vocabularies: simple lists of terms, organized hierarchies of terms, and “free tagging” vocabularies that allow you to define new terms as you post new content.
Comments:
Comments are merely responses by a user to a piece of content, and exist only in relation to that content. Like nodes, but to a lesser extent, comments can be expanded with contributed modules to have additional features such as ratings or file upload fields. An important point to note is that comments are not stored as nodes, they are only attached to nodes.
Blocks:
Block are widgets that fit into areas such as the sidebars, footers, and headers of a Drupal site. They’re generally used to display helpful links or dynamic lists such as “Most popular content” or “Latest comments” and similar items. By going to Administer->Site Building->Blocks you can configure blocks to show up on certain regions, or to be hidden.

Menus:
Menus hold the navigation links to various web pages on a Drupal site. Drupal comes with three default menus.
Navigation-The main system menu. In practice, this menu is the default menu for links offered by modules, including administrative tasks.
Primary links – An empty menu provided for custom navigation needs, typically displayed very prominently in the site’s design. Major sections of the site such as “Home” and “Blog” tend to be placed in the Primary links menu.
Secondary links – Another empty menu provided for custom navigation needs, but more subdued in presentation. As a general rule, more supplementary pages such as “Terms of Service” or “FAQ” are placed in the Secondary links menu.




