Course plan for Modern Web tools with Node.js

During the past few years, the popularity of JavaScript has increased exponentially and while it has been traditionally only available in the Web Browser environments, it has started to come up in other type of places. One of those is Node.js, which can be used to run in much more broadly than the traditional browser world, such as server side tasks. Node.js itself uses the V8 JavaScript rendering engine, originating from the most popular web browser, Google Chrome.


JavaScript is the language used with Node.js, which makes it easy for anyone with font end Web development skills to allow them to expand their abilities to the back end. One common use case for Node.js based tools are focusing on the front end development, such as code minification, code quality and testing task, as well as many other repetitive tasks which developers find themselves doing often. Node.js allows them to leverage their knowledge and shorten the time used for certain often occurring work.

Suggested reading before, and throughout the course, is this Alex Rauschmayer's "Speaking JavaScript" book, which is freely available online.

The Node.js course defined below contains the introduction to Node.js, its related tools, Node.js based project management in GitHub and how to publish your own tools to be used with other existing Node.js tools.

This course is held at Metropolia University of Applied Sciences (Helsinki, Finland) in Autumn 2014, accounts for five (5) credits and is open for anyone studying in Metropolia or its partner universities. Before joining the course, please familiarise yourself with Git and get a free account for GitHub. It is possible to use a Bitbucket account for the same purpose, but they offer to keep code private for free.

Nykyaikaiset Node.js työkalut tehokkaaseen Web työskentelyyn

The first lecture is in Tuesday 26th October 2014, starting at 16:45. The lectures follow the dates shown below, with the initial list of tools that are presented for possible usage of Node.js features studied on that day. Each lecture lasting about three hours, containing presentations, individual and group work.

  1. 26/08 - Node.js, JavaScript
  2. 02/09 - Modules, GitHub, npm
  3. 09/09 - Forking, pull request
  4. 16/09 - Code conventions, eslint, first assignment
  5. 23/09 - Connect, Express
  6. 30/09 - Unit testing, Jasmine, PhantomJS
  7. 07/10 - Running common tasks, Grunt, Gulp
  8. 14/10 - Automation, Travis CI, second assignment
  9. 21/10 - Gemnasium, VersionEye
  10. 28/10 - Bower, Component
  11. 04/11 - Web performance, Uglify, CSSmin
  12. 11/11 - Test coverage, coveralls, third assignment
  13. 18/11 - Database, CouchDB
  14. 25/11 - ...
  15. 02/12 - ...
  16. 09/12 - Crypto, fourth assignment
  17. 16/12 - Feedback on the projects

Please note that the schedule and its contents are subjects to change once the course has commenced, based on the participants and other possible factors.

During the course, the student should complete four assignments that can be done in a single of several distinct projects. The contents for the assignments are cumulated from the lectures of the previous weeks.

Every lecture will contain up to ten (10) small rehearsals of which the first three (3) are required for acquiring the contents of that session with regards of using the introduced tools with students own Node.js based script or project.