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 |