Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 48 commits behind 205CDE-1819JANMAY:master.

Latest commit


Git stats


Failed to load latest commit information.

Teaching Plan

The module covers a lot of technical content and this is split over 10 weekly labs. Make sure you complete all lab exercises.


The assessment for this module is split into two parts:

  1. A phase test that covers the foundation materials (the first 5 lectures and labs).
  2. A report that covers the building and testing of your website. Both the assignment brief and grading rubric can be found on CUMoodle.

The module is split into 10 lectures and labs.

  1. The first 5 should be considered foundation and cover the core skills and knowledge. These will be assessed in the phase test which takes place on week 6.
  2. The remainder of the lectures and labs cover the skills needed to build and test a dynamic website and this will be assessed in the practical assessment.

2 Module Content

Setup and The HTTP Protocol

In this first lab you will learn how to set up your development environment and will also learn about the HTTP Protocol that powers the Internet.

  1. Setup
    1. Codeanywhere
    2. Cloning lab materials
    3. Organising the IDE
  2. The HTTP protocol
    1. Request/response
    2. Using the POST method
    3. Metadata

Link to worksheet

2 Learning HTML5

  1. Syntax
  2. Lists
  3. Hypermedia
    1. Routes
    2. Hyperlinks
    3. Images
    4. Media
  4. Tables
  5. Forms
    1. POST vs GET
    2. Form controls
    3. Labelling forms
    4. Form validation

Link to worksheet

3 Learning CSS3

  1. Introduction to CSS3
    1. CSS Basics
    2. Selector
    3. Fine-tuning your CSS
  2. Using CSS for page layout
    1. CSS box model
    2. Positioning elements
    3. Navigation

Link to worksheet

4 Introduction to JavaScript/NodeJS/ECMA6

Understanding ECMAScript 6

  1. Working with NodeJS
    1. Executing NodeJS files
    2. Installing packages
    3. Listing and uninstalling packages
    4. Useful modules
  2. Variables and Scope
    1. Variables and Scope
    2. Strict mode
    3. Importing a package or module
    4. Conditionals and loops
    5. Strings
    6. Arrays
  3. Data types
  4. Errors and exceptions

Link to worksheet

5 Functions and Objects

  1. Functions
    1. Function syntax
    2. The spread operator
    3. The Arguments object
    4. The rest parameter
    5. Default parameters
    6. Function expressions
    7. Callbacks
  2. Objects
    1. Creating object literals
    2. Retrieving object properties
    3. Modifying objects
    4. Undefined values

Link to worksheet

6 Version Control

  1. Phase test
  2. Using Git locally
  3. Using Git remotes

Link to worksheet

7 The Express Web Server

  1. Package manifests
  2. Routing
  3. Templating
  4. Modular code

Link to worksheet

8 Data Persistence

  1. The Filesystem
  2. SQLite
  3. Document databases
  4. Relational databases
  5. Graph databases

Link to worksheet

9 Automated Testing

  1. Unit testing
  2. Code coverage
  3. Testing async code

Link to worksheet

9 Deployment

  1. Building a web server
    1. Raspberry Pi
    2. Cloud using Heroku
  2. Transferring files
    1. File transfer protocol
    2. Directory synchronisation
    3. Git

Link to worksheet

10 Responsive Web Design

About this Github repository

This Github repository is a collaborative work between Coventry University and Helsinki Metropolia University of Applied Sciences. The repository was initially set up by Mark Tyers who contributed initial drafts of most exercises. During the 1st semester of the 15-16 academic year, this set of material was used by Erja, Vesa and colleagues, who made substantial improvements.

Additions were made by Jianhua Yang between 2016-17 after which the module was taken over by Mark Tyers for the 2018 delivery.

Tagged releases have been created at the end of each semester of delivery to act as snapshots of the materials. These can be accessed in GitHub under the Releases tab.

$ git tag -a 1415OCTMAY 582f65c -m '1415OCTMAY'
$ git push origin 1415OCTMAY

Deleting tags (local then remote).

$ git tag --delete 582f65c
$ git push -delete origin 582f65c


Express vs Koa vs Hapi:

Good article on Koa covering useful bits such as global error handling:


No description, website, or topics provided.






No releases published


  • JavaScript 59.5%
  • HTML 39.5%
  • Other 1.0%