Section 1 : Welcome

Lecture 1 Welcome to the Class! 6:55
Lecture 2 Grab the PDF Guide 1:1

Section 2 : Installing and Exploring Node

Lecture 3 Section Intro Installing and Exploring Node 0:54
Lecture 4 Installing Node 14:26
Lecture 5 What is Node 8:48
Lecture 6 Why Should I Use Node 15:19
Lecture 7 Your First Node 6:15

Section 3 : Node

Lecture 8 Section Intro Node 1:0
Lecture 9 Importing Node 16:3
Lecture 10 Importing Your Own Files 15:5
Lecture 11 Importing npm Modules 15:34
Lecture 12 Printing in Color 13:15
Lecture 13 Global npm Modules and nodemon 8:3

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

Lecture 14 Section Intro File System and Command Line Args 0:51
Lecture 15 Getting Input from Users 9:42
Lecture 16 Argument Parsing with Yargs Part I 14:20
Lecture 17 Argument Parsing with Yargs Part II 10:37
Lecture 18 Storing Data with JSON 17:10
Lecture 19 Adding a Note 17:22
Lecture 20 Removing a Note 14:55
Lecture 21 ES6 Aside Arrow Functions 14:14
Lecture 22 Refactoring to Use Arrow Functions 13:41
Lecture 23 Listing Notes 5:26
Lecture 24 Reading a Note 11:44

Section 5 : Debugging Node

Lecture 26 Debugging Node 17:4
Lecture 27 Error Messages 3:36

Section 6 : Asynchronous Node

Lecture 28 Section Intro Asynchronous Node 1:8
Lecture 29 Asynchronous Basics 7:54
Lecture 30 Call Stack, Callback Queue, and Event Loop 18:8
Lecture 31 Making HTTP Requests 23:46
Lecture 32 Customizing HTTP Requests 18:53
Lecture 33 An HTTP Request Challenge 17:46
Lecture 34 Handling Errors 17:48
Lecture 35 The Callback Function 15:30
Lecture 36 Callback Abstraction 18:47
Lecture 37 Callback Abstraction Challenge 14:49
Lecture 38 Callback Chaining 13:1
Lecture 39 ES6 Aside Object Property Shorthand and Destructuring 14:57
Lecture 40 Destructuring and Property Shorthand Challenge 12:38
Lecture 41 Bonus HTTP Requests Without a Library 15:27

Section 7 : Web Servers (Weather App)

Lecture 42 Section Intro Web Servers 1:33
Lecture 43 Hello Express! 18:15
Lecture 44 Serving up HTML and JSON 6:57
Lecture 45 Serving up Static Assets 14:43
Lecture 46 Serving up CSS, JS, Images, and More 11:24
Lecture 47 Dynamic Pages with Templating
Lecture 48 Customizing the Views Directory 7:18
Lecture 49 Advanced Templating 15:31
Lecture 50 404 Pages 13:27
Lecture 51 Styling the Application Part I 16:25
Lecture 52 Styling the Application Part II 13:13

Section 8 : Accessing API from Browser (Weather App)

Lecture 53 Section Intro Accessing API from Browser 0:42
Lecture 54 The Query String 16:59
Lecture 55 Building a JSON HTTP Endpoint 9:54
Lecture 56 ES6 Aside Default Function Parameters 11:18
Lecture 57 Browser HTTP Requests with Fetch 12:6
Lecture 58 Creating a Search Form 13:49
Lecture 59 Wiring up the User Interface 13:22

Section 9 : Application Deployment (Weather App)

Lecture 60 Section Intro Application Deployment 0:52
Lecture 61 Joining Heroku and GitHub 9:43
Lecture 62 Version Control with Git 7:42
Lecture 63 Exploring Git 6:24
Lecture 64 Integrating Git 16:28
Lecture 65 Setting up SSH Keys 8:14
Lecture 66 Pushing Code to GitHub 13:38
Lecture 67 Deploying Node 15:19
Lecture 68 New Feature Deployment Workflow 15:31
Lecture 69 Avoiding Global Modules 8:15

Section 10 : MongoDB and Promises (Task App)

Lecture 70 Section Intro Databases and Advanced Asynchronous Development 1:6
Lecture 71 MongoDB and NoSQL Databases 8:3
Lecture 72 Installing MongoDB on macOS and Linux 8:7
Lecture 73 Installing MongoDB on Windows 8:27
Lecture 74 Installing Database GUI Viewer 6:25
Lecture 75 Connecting and Inserting Documents 18:56
Lecture 76 Inserting Documents 16:38
Lecture 77 The ObjectID 15:9
Lecture 78 Querying Documents 17:9
Lecture 79 Promises 17:13
Lecture 80 Updating Documents 16:2
Lecture 81 Deleting Documents 7:7

Section 11 : REST APIs and Mongoose (Task App)

Lecture 82 Section Intro REST APIs and Mongoose 0:59
Lecture 83 Setting up Mongoose 15:39
Lecture 84 Creating a Mongoose Model 4:58
Lecture 85 Data Validation and Sanitization Part I 16:15
Lecture 86 Data Validation and Sanitization Part II 11:21
Lecture 87 Structuring a REST API 14:39
Lecture 88 Installing Postman 7:37
Lecture 89 Resource Creation Endpoints Part I 19:41
Lecture 90 Resource Creation Endpoints Part II 7:59
Lecture 91 Resource Reading Endpoints Part I 13:20
Lecture 92 Resource Reading Endpoints Part II 6:11
Lecture 93 Promise Chaining 18:29
Lecture 94 Promise Chaining Challenge 7:8
Lecture 95 AsyncAwait 16:58
Lecture 96 AsyncAwait Part II 11:27
Lecture 97 Integrating AsyncAwait 15:24
Lecture 98 Resource Updating Endpoints Part I 15:56
Lecture 99 Resource Updating Endpoints Part II 8:20
Lecture 100 Resource Deleting Endpoints 9:30
Lecture 101 Separate Route Files 14:7

Section 12 : API Authentication and Security (Task App)

Lecture 101 Separate Route Files 14:7
Lecture 103 Securely Storing Passwords Part I 10:53
Lecture 104 Securely Storing Passwords Part II 17:37
Lecture 105 Logging in Users 12:49
Lecture 106 JSON Web Tokens 10:25
Lecture 107 Generating Authentication Tokens 13:13
Lecture 108 Express Middleware 12:17
Lecture 108 Express Middleware 12:17
Lecture 109 Accepting Authentication Tokens 18:54
Lecture 110 Advanced Postman 16:14
Lecture 111 Logging Out 10:4
Lecture 112 Hiding Private Data 10:33
Lecture 113 Authenticating User Endpoints 11:49
Lecture 114 The UserTask Relationship 18:20
Lecture 115 Authenticating Task Endpoints 4:51
Lecture 116 Cascade Delete Tasks 14:45

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

Lecture 117 Section Intro Sorting, Pagination, and Filtering 1:17
Lecture 118 Working with Timestamps 6:26
Lecture 119 Filtering Data 10:59
Lecture 120 Paginating Data 10:35
Lecture 121 Sorting Data 10:25

Section 14 : File Uploads (Task App)

Lecture 122 Section Intro File Uploads 0:54
Lecture 123 Adding Support for File Uploads 18:43
Lecture 124 Validating File Uploads 13:46
Lecture 125 Validation Challenge 3:47
Lecture 126 Handling Express Errors 7:53
Lecture 127 Adding Images to User Profile 14:29
Lecture 128 Serving up Files 7:5
Lecture 129 Auto-Cropping and Image Formatting 11:27

Section 15 : Sending Emails (Task App)

Lecture 131 Exploring SendGrid 16:23
Lecture 132 Sending Welcome and Cancelation Emails 15:54
Lecture 133 Environment Variables 18:31
Lecture 134 Creating a Production MongoDB Database 14:18

Section 16 : Testing Node

Lecture 136 Section Intro Testing Node 1:36
Lecture 137 Jest Testing Framework 15:10
Lecture 138 Writing Tests and Assertions 17:11
Lecture 139 Writing Your Own Tests 5:30
Lecture 140 Testing Asynchronous Code
Lecture 141 Testing an Express Application Part I 5:28
Lecture 142 Testing an Express Application Part II 13:48
Lecture 143 Jest Setup and Teardown 13:55
Lecture 144 Testing with Authentication 12:44
Lecture 145 Advanced Assertions 11:52
Lecture 146 Mocking Libraries 5:25
Lecture 147 Wrapping up User Tests 15:38
Lecture 148 Setup Task Test Suite 15:3
Lecture 149 Testing with Task Data 15:29
Lecture 150 Bonus Extra Test Ideas

Section 17 : Real-Time Web Applications with Socket

Lecture 151 Section Intro Real-Time Web Applications with Socket 0:40
Lecture 152 Creating the Chat App Project 12:51
Lecture 153 WebSockets 5:35
Lecture 154 Getting Started with Socket 11:16
Lecture 155 Socket 16:9
Lecture 156 Socket 14:18
Lecture 157 Broadcasting Events 5:43
Lecture 158 Sharing Your Location 14:26
Lecture 159 Event Acknowledgements 12:52
Lecture 160 Form and Button States 10:23
Lecture 161 Rendering Messages 11:44
Lecture 162 Rendering Location Messages 9:58
Lecture 163 Working with Time 19:29
Lecture 164 Timestamps for Location Messages 6:21
Lecture 165 Styling the Chat App 12:49
Lecture 165 Styling the Chat App 12:49
Lecture 166 Join Page 5:51
Lecture 167 Socket 13:56
Lecture 168 Storing Users Part I 16:19
Lecture 169 Storing Users Part II 7:17
Lecture 170 Tracking Users Joining and Leaving
Lecture 171 Sending Messages to Rooms 13:33
Lecture 172 Rendering User List 11:12
Lecture 173 Automatic Scrolling 14:53
Lecture 174 Deploying the Chat Application 7:14

Section 18 : Wrapping Up

Lecture 176 New Feature Ideas 3:55
Lecture 177 Bonus What should I learn next