Node js with Test Driven Development

Learn Node js by building a complete fully functional backend rest application with express.js an testing it with jest

4.82 (266 reviews)
Udemy
platform
English
language
Software Engineering
category
2,890
students
22 hours
content
Mar 2024
last update
$84.99
regular price

What you will learn

Practice Test Driven Development in a real project from beginning to the end

Learn the test runner, Jest and understand how to structure test modules

Create a fully functional application with Express js

Learn how to build a RestFul API

Make your application configurable to work in different environments

Make your application aware of user locale, and support internationalization, i18n

Use Sequelize to connect the application to RDBMS like PostgreSQL and handle all database related operations

Secure your application with common practices. Basic authentication, JWT and your custom token implementation

Use javascript on server side with Node js

Deploy the application to a VM in cloud

Experience automated deployment by pushing a commit from your machine to Github. Github Actions will do the rest.

Feel how the test driven development is giving confidence when refactoring, and deploying your application.

User Registration with email verification flow, account activation

Password Reset flow

Description

In this course we will be building a fully functional backend service with express of node js. we will call our application as hoaxify.

while building this application, we will learn

  • how we can build a restful web service with express js, with all necessary functionalities like validationinternationalization, static resource serving, caching, json manipulation, interacting with external services

  • how we can handle database operations with orm package, sequelize.

  • how we can manage database version history and migrations

and we will see

  • how test driven development works.

  • how it's affecting our code quality, reusability

  • how it's giving us the confidence about refactoring our implementation

  • how we can deploy the application to heroku

  • how we can create an instance in google cloud and deploy our application to it

  • and how we can automate the deployment with github actions.

This course is purely built on practice. Each code piece we write, will be for our actual application implementation.

In each section we will gradually build our application. We will not jump ahead and add functionality not needed for that moment. We will implement one requirement at a time. Each implementation will bring the next requirement to us.

And following this practice, will help you to get a solid foundation about overall rest web services requirements and how to implement one of them with node js by following test driven development methodology.

Content

Introduction

Introduction
Tools
Methodology
Creating Project
Development Environment Dependencies
Web Client
Project Source Code

First Rest Endpoint: Sign Up

First Test: Sign Up Request
Saving User to Database
Password Hashing
Refactor

Configuration and Environment

Configuration and Environment

Validation

Validation
Validatior Middleware
Express Validator
Dynamic Tests
Remaining Validations
Custom Validation: Unique Email Validation

Internationalization - i18n

Internationalization - i18n

Account Activation

Account Activation Intro
Activation Email
Email Transport Failures
Refactoring Tests
Activating Account
Testing on Web Client

Error Handler

Error Handler
Error Body

Loading Users

User Page Response
Page Content
Total Page Info
Changing Page
Changing Page Size
Get User

Authentication - Part 1

Authentication
Authentication Failure
Refactoring Tests

User Update - Part 1

Update User - Authentication Failure
Update User Success
Authorization Aware User List

Authentication - Part 2

JWT Token Generation
Authorization
JWT Practices
Opaque Token
Logout
Delete User
Token User Relationship
Expiring Token
Token Cleanup

Account Recovery

Password Reset Request
Password Reset Success Response
Sending Password Reset Email
Refactoring Rest Endpoint
Updating Password - Error Cases
Updating Password - Success
Testing on Client

User Update - Part 2

User Profile Image
Image in Responses
Upload Folder
Storing Images in Folder
Serving Static Resources
Cleaning up the Folders
Replacing Old Image
Username Validation
File Size Validation
File Type Validation
Testing on Client

Production Preparation

Migration Demo
Creating Latest Migration Scripts
Running Tests Against Shared Database
Refactoring Configuration
Using PostgreSQL
Organizing NPM Scripts
Logger
Logging App Version

Deployment

Production Configuration
Deploying to Heroku
Preparing VM on Google Cloud
Deploying App to VM
Automating Deployment

Hoax

Submitting Hoax
Saving Hoax to Database
Validation
Hoax Migration Scripts
Hoax User Relationship
Listing Hoaxes
Listing Hoaxes of a User
Running Tests with PostgreSQL
Deployment

Hoax Attachment

Attachment Folder
Storing Attachment info in DB
Storing Attached File
Serving Attachment Folder
Storing File Type
File Size Limit
Attachment Hoax Relationship
Attachment in Hoax Listing
Migration Scripts
Scheduled Service for Unused Attachments

Clean Up

Hoax Delete - Error Cases
Hoax Delete - Success Cases
Hoax Delete - Cascade
Migrating Constraint
User Delete

Final

Updating Dependencies
Deployment

Screenshots

Node js with Test Driven Development - Screenshot_01Node js with Test Driven Development - Screenshot_02Node js with Test Driven Development - Screenshot_03Node js with Test Driven Development - Screenshot_04

Reviews

José
August 8, 2023
A very good course of TDD with Node. Very thorough and dense course. I think I'm going to learn a lot.
Heri
May 22, 2023
I thoroughly enjoyed the content of this course. The author's dedication and effort are evident, making it a comprehensive and practical learning experience. The step-by-step approach to creating tests is particularly valuable, especially for those looking to grasp the basics of Test-Driven Development (TDD). One of the highlights is how closely the course mirrors real-world scenarios, providing relevance and applicability to the concepts being taught. However, there are areas that could be improved in the delivery of the course. For instance, the keyboard sound can be distracting and should be minimized or removed to enhance the overall learning experience. Additionally, I found the content delivery flow to be somewhat disjointed, which can lead to confusion. To address this, I suggest adding contextual information before introducing each test. By providing context, learners can better understand the purpose of each test before diving into its implementation. This will reduce confusion and enhance the learning process. Despite these minor improvements, I want to express my gratitude for the course. It is undoubtedly a valuable resource, and I greatly appreciate the effort put into creating it. The positives outweigh the areas of improvement, making it a great overall learning experience. Thank you!
Leonid
April 3, 2023
This course is really amazing! Have learned a lot and enjoy the pace we are learning. Got hooked by backend development and with tdd approach.
Ndoh
March 16, 2023
I am enjoying the course. Not just does it teach about TDD, there are Nodejs practices which I am just seeing for the very first time which has been very helpful.
Jakub
March 2, 2023
In brief, magnific, excellent , superb. I was searching for course like this. In my opinion one of the best node courses. Just must have. I hope you will create more TTD courses for Node. For example Node GraphQL and MongoDB. Greate job ;)
Gildas
December 26, 2022
I've finally completed the course. It was jam packed with content, everything is explained in detail (which shows the author, Basar, is deeply knowledgeable on the topic). The author is reactive in the Q&A, always willing to help. I cannot recommend this course highly enough. Truly excellent work/course, Basar
Benjamín
November 23, 2022
I really liked that you showed good practice. I'm no expert in Javascript, but those tiny details and a good practice and theory explain makes this course worth it. The setup with code and terminal were good distributed, I have played this course with a chrome mini player extension.
Patrick
September 19, 2022
The course dragged on and on and on. To many refactoring. Even omitting out the translation part of the application it was still annoying. After section 10 I called it a day. Wanted to learn more a jest and it just seemed like there wasn't much to offer. Test were pretty much the same and half the time they failed was because the application was written incomplete way.
Edwin
September 8, 2022
Yes it is a good match for me as I have been a software engineer involved in automated testing and devops in Java before.
Hiro
August 6, 2022
The teaching materials are good with plenty of examples. However, the presentation and explanation still have room for improvement. First of all, your CLI does not have to take up half of the screen. Your git should have appropriate branches by modules.
Adriano
July 28, 2022
Great course, focus on practice. Maybe too many example, I've liked also examples of mocking and other testing methods
Anmol
May 23, 2022
I am loving this course so far. Still the author should work on subtitles/caption, sometimes they are wrong.
Kiran
May 1, 2022
It has good content but the voice is what it bothers. It doesn't sound good few minutes sometimes. Its like tutor has some wet cough.
Vivien
April 24, 2022
Pros: Good stuff packed with tons of add-ons. I learned a lot and already bought his react with tdd course. Cons: - used small editor font as though he was recording for himself. This alone makes the course deserve 1 star. I'll certainly be facing this same issue with his react course. Will definitively give 1 star. I don't know why some people keep the editor font size to small knowing they'll be recording for other people. That's one area where Brad and Mosh shine. - didn't create a different branch in his commits for each section. So if you find out you messed up somewhere, you'll have to watch the whole video related to that section to find out where you messed up, the github repo is of no help. Warning: don't use es6 module for this one. I did only to find out middle way that some packages in sequelize don't support es6 modules. By that time it was way too late to go back to commonjs.
Thiago
March 1, 2022
There are few TDD nodejs courses availabe on Udemy, and this here shines! Excelent course! PS.: Instructors, make more TDD courses!

Charts

Price

Node js with Test Driven Development - Price chart

Rating

Node js with Test Driven Development - Ratings chart

Enrollment distribution

Node js with Test Driven Development - Distribution chart
3323926
udemy ID
7/12/2020
course created date
8/23/2020
course indexed date
Bot
course submited by