Core Curriculum Details : NodeJS Backend Engineering

NodeJS Backend Engineering

In this training course, you will learn to how build, test, deploy, monitor, and maintain web scale backend build on NodeJS Platform. You will learn how to build data-intensive real-time applications by taking advantage of the event-driven, non blocking I/O model of NodeJS. Furthermore you’ll explore the ExpressJS Web framework. By the end of the class, you’ll have full blown knowledge of how to build real world RESTful JSON APIs.

Prerequisite

  • Intermediate or Advanced Javascript Experience and How to use the command line

Materials & Resources

Assessment

  • Capstone Project


Lesson Plan

Week 1: NodeJS overview

You’ll get introduced to the JavaScript Platform with a bit of history. Setup the environment ready to kickstart the course. Then you’ll learn features that make NodeJS great for building web services and then learn your way around.

Learn about the module system provided by NodeJS. We will look at the core modules provided NodeJS and see what they’re for. You’ll get to know about NPM and how to manage packages. Eventually you’ll know how to create your own modules and distribute them.

Explore the File System using the filesystem core module and know how to interact with files.

Learn how NodeJS handles concurrency with its evented IO first-class feature. You’ll experience how to use events to manage processes. Then learn how to work with streams to build even better data pipelines.

We will look at the core functionalities provided by NodeJS to build web applications. More specifically, you will learn how to build full-blown network applications and web servers.
Learn how to deal with deeply nested callbacks due to the asynchronous nature of NodeJS. You’ll learn different patterns to help you organize your application code.
  • Lecture 1 - 6
  • Beginning NodeJS Chapter 3, 4, 5 and 10
  • Setup node environment
  • Build a custom module, publish it to npm
  • Build a read-writer module for working with File system
  • Build a data pipeline with streams and events
  • Build a custom HTTP custom server
  • Use Async Module and Promises to read/write large numbers of Files
  • Week Lab exercise - Build a static file server and explorer

Week 2: Getting started with ExpressJS

You’ll get introduced to ExpressJS, a framework that simplifies building web applications and API’s. Explore it’s ecosystem and install it in your environment.

Learn how to use modular components called middleware to implement web application logic in a reusable manner. You’ll also learn how to implement custom middleware that suit different cases.

You’ll explore ExpressJS application routing abstraction feature. This will be a foundation to know how build API’s. Understand how to with CRUD operations.

Learn about views, which provide a convenient way to generate dynamic content. We will at EJS and Jade Templating engines.

Learn how to handle application level errors and how to respond with user friendly messages.

In this lesson, you will learn how to automate building backend applications. You will look into npm script command, gulpjs and Make tools. By the end you should know how to automate common tasks and how to build a whole application ready for production.

  • Lecture 7 - 11
  • Express in Action Chapter 3, 4, 5 and 6

  • Setup an expressJS project folder
  • Install middlewares and build a flow with them
  • Build a simple routing web app for serving file content
  • Build a simple frontend for the above lab with LESS and EJS
  • Implement a build system using gulp for the above lab
  • Week Lab exercise - Build a web blog

Week 3: Data Storage with MongoDB

Get a short introduced to databases and the different types. Then learn the role they play in building applications. Focus will then shift to NoSQL databases.

You will learn about MongoDB, a document datastore. Learn how to setup MongoDB and use the Repl. Explore the different concepts and features.

Learn how to use the Object Document Mapper(ODM) for data modelling. Then connect NodeJS to MongoDB to build data persisting application.

You’ll learn how to store and use data in across sessions of user while using an application.

  • Lecture 12 - 14
  • Beginning NodeJS Chapter 8

  • Setup a MongoDB, SQLite and LevelDB environment
  • Model data using mongooseJS ORM
  • Build a simple web app that is backed by MongoDB
  • Week Lab Exercise - Web Blog Continued: use mongodb to store blog contents

Week 4: Building Web APIs

You will learn what APIs are and what role they play. Then get introduced to an architectural style called REST.

Learn how to setup API projects and gathering all the requirements. Then understand how to map and layout the resources using REST principles.

At this point, you will deep dive into building a full-blown JSON API.

Learn how to add authentication and authorization layers in APIs for security measures. Additionally you will explore other security strategies such as JWT etc.

Explore different testing strategies to ensure code quality and catch bugs early on API development. You will deep dive into TDD and how to do integration tests.

At this stage, having learnt how to an API, you now learn how write documentation. Documentation is important for API consumers to get up and running as quickly as possible. Additionally, you’ll look into API versioning.

  • Lecture 15 - 20
  • Express in Action Chapter 6, 9 and 10

  • Setup a RESTful API project
  • Create RESTful endpoints that respond with JSON
  • Use Passport, JWT and Token Authentication to add security layer
  • Add Controllers for the RESTFul endpoints
  • Build a TDD testing strategy with Mocha, Chai and Supertest
  • Use APIdoc.js to build api documentation
  • Week Lab Exercise - Implement API for a contacts platform

Week 5: Going Further with Web API’s

Learn how to use advanced API design patterns to leverage good code design.

At this point, you will gain an understanding of how to work with third-party APIs. Understand strategies and measures to take while interacting with them.

In this lesson, you will get introduced to a new software architectural paradigm called Microservices.

In this lesson, you will learn how to build small, autonomous services that work together as opposed to one monolithic service.

Discover Docker, a technology for application containerization. You will see how it compares to virtual machines and how it empowers you to build better software.

You’ll learn how to use docker to build, and ship microservices.

  • Lecture 26 - 29
  • Express in Action Chapter 12
  • Build a simple HTTPS web server
  • Build an API that interacts with Github API
  • Build 2 microservices
  • Setup docker
  • Use docker to containerize the 2 microservices
  • Week lab exercise - Convert Ecommerce API to microservices and use docker for containerization

Week 6: Going Further with Web API’s

This lesson will cover how to configure API’s and how to deal with configuration in general. You will see how to store configs in environment, files and tools like Etcd.

Your API is production ready, all that remains is to ship it into the real world. At this point you’ll learn how to bundle up your API ready for deployment and then push it to the cloud. You’ll discover various continuous integration and deployment strategies.

You will learn how to keep your API running always. Also know how to recover from crashes.

In this lesson, you discover how you can easily scale API’s to utilize all the CPU cores of a multi-core single machine. You will deep dive to cluster and child process core modules in NodeJS platform.

You will discover tools that can help you keep monitoring your API. Additionally learn work with logs.

You get to build your own project of your liking while using all the knowledge you’ve learnt about NodeJS and API’s in this class.

  • Lecture 21 - 25
  • Beginning NodeJS Chapter 13
  • Learn how to use the FileSystem, ETCD and Environment to store application configuration
  • Setup Hosting environment in the cloud
  • Install and use PM2 to manage uptime and scaling of the API
  • Learn how to cluster module to scale an app
  • Use Keymetrics.io and PM2 to monitor API
  • Week Lab Exercise - Deploy the Ecommerce API to cloud

Week 6: Going Further with Web API’s

Learn how to use advanced API design patterns to leverage good code design.

At this point, you will gain an understanding of how to work with third-party APIs. Understand strategies and measures to take while interacting with them.

In this lesson, you will get introduced to a new software architectural paradigm called Microservices. You will learn how to build small, autonomous services that work together as opposed to one monolithic service.

Discover Docker, a technology for application containerization. You will see how it compares to virtual machines and how it empowers you to build better software.

You get to build your own project of your liking while using all the knowledge you’ve learnt about NodeJS and API’s in this class.

  • Lecture 26 - 29
  • Express in Action Chapter 12
  • Build a simple HTTPS web server
  • Build an API that interacts with Github API
  • Build 2 microservices
  • Setup docker
  • Use docker to containerize the 2 microservices
  • Week lab exercise - Convert Ecommerce API to microservices and use docker for containerization