One of the wonderful things about popular extensible frameworks, such as Drupal, is that the community has solved the vast majority of the challenges anyone will face building a website. Not only that, but they've given back to the community by taking their solution, generalizing it, and making it available to anyone, for free.

Without any developing experience, or even the slightest understanding of how the web works, you can add large and powerful functionality to your Drupal site with "modules".

A module is software that extends the functionality of your Drupal instalation. It could solve some very specific issue with one particular theme, or it could completely change the purpose of your site. Suddenly want to change your static content site into an online shop complete with shopping cart and payment gateway? There's a module for that. Want to backup your entire site with one click? There's a module for that. Want to change all the language on your site into pirate talk to celebrate International Talk Like a Pirate Day? You get the idea.

The Drupal core is honestly barely capable of managing even simple sites. I'd go as far to say that the only reason you should use Drupal, is for the modules that are available for it.

So lets say…

You have some desire to extend the functionality of your site. How do you know which module to use? Where do you start? The answer is simple: Google.

To see if some brilliant generous soul has provided exactly what you need, just Google your Drupal version number, and the feature you wish to add. Like this!

Drupal 7 events manager
Drupal 7 calender
Drupal 7 constant contact
Drupal 7 contact form
Drupal 7 forum

Easy! Now comes the hard part – picking which module is right for you. Almost all top results will be for and land you either on some discussion, or if you're lucky on a page for a module. Start with the module page if one is available. You may find that the description is exactly what your looking for. Don't stop there though! Poke around and try to find other modules that achieve something similar. I find a great place to look is right on that module page in the bottom right under "Related Projects".

It's a breeze to install a module. On the module page, right click on the ZIP for your Drupal version, and click "Copy link address" (or something similar). Go to the "modules" menu item along the top of your Drupal site, and click on "Install new module". Once on that page, paste the URL into the appropriate text field and upload the module right from it's web address. Done! Once installed, there will be 3 links, one of which can will take you to the list of modules where you can enable your recent installation. Keep in mind that your user level may have module action disabled. North Studio can help you out with that if you like, or install a module for you.

In a perfet world, it should be evident from the description alone if a module will answer your need. In a perfect world, you would install it, enable it, and your site would flourish with the exact awesomeness you intended. In perfect world, there would be no pain and donuts would be healthy. It's not a perfect world (but I still mow down donuts).

You may be all the way down the rabbit hole – have your module installed, enabled and configured, before you find that something you need, just isn't there. Such is life. In that event, try other modules you found. You may even want to install and enable multiple modules just to find out which module does what you need best.

Depending on the complexity of the module, configuring it might be a project by itself. You can imagine how many settings something like a full featured forum module might have. Each module will have different configuration, so the advice I have there is quite vague – don't be afraid to experiment! Click things, break things even. If you do break something, disabling the module will restore peace and order.

If you have a specific feature in mind and don't find a module to fit your need, that's where you can bring in the big guns – the developers at North Studio.