Section 1 : Welcome

Lecture 1 Welcome to the Class! 00:06:55 Duration
Lecture 2 Grab the PDF Guide 00:01:01 Duration

Section 2 : Installing and Exploring Node

Lecture 1 Section Intro Installing and Exploring Node 00:00:54 Duration
Lecture 2 Installing Node 00:14:26 Duration
Lecture 3 What is Node 00:08:48 Duration
Lecture 4 Why Should I Use Node 00:15:19 Duration
Lecture 5 Your First Node 00:06:15 Duration

Section 3 : Node

Lecture 1 Section Intro Node 00:01:00 Duration
Lecture 2 Importing Node 00:16:03 Duration
Lecture 3 Importing Your Own Files 00:15:05 Duration
Lecture 4 Importing npm Modules 00:15:34 Duration
Lecture 5 Printing in Color 00:13:15 Duration
Lecture 6 Global npm Modules and nodemon 00:08:03 Duration

Section 4 : File System and Command Line Args (Notes App)

Lecture 1 Section Intro File System and Command Line Args 00:00:51 Duration
Lecture 2 Getting Input from Users 00:09:42 Duration
Lecture 3 Argument Parsing with Yargs Part I 00:14:20 Duration
Lecture 4 Argument Parsing with Yargs Part II 00:10:37 Duration
Lecture 5 Storing Data with JSON 00:17:10 Duration
Lecture 6 Adding a Note 00:17:22 Duration
Lecture 7 Removing a Note 00:14:55 Duration
Lecture 8 ES6 Aside Arrow Functions 00:14:14 Duration
Lecture 9 Refactoring to Use Arrow Functions 00:13:41 Duration
Lecture 10 Listing Notes 00:05:26 Duration
Lecture 11 Reading a Note 00:11:44 Duration

Section 5 : Debugging Node

Lecture 1 Debugging Node 00:17:04 Duration
Lecture 2 Error Messages 00:03:36 Duration

Section 6 : Asynchronous Node

Lecture 1 Section Intro Asynchronous Node 00:01:08 Duration
Lecture 2 Asynchronous Basics 00:07:54 Duration
Lecture 3 Call Stack, Callback Queue, and Event Loop 00:18:08 Duration
Lecture 4 Making HTTP Requests 00:23:46 Duration
Lecture 5 Customizing HTTP Requests 00:18:53 Duration
Lecture 6 An HTTP Request Challenge 00:17:46 Duration
Lecture 7 Handling Errors 00:17:48 Duration
Lecture 8 The Callback Function 00:15:30 Duration
Lecture 9 Callback Abstraction 00:18:47 Duration
Lecture 10 Callback Abstraction Challenge 00:14:49 Duration
Lecture 11 Callback Chaining 00:13:01 Duration
Lecture 12 ES6 Aside Object Property Shorthand and Destructuring 00:14:57 Duration
Lecture 13 Destructuring and Property Shorthand Challenge 00:12:38 Duration
Lecture 14 Bonus HTTP Requests Without a Library 00:15:27 Duration

Section 7 : Web Servers (Weather App)

Lecture 1 Section Intro Web Servers 00:01:33 Duration
Lecture 2 Hello Express! 00:18:15 Duration
Lecture 3 Serving up HTML and JSON 00:06:57 Duration
Lecture 4 Serving up Static Assets 00:14:43 Duration
Lecture 5 Serving up CSS, JS, Images, and More 00:11:24 Duration
Lecture 6 Dynamic Pages with Templating
Lecture 7 Customizing the Views Directory 00:07:18 Duration
Lecture 8 Advanced Templating 00:15:31 Duration
Lecture 9 404 Pages 00:13:27 Duration
Lecture 10 Styling the Application Part I 00:16:25 Duration
Lecture 11 Styling the Application Part II 00:13:13 Duration

Section 8 : Accessing API from Browser (Weather App)

Lecture 1 Section Intro Accessing API from Browser 00:00:42 Duration
Lecture 2 The Query String 00:16:59 Duration
Lecture 3 Building a JSON HTTP Endpoint 00:09:54 Duration
Lecture 4 ES6 Aside Default Function Parameters 00:11:18 Duration
Lecture 5 Browser HTTP Requests with Fetch 00:12:06 Duration
Lecture 6 Creating a Search Form 00:13:49 Duration
Lecture 7 Wiring up the User Interface 00:13:22 Duration

Section 9 : Application Deployment (Weather App)

Lecture 1 Section Intro Application Deployment 00:00:52 Duration
Lecture 2 Joining Heroku and GitHub 00:09:43 Duration
Lecture 3 Version Control with Git 00:07:42 Duration
Lecture 4 Exploring Git 00:06:24 Duration
Lecture 5 Integrating Git 00:16:28 Duration
Lecture 6 Setting up SSH Keys 00:08:14 Duration
Lecture 7 Pushing Code to GitHub 00:13:38 Duration
Lecture 8 Deploying Node 00:15:19 Duration
Lecture 9 New Feature Deployment Workflow 00:15:31 Duration
Lecture 10 Avoiding Global Modules 00:08:15 Duration

Section 10 : MongoDB and Promises (Task App)

Lecture 1 Section Intro Databases and Advanced Asynchronous Development 00:01:06 Duration
Lecture 2 MongoDB and NoSQL Databases 00:08:03 Duration
Lecture 3 Installing MongoDB on macOS and Linux 00:08:07 Duration
Lecture 4 Installing MongoDB on Windows 00:08:27 Duration
Lecture 5 Installing Database GUI Viewer 00:06:25 Duration
Lecture 6 Connecting and Inserting Documents 00:18:56 Duration
Lecture 7 Inserting Documents 00:16:38 Duration
Lecture 8 The ObjectID 00:15:09 Duration
Lecture 9 Querying Documents 00:17:09 Duration
Lecture 10 Promises 00:17:13 Duration
Lecture 11 Updating Documents 00:16:02 Duration
Lecture 12 Deleting Documents 00:07:07 Duration

Section 11 : REST APIs and Mongoose (Task App)

Lecture 1 Section Intro REST APIs and Mongoose 00:00:59 Duration
Lecture 2 Setting up Mongoose 00:15:39 Duration
Lecture 3 Creating a Mongoose Model 00:04:58 Duration
Lecture 4 Data Validation and Sanitization Part I 00:16:15 Duration
Lecture 5 Data Validation and Sanitization Part II 00:11:21 Duration
Lecture 6 Structuring a REST API 00:14:39 Duration
Lecture 7 Installing Postman 00:07:37 Duration
Lecture 8 Resource Creation Endpoints Part I 00:19:41 Duration
Lecture 9 Resource Creation Endpoints Part II 00:07:59 Duration
Lecture 10 Resource Reading Endpoints Part I 00:13:20 Duration
Lecture 11 Resource Reading Endpoints Part II 00:06:11 Duration
Lecture 12 Promise Chaining 00:18:29 Duration
Lecture 13 Promise Chaining Challenge 00:07:08 Duration
Lecture 14 AsyncAwait 00:16:58 Duration
Lecture 15 AsyncAwait Part II 00:11:27 Duration
Lecture 16 Integrating AsyncAwait 00:15:24 Duration
Lecture 17 Resource Updating Endpoints Part I 00:15:56 Duration
Lecture 18 Resource Updating Endpoints Part II 00:08:20 Duration
Lecture 19 Resource Deleting Endpoints 00:09:30 Duration
Lecture 20 Separate Route Files 00:14:07 Duration

Section 12 : API Authentication and Security (Task App)

Lecture 1 Separate Route Files 00:14:07 Duration
Lecture 2 Securely Storing Passwords Part I 00:10:53 Duration
Lecture 3 Securely Storing Passwords Part II 00:17:37 Duration
Lecture 4 Logging in Users 00:12:49 Duration
Lecture 5 JSON Web Tokens 00:10:25 Duration
Lecture 6 Generating Authentication Tokens 00:13:13 Duration
Lecture 7 Express Middleware 00:12:17 Duration
Lecture 8 Express Middleware 00:12:17 Duration
Lecture 9 Accepting Authentication Tokens 00:18:54 Duration
Lecture 10 Advanced Postman 00:16:14 Duration
Lecture 11 Logging Out 00:10:04 Duration
Lecture 12 Hiding Private Data 00:10:33 Duration
Lecture 13 Authenticating User Endpoints 00:11:49 Duration
Lecture 14 The UserTask Relationship 00:18:20 Duration
Lecture 15 Authenticating Task Endpoints 00:04:51 Duration
Lecture 16 Cascade Delete Tasks 00:14:45 Duration

Section 13 : Sorting, Pagination, and Filtering (Task App)

Lecture 1 Section Intro Sorting, Pagination, and Filtering 00:01:17 Duration
Lecture 2 Working with Timestamps 00:06:26 Duration
Lecture 3 Filtering Data 00:10:59 Duration
Lecture 4 Paginating Data 00:10:35 Duration
Lecture 5 Sorting Data 00:10:25 Duration

Section 14 : File Uploads (Task App)

Lecture 1 Section Intro File Uploads 00:00:54 Duration
Lecture 2 Adding Support for File Uploads 00:18:43 Duration
Lecture 3 Validating File Uploads 00:13:46 Duration
Lecture 4 Validation Challenge 00:03:47 Duration
Lecture 5 Handling Express Errors 00:07:53 Duration
Lecture 6 Adding Images to User Profile 00:14:29 Duration
Lecture 7 Serving up Files 00:07:05 Duration
Lecture 8 Auto-Cropping and Image Formatting 00:11:27 Duration

Section 15 : Sending Emails (Task App)

Lecture 1 Exploring SendGrid 00:16:23 Duration
Lecture 2 Sending Welcome and Cancelation Emails 00:15:54 Duration
Lecture 3 Environment Variables 00:18:31 Duration
Lecture 4 Creating a Production MongoDB Database 00:14:18 Duration

Section 16 : Testing Node

Lecture 1 Section Intro Testing Node 00:01:36 Duration
Lecture 2 Jest Testing Framework 00:15:10 Duration
Lecture 3 Writing Tests and Assertions 00:17:11 Duration
Lecture 4 Writing Your Own Tests 00:05:30 Duration
Lecture 5 Testing Asynchronous Code
Lecture 6 Testing an Express Application Part I 00:05:28 Duration
Lecture 7 Testing an Express Application Part II 00:13:48 Duration
Lecture 8 Jest Setup and Teardown 00:13:55 Duration
Lecture 9 Testing with Authentication 00:12:44 Duration
Lecture 10 Advanced Assertions 00:11:52 Duration
Lecture 11 Mocking Libraries 00:05:25 Duration
Lecture 12 Wrapping up User Tests 00:15:38 Duration
Lecture 13 Setup Task Test Suite 00:15:03 Duration
Lecture 14 Testing with Task Data 00:15:29 Duration
Lecture 15 Bonus Extra Test Ideas

Section 17 : Real-Time Web Applications with Socket

Lecture 1 Section Intro Real-Time Web Applications with Socket 00:00:40 Duration
Lecture 2 Creating the Chat App Project 00:12:51 Duration
Lecture 3 WebSockets 00:05:35 Duration
Lecture 4 Getting Started with Socket 00:11:16 Duration
Lecture 5 Socket 00:16:09 Duration
Lecture 6 Socket 00:14:18 Duration
Lecture 7 Broadcasting Events 00:05:43 Duration
Lecture 8 Sharing Your Location 00:14:26 Duration
Lecture 9 Event Acknowledgements 00:12:52 Duration
Lecture 10 Form and Button States 00:10:23 Duration
Lecture 11 Rendering Messages 00:11:44 Duration
Lecture 12 Rendering Location Messages 00:09:58 Duration
Lecture 13 Working with Time 00:19:29 Duration
Lecture 14 Timestamps for Location Messages 00:06:21 Duration
Lecture 15 Styling the Chat App 00:12:49 Duration
Lecture 16 Styling the Chat App 00:12:49 Duration
Lecture 17 Join Page 00:05:51 Duration
Lecture 18 Socket 00:13:56 Duration
Lecture 19 Storing Users Part I 00:16:19 Duration
Lecture 20 Storing Users Part II 00:07:17 Duration
Lecture 21 Tracking Users Joining and Leaving
Lecture 22 Sending Messages to Rooms 00:13:33 Duration
Lecture 23 Rendering User List 00:11:12 Duration
Lecture 24 Automatic Scrolling 00:14:53 Duration
Lecture 25 Deploying the Chat Application 00:07:14 Duration

Section 18 : Wrapping Up

Lecture 1 New Feature Ideas 00:03:55 Duration
Lecture 2 Bonus What should I learn next