Node.js Fundamentals

This course focuses on developing the server side of web applications and REStful web services using Node.js. The course focuses on node.js and its complementary libraries, such as Express.js, Restfy.js, Mongoose and others.

The course was developed for people with basic knowledge in software development. It can be either a programming course that was taken in the past or practical experience. The first two meetings cover the required knowledge in JavaScript for developing in Node.js.

The course includes 90 academic hours delivered in 18 weekly meetings, that take place in class, and 180 academic hours (and beyond) that take place at home. The training material (slides, video clips, assignments, solutions and code samples) for the entire course is organized on the e-learning platform we use during the course. Each meeting includes a theoretical lecture together with practical practice (at least 40% of each meeting). The practical practice includes coding by the instructor followed by the students and coding by the students with the assistance of the instructor. Each meeting is captured on video in order to allow the students effective learning process at home.

The course includes lots of relatively small assignments and a final project the students will develop as an open source project and place it as a module other Node.js developers will be able to use.

Meeting

Topic

Sub Topics

1

JavaScript Programming

JavaScript Programming
Introduction

Basic Elements
Object Oriented Programming

2

JavaScript Programming

JavaScript Programming
Object Oriented Programming
Arrays

Functions
Anonymous Functions

Errors      

Asynchronous Programming
Lambda Expressions

3

Node.js Server Side Development

Node.js Basics
Introduction
Jump Start
Basics
Debugging
Operating System

4

Node.js Server Side Development

Node.js Basics
Query String
Path
Process
MySQL

HTML
Forms

5

MongoDB

Mongo DB Basics
Introduction
Jump Start
MongoDB Shell
Data Types

6

MongoDB





Mongoose

Mongo DB Basics
CRUD Operations
Querying
Indexing

Mongoose Basics 
Introduction
Jump Start

7

Node.js Server Side Development

Node.js Basics
Node.js on Heroku

8

REStful Web Services




Developing REStful Web Services in Node.js

REStful Web Services
Introduction
Constraints
Characteristics

Restify Basics
Introduction
Jump Start

9

Node.js Server Side Development

Node.js Basics
Files
Headers

10

Express Framework

Express.js Basics
Introduction
Basics

11

Express Framework

Express.js Basics
Configuration
Request
Response                                                                                      

12

Express Framework

Express.js Basics
Middlewares  
Sessions Management

13

WebSockets API







Introduction to HTML5
WebSockets API
                                                     
Socket.IO
Introduction
Basics

14

Express Framework



Express.js Basics
Security Best Practices

15

Node.js Server Side Development

Express.js Basics 

Performance Best Practices

16

Node.js Server Side Development

Node.js Basics
Node.js in Depth

17

JavaScript
Programming

JavaScript
Programming

Promise

18

Node.js Server Side Development

Node.js Basics
Heroku
Amazon Cloud9

19

Redis


Node.js













Redis Basics
Introduction
Basics


Node.js Basics
Timers

20

Node.js Server Side Development

Node.js Server Side Development
Performance
(The Cluster Module,

The Worker Threads Module)


Node.js Design Patterns
Introduction
Classic Patterns
(Proxy, Singleton, Modules, Factory)
Specific Node.js Patterns
(Callback)

Server Side Architecture
Monolitic Architecture
Micro Services Architecture


Changes:

26/2/2018         More topics are added
4/7/2018         The Session Management topic was shifted to be delivered as part of the Express topics.