Hands-On Exercises: Movie Project

This page is archived

We're keeping this page up as a courtesy to folks who may need to refer to old instructions. We don't plan to update this page.

This collection of hands-on exercises will have you create a movie review site using Drupal. It begins with building the basic structure of the site using Drupal core and contributed modules, like Panels, in exercises 1–11. After the site is built the exercises move to theming the site using the Zen base theme (exercises 12–16). The remaining exercises, 17–36, build a custom module to finish up a variety of features on the site.

These are exercises meant for you to use to test your Drupal knowledge with a simple project that requires a broad knowledge of site building, including coding. Note that this series is not intended to teach you, it is intended as a practice project. You should already know how to build a Drupal site before beginning this series of exercises.

The project has customer requirements presented through the included wireframes and directions within each exercise. The exercises also have a list of resources and tutorials to help you refresh your knowledge of the topics and skills you will need to accomplish each task. Note that learning resources for Drupal 7 have been provided, but the exercises can also work with Drupal 8 if you are willing to work with development versions for some of the contributed modules required, and skip/replace the Webform task (as this has not been ported to Drupal 8 yet).

Download the project wireframes for reference.

movie project homepage

These exercises are the work of Damian Robinson, who has graciously licensed them under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). Drupalize.Me has made minor edits to his original work and you can find a copy of the complete originals for download on his website. We're thankful for Damian's time and energy to create these materials, and his willingness to share them openly to support the Drupal community.

Tutorials in this course
More information

This exercise will have you demonstrate knowledge of the installation process and how to customize Drupal for an improved experience when using the administration UI.

More information

This exercise requires you to analyze wireframes detailing the architecture of a website and design a content type to store all the required information.

More information

In this exercise you will demonstrate the ability to build a ‘Movie Review’ content type based on our design by downloading contributed modules to provide all the necessary field types.

More information

This exercise will require you to build a view which lists films filtered by genre and create image styles to format images for different purposes.

More information

In this exercise you will demonstrate more advanced Views skills by building a view with a relationship between content and taxonomy and formatting the output using a table.

More information

In this exercise you will demonstrate knowledge of Panels, and create a layout for the Top Ten List page, and create and configure content within Panel Panes.

More information

In this exercise you will build and position quicktabs within a panel page.

More information

In this exercise you will create and position menus, static pages, and webforms, which can be accessed via the menu.

More information

In this exercise you will combine knowledge of Panels and Views to create a complex page layout.

More information

In this exercise you will create URL aliases for all content, and create user roles to allow logged-in users to create content.

More information

In this exercise you will demonstrate knowledge of core search by enabling site search, configuring the search display to format the content, and indexing the content.

More information

In this exercise you will demonstrate your ability to create a custom theme as a subtheme based on Zen and use Sass.

More information

This exercise will have you demonstrate an understanding of Drupal themes and how to develop CSS to theme the default markup created by Drupal, with particular reference to CSS naming conventions.

More information

In this exercise you will demonstrate that you understand the CSS patterns used for smaller elements of Drupal such as fields, and can create selectors which override them appropriately. You will also override template files to create your own markup and suggest new template files.

More information

In this exercise you will demonstrate your ability to attach JavaScript to themes, and use Drupal behaviors to enhance the functionality of a website.

More information

In this exercise you will demonstrate that you understand the concept of responsive CSS and the methods which can be used to implement it in a Drupal theme.

More information

Create a custom module and alter the content on a node page using a hook and existing theme functions.

More information

Identify and use preprocessors by creating a custom breadcrumb trail on a page, and reduce and refactor code in custom modules.

More information

Create a new module for movie imports, which will display a form when the user navigates to a page.

More information

Make SQL queries in Drupal, make HTTP requests to external websites, and use this data to validate a form.

More information

Use a form submit hook to pass information down the form API and create a node programmatically.

More information

Create an image file programmatically and attach a file to a node.

More information

Check and create taxonomy terms programmatically.

More information

Create an install hook to pre-define a list of films to import.

More information

Create a custom Drush command, which makes use of re-usable functions within our Movie Import module.

More information

Create an administration form to save information about how the movie importer works by using variables.

More information

Create a permissions hook to secure access to pages within Drupal.

More information

Learn how to use Features to manage configuration changes and understand the configuration change workflow in a team environment.

More information

Manage text formats and filters and add a WYSIWYG editor.

More information

Configure basic settings which affect performance, and perform basic analysis to understand what might be affecting website performance.

More information

Use hooks to update the database tables and alter form elements.

More information

Create autocomplete fields and menu hooks.

More information

Add user data to the database from an existing form.

More information

Display custom content using a render array.

More information

Render content which can be refreshed via Ajax.

More information

Create a custom block with details from the database containing information about user preferences.