##### Learn the _Dancer_ Perl web framework by developing an online game

Dancer is closely aligned with modern web development concepts enabling you to quickly implement easily maintainable web sites and web services.

- Use the Model-View-Controller design pattern
- Generate HTML with Template Toolkit
- Generate JSON for a Web Service
- Track user activity with cookies and sessions
- Control access with redirect, forward and hooks
- Use object oriented Perl modules
- Have a taster of jQuery, Bootstrap and Isotope
- Deployment with Plack and middleware

The exercises are interspersed with a project developing an online game. This project will demonstrate that the web development skills you've acquired enable you to implement a secure dynamic website.

#### Learning Outcomes

When provided with requirements at the level of route handler functionality, a student completing this course will be able to implement a secure stateful web site within a Model-View-Controller architectural pattern.

This is demonstrated through the implementation of an online game.

#### Prerequisites

This course assumes the student has taken the [Perl Essentials](/content/course/perl-essentials/index.html) course, or has otherwise acquired equivalent skills.

#### Topic 1: Dancer the Domain Specific Language

route handlers; static vs dynamic content; GET/POST parameters; 'any' route handlers;

#### Topic 2: Views, Templates and Layouts

Model-View-Controller; templates, their data and control structures; stylesheets and layout; Bootstrap

#### Topic 3: Sessions, Cookies and Hooks

forwarding; login and logout; before hooks; DSL modification; single request variables

#### Topic 4: Route Handling

security; tokenized routing; favicon; wildcard route matching; forward vs redirect; error route handlers

#### Topic 5: Infrastructure and Deployment

Architecture; unit tests; configuration; jQuery with JSON web service; Isotope taster; Plack and middleware
