Section 1 : Introduction
|
Lecture 1 | INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM | |
|
Lecture 2 | What is Node | 00:04:42 Duration |
|
Lecture 3 | About Proctor Testing | |
|
Lecture 4 | Installing Node | 00:09:39 Duration |
|
Lecture 5 | Understanding the Role & Usage of Node | 00:07:33 Duration |
|
Lecture 6 | Course Outline | 00:08:03 Duration |
|
Lecture 7 | How To Get The Most Out Of The Course | 00:03:54 Duration |
|
Lecture 8 | Working with the REPL vs Using Files | 00:02:59 Duration |
|
Lecture 9 | Using the Attached Source Code |
Section 2 : Optional JavaScript - A Quick Refresher
|
Lecture 1 | Module Introduction | 00:01:38 Duration |
|
Lecture 2 | JavaScript in a Nutshell | 00:02:39 Duration |
|
Lecture 3 | Refreshing the Core Syntax | 00:04:38 Duration |
|
Lecture 4 | let & const | 00:02:30 Duration |
|
Lecture 5 | Understanding Arrow Functions | 00:05:22 Duration |
|
Lecture 6 | Working with Objects, Properties & Methods | 00:03:23 Duration |
|
Lecture 7 | Arrays & Array Methods | 00:04:20 Duration |
|
Lecture 8 | Arrays, Objects & Reference Types | 00:02:17 Duration |
|
Lecture 9 | Understanding Spread & Rest Operators | 00:06:46 Duration |
|
Lecture 10 | Destructuring | 00:05:41 Duration |
|
Lecture 11 | Async Code & Promises | 00:10:33 Duration |
|
Lecture 12 | Template Literals | |
|
Lecture 13 | Wrap Up | 00:00:51 Duration |
|
Lecture 14 | Useful Resources & Links |
Section 3 : Understanding the Basics
|
Lecture 1 | Module Introduction | 00:04:12 Duration |
|
Lecture 2 | How The Web Works | 00:01:51 Duration |
|
Lecture 3 | Creating a Node Server | 00:13:22 Duration |
|
Lecture 4 | The Node Lifecycle & Event Loop | 00:04:53 Duration |
|
Lecture 5 | Controlling the Node | |
|
Lecture 6 | Understanding Requests | 00:05:37 Duration |
|
Lecture 7 | Sending Responses | 00:03:10 Duration |
|
Lecture 8 | Request & Response Headers | |
|
Lecture 9 | Routing Requests | 00:05:48 Duration |
|
Lecture 10 | Redirecting Requests | 00:04:11 Duration |
|
Lecture 11 | Parsing Request Bodies | 00:11:12 Duration |
|
Lecture 12 | Understanding Event Driven Code Execution | 00:06:00 Duration |
|
Lecture 13 | Blocking and Non-Blocking Code | 00:05:04 Duration |
|
Lecture 14 | Node | 00:12:01 Duration |
|
Lecture 15 | Using the Node Modules System | 00:10:06 Duration |
|
Lecture 16 | Wrap Up | 00:05:15 Duration |
|
Lecture 17 | Useful Resources & Links |
Section 4 : Improved Development Workflow and Debugging
|
Lecture 1 | Module Introduction | 00:00:40 Duration |
|
Lecture 2 | Understanding NPM Scripts | 00:07:04 Duration |
|
Lecture 3 | Installing 3rd Party Packages | 00:08:20 Duration |
|
Lecture 4 | Global Features vs Core Modules vs Third-Party Modules | |
|
Lecture 5 | Using Nodemon for Autorestarts | 00:01:37 Duration |
|
Lecture 6 | Global & Local npm Packages | |
|
Lecture 7 | Understanding different Error Types | 00:01:49 Duration |
|
Lecture 8 | Finding & Fixing Syntax Errors | 00:03:10 Duration |
|
Lecture 9 | Dealing with Runtime Errors | 00:02:47 Duration |
|
Lecture 10 | Logical Errors | 00:06:33 Duration |
|
Lecture 11 | Using the Debugger | 00:03:11 Duration |
|
Lecture 12 | Restarting the Debugger Automatically After Editing our App | 00:06:22 Duration |
|
Lecture 13 | Debugging Node | |
|
Lecture 14 | Changing Variables in the Debug Console | 00:01:26 Duration |
|
Lecture 15 | Wrap Up | 00:03:14 Duration |
|
Lecture 16 | Useful Resources & Links |
Section 5 : Working with Express
|
Lecture 1 | Module Introduction | 00:02:15 Duration |
|
Lecture 2 | What is Express | 00:03:44 Duration |
|
Lecture 3 | Installing Express | 00:03:47 Duration |
|
Lecture 4 | Adding Middleware | 00:05:14 Duration |
|
Lecture 5 | How Middleware Works | 00:02:59 Duration |
|
Lecture 6 | Express | 00:03:42 Duration |
|
Lecture 7 | Handling Different Routes | 00:04:59 Duration |
|
Lecture 8 | Parsing Incoming Requests | 00:08:00 Duration |
|
Lecture 9 | Limiting Middleware Execution to POST Requests | 00:01:49 Duration |
|
Lecture 10 | Using Express Router | 00:08:05 Duration |
|
Lecture 11 | Adding a 404 Error Page | 00:02:30 Duration |
|
Lecture 12 | Filtering Paths | 00:03:38 Duration |
|
Lecture 13 | Creating HTML Pages | 00:05:09 Duration |
|
Lecture 14 | Serving HTML Pages | 00:07:20 Duration |
|
Lecture 15 | Returning a 404 Page | 00:02:01 Duration |
|
Lecture 16 | A Hint! | |
|
Lecture 17 | Using a Helper Function for Navigation | 00:03:38 Duration |
|
Lecture 18 | Styling our Pages | 00:13:58 Duration |
|
Lecture 19 | Serving Files Statically | 00:07:49 Duration |
|
Lecture 20 | Wrap Up | 00:03:37 Duration |
|
Lecture 21 | Useful Resources & Links |
Section 6 : Working with Dynamic Content & Adding Templating Engines
|
Lecture 1 | Module Introduction | 00:02:31 Duration |
|
Lecture 2 | Sharing Data Across Requests & Users | 00:08:05 Duration |
|
Lecture 3 | Templating Engines - An Overview | 00:04:40 Duration |
|
Lecture 4 | Installing & Implementing Pug | 00:11:04 Duration |
|
Lecture 5 | Outputting Dynamic Content | 00:11:03 Duration |
|
Lecture 6 | Official Pug Docs | |
|
Lecture 7 | Converting HTML Files to Pug | 00:05:56 Duration |
|
Lecture 8 | Adding a Layout | 00:05:35 Duration |
|
Lecture 9 | Finishing the Pug Template | 00:05:50 Duration |
|
Lecture 10 | Avoiding an Error | |
|
Lecture 11 | Working with Handlebars | 00:05:08 Duration |
|
Lecture 12 | Converting our Project to Handlebars | 00:07:41 Duration |
|
Lecture 13 | Adding the Layout to Handlebars | 00:08:41 Duration |
|
Lecture 14 | Working with EJS | 00:08:19 Duration |
|
Lecture 15 | Working on the Layout with Partials | 00:09:33 Duration |
|
Lecture 16 | Wrap Up | 00:03:47 Duration |
|
Lecture 17 | [OPTIONAL] Assignment Solution | 00:25:02 Duration |
|
Lecture 18 | Useful Resources & Links |
Section 7 : The Model View Controller (MVC)
|
Lecture 1 | Module Introduction | 00:00:52 Duration |
|
Lecture 2 | What is the MVC | 00:02:49 Duration |
|
Lecture 3 | Adding Controllers | 00:09:21 Duration |
|
Lecture 4 | Finishing the Controllers | 00:02:37 Duration |
|
Lecture 5 | Adding a Product Model | 00:08:05 Duration |
|
Lecture 6 | Storing Data in Files Via the Model | 00:09:39 Duration |
|
Lecture 7 | Fetching Data from Files Via the Model | 00:03:56 Duration |
|
Lecture 8 | Refactoring the File Storage Code | 00:04:25 Duration |
|
Lecture 9 | Wrap Up | 00:02:15 Duration |
|
Lecture 10 | Useful Resources & Links |
Section 8 : Optional Enhancing the App
|
Lecture 1 | Module Introduction | 00:01:21 Duration |
|
Lecture 2 | Creating the Shop Structure | 00:05:35 Duration |
|
Lecture 3 | Working on the Navigation | 00:02:50 Duration |
|
Lecture 4 | Registering the Routes | 00:11:05 Duration |
|
Lecture 5 | Storing Product Data | 00:05:16 Duration |
|
Lecture 6 | Displaying Product Data | 00:03:02 Duration |
|
Lecture 7 | Editing & Deleting Products | 00:04:48 Duration |
|
Lecture 8 | Adding Another Item | 00:02:08 Duration |
|
Lecture 9 | Useful Resources & Links |
Section 9 : Dynamic Routes & Advanced Models
|
Lecture 1 | Module Introduction | 00:01:07 Duration |
|
Lecture 2 | Preparations | 00:01:24 Duration |
|
Lecture 3 | Applied Changes | |
|
Lecture 4 | Adding the Product ID to the Path | 00:04:34 Duration |
|
Lecture 5 | Extracting Dynamic Params | 00:04:32 Duration |
|
Lecture 6 | Loading Product Detail Data | 00:04:53 Duration |
|
Lecture 7 | Rendering the Product Detail View | 00:05:27 Duration |
|
Lecture 8 | Passing Data with POST Requests | 00:07:19 Duration |
|
Lecture 9 | Adding a Cart Model | 00:12:29 Duration |
|
Lecture 10 | Using Query Params | 00:07:55 Duration |
|
Lecture 11 | Pre-Populating the Edit Product Page with Data | 00:06:46 Duration |
|
Lecture 12 | Linking to the Edit Page | 00:02:20 Duration |
|
Lecture 13 | Editing the Product Data | 00:08:59 Duration |
|
Lecture 14 | Adding the Product-Delete Functionality | 00:05:35 Duration |
|
Lecture 15 | Deleting Cart Items | 00:08:11 Duration |
|
Lecture 16 | Displaying Cart Items on the Cart Page | 00:08:45 Duration |
|
Lecture 17 | Deleting Cart Items | 00:05:25 Duration |
|
Lecture 18 | Fixing a Delete Product Bug | 00:01:32 Duration |
|
Lecture 19 | Wrap Up | 00:01:46 Duration |
|
Lecture 20 | Useful Resources & Links |
Section 10 : SQL Introduction
|
Lecture 1 | Module Introduction | 00:01:33 Duration |
|
Lecture 2 | Choosing a Database | 00:04:18 Duration |
|
Lecture 3 | NoSQL Introduction | 00:04:21 Duration |
|
Lecture 4 | Comparing SQL and NoSQL | 00:05:06 Duration |
|
Lecture 5 | Setting Up MySQL | 00:07:16 Duration |
|
Lecture 6 | Connecting our App to the SQL Database | 00:06:50 Duration |
|
Lecture 7 | Basic SQL & Creating a Table | 00:04:08 Duration |
|
Lecture 8 | Retrieving Data | 00:03:00 Duration |
|
Lecture 9 | Fetching Products | 00:06:31 Duration |
|
Lecture 10 | Fetching Products - Time to Practice | 00:01:04 Duration |
|
Lecture 11 | Inserting Data Into the Database | 00:04:12 Duration |
|
Lecture 12 | Fetching a Single Product with the where Condition | 00:02:57 Duration |
|
Lecture 13 | Wrap Up | 00:01:25 Duration |
|
Lecture 14 | Useful Resources & Links |
Section 11 : Understanding Sequelize
Section 12 : Working with NoSQL & Using MongoDB
|
Lecture 1 | Module Introduction | 00:01:17 Duration |
|
Lecture 2 | What is MongoDB | 00:03:57 Duration |
|
Lecture 3 | Relations in NoSQL | 00:03:58 Duration |
|
Lecture 4 | Setting Up MongoDB | 00:04:48 Duration |
|
Lecture 5 | Installing the MongoDB Driver | 00:07:02 Duration |
|
Lecture 6 | Creating the Database Connection | 00:03:25 Duration |
|
Lecture 7 | Finishing the Database Connection | 00:04:21 Duration |
|
Lecture 8 | Using the Database Connection | 00:05:15 Duration |
|
Lecture 9 | Creating Products | 00:02:08 Duration |
|
Lecture 10 | Understanding the MongoDB Compass | 00:02:38 Duration |
|
Lecture 11 | Fetching All Products | 00:04:35 Duration |
|
Lecture 12 | Fetching a Single Product | 00:07:45 Duration |
|
Lecture 13 | Making the Edit & Delete Buttons Work Again | 00:02:22 Duration |
|
Lecture 14 | Working on the Product Model to Edit our Product | 00:07:14 Duration |
|
Lecture 15 | Finishing the Update Product Code | 00:03:57 Duration |
|
Lecture 16 | One Note About Updating Products | 00:01:47 Duration |
|
Lecture 17 | Deleting Products | 00:03:30 Duration |
|
Lecture 18 | Fixing the Add Product Functionality | 00:01:28 Duration |
|
Lecture 19 | Creating New Users | 00:07:00 Duration |
|
Lecture 20 | Storing the User in our Database | 00:05:40 Duration |
|
Lecture 21 | Working on Cart Items & Orders | 00:07:13 Duration |
|
Lecture 22 | Adding the Add to Cart Functionality | |
|
Lecture 23 | Storing Multiple Products in the Cart | 00:07:01 Duration |
|
Lecture 24 | Displaying the Cart Items | |
|
Lecture 25 | Fixing a Bug | 00:01:02 Duration |
|
Lecture 26 | Deleting Cart Items | 00:04:02 Duration |
|
Lecture 27 | Adding an Order | 00:04:37 Duration |
|
Lecture 28 | Adding Relational Order Data | 00:06:22 Duration |
|
Lecture 29 | Getting Orders | 00:03:21 Duration |
|
Lecture 30 | Removing Deleted Items From the Cart | 00:02:59 Duration |
|
Lecture 31 | Wrap Up | 00:02:19 Duration |
|
Lecture 32 | Useful Resources & Links | |
|
Lecture 33 | Two Adjustments (behind the scenes) |
Section 13 : Working with Mongoose
|
Lecture 1 | Module Introduction | 00:01:24 Duration |
|
Lecture 2 | What is Mongoose | 00:02:05 Duration |
|
Lecture 3 | Connecting to the MongoDB Server with Mongoose | 00:04:47 Duration |
|
Lecture 4 | Creating the Product Schema | 00:06:01 Duration |
|
Lecture 5 | Saving Data Through Mongoose | 00:06:11 Duration |
|
Lecture 6 | Fetching All Products | 00:02:28 Duration |
|
Lecture 7 | Fetching a Single Product | 00:01:25 Duration |
|
Lecture 8 | Updating Products | 00:04:14 Duration |
|
Lecture 9 | Deleting Products | 00:01:20 Duration |
|
Lecture 10 | Adding and Using a User Model | 00:06:36 Duration |
|
Lecture 11 | Using Relations in Mongoose | 00:03:44 Duration |
|
Lecture 12 | One Important Thing About Fetching Relations | 00:03:54 Duration |
|
Lecture 13 | Working on the Shopping Cart | 00:05:25 Duration |
|
Lecture 14 | Loading the Cart | 00:05:12 Duration |
|
Lecture 15 | Deleting Cart Items | |
|
Lecture 16 | Creating & Getting Orders | 00:09:57 Duration |
|
Lecture 17 | Storing All Order Related Data | 00:01:52 Duration |
|
Lecture 18 | Clearing the Cart After Storing an Order | 00:01:59 Duration |
|
Lecture 19 | Getting & Displaying the Orders | 00:03:41 Duration |
|
Lecture 20 | Wrap Up | 00:01:37 Duration |
|
Lecture 21 | Useful Resources & Links |
Section 14 : Sessions & Cookies
|
Lecture 1 | Module Introduction | 00:00:46 Duration |
|
Lecture 2 | What is a Cookie | 00:01:58 Duration |
|
Lecture 3 | The Current Project Status | 00:02:18 Duration |
|
Lecture 4 | Optional Creating the Login Form | 00:06:23 Duration |
|
Lecture 5 | Adding the Request Driven Login Solution | 00:07:41 Duration |
|
Lecture 6 | Setting a Cookie | 00:05:55 Duration |
|
Lecture 7 | Manipulating Cookies | 00:01:58 Duration |
|
Lecture 8 | Configuring Cookies | 00:05:44 Duration |
|
Lecture 9 | What is a Session | 00:02:59 Duration |
|
Lecture 10 | Initializing the Session Middleware | 00:02:44 Duration |
|
Lecture 11 | Using the Session Middleware | 00:04:14 Duration |
|
Lecture 12 | Using MongoDB to Store Sessions | 00:06:00 Duration |
|
Lecture 13 | Sessions & Cookies - A Short Summary | 00:01:53 Duration |
|
Lecture 14 | Deleting a Cookie | 00:04:35 Duration |
|
Lecture 15 | Fixing Some Minor Bugs | 00:04:28 Duration |
|
Lecture 16 | Making Add to Cart Work Again | 00:06:46 Duration |
|
Lecture 17 | Two Tiny Improvements | 00:03:12 Duration |
|
Lecture 18 | Wrap Up | 00:03:43 Duration |
|
Lecture 19 | Code Adjustments | |
|
Lecture 20 | Useful Resources & Links |
Section 15 : Adding Authentication
|
Lecture 1 | Module Introduction | |
|
Lecture 2 | What is Authentication | 00:01:23 Duration |
|
Lecture 3 | How is Authentication Implemented | 00:02:05 Duration |
|
Lecture 4 | Our Updated Project Status | 00:02:26 Duration |
|
Lecture 5 | Implementing an Authentication Flow | 00:07:35 Duration |
|
Lecture 6 | Encrypting Passwords | 00:04:36 Duration |
|
Lecture 7 | Adding a Tiny Code Improvement | 00:01:21 Duration |
|
Lecture 8 | Adding the Signin Functionality | 00:06:22 Duration |
|
Lecture 9 | Working on Route Protection | 00:02:13 Duration |
|
Lecture 10 | Using Middleware to Protect Routes | 00:04:38 Duration |
|
Lecture 11 | Understanding CSRF Attacks | 00:03:23 Duration |
|
Lecture 12 | Using a CSRF Token | 00:06:57 Duration |
|
Lecture 13 | Adding CSRF Protection | 00:04:24 Duration |
|
Lecture 14 | Fixing the Order Button | 00:01:17 Duration |
|
Lecture 15 | Providing User Feedback | 00:07:10 Duration |
|
Lecture 16 | Optional Styling Error Messages | 00:03:33 Duration |
|
Lecture 17 | Finishing the Flash Messages | 00:02:20 Duration |
|
Lecture 18 | Adding Additional Flash Messages | 00:02:21 Duration |
|
Lecture 19 | Wrap Up | 00:02:32 Duration |
|
Lecture 20 | Useful Resources & Links |
Section 16 : Sending Emails
|
Lecture 1 | Module Introduction | 00:00:47 Duration |
|
Lecture 2 | How Does Sending Emails Work | 00:01:34 Duration |
|
Lecture 3 | Using SendGrid | 00:01:25 Duration |
|
Lecture 4 | Using Nodemailer to Send an Email | 00:05:10 Duration |
|
Lecture 5 | Potential Limitation for Large Scale Apps | 00:01:29 Duration |
|
Lecture 6 | Useful Resources & Links |
Section 17 : Advanced Authentication
|
Lecture 1 | Module Introduction | 00:00:42 Duration |
|
Lecture 2 | Resetting Passwords | 00:03:03 Duration |
|
Lecture 3 | Implementing the Token Logic | 00:07:41 Duration |
|
Lecture 4 | Creating the Token | 00:01:28 Duration |
|
Lecture 5 | Creating the Reset Password Form | 00:05:27 Duration |
|
Lecture 6 | Adding Logic to Update the Password | 00:06:35 Duration |
|
Lecture 7 | Why we Need Authorization | 00:01:58 Duration |
|
Lecture 8 | Adding Authorization | 00:02:08 Duration |
|
Lecture 9 | Adding Protection to Post Actions | 00:03:43 Duration |
|
Lecture 10 | Why Editing Fails | 00:01:06 Duration |
|
Lecture 11 | Wrap Up | 00:01:46 Duration |
|
Lecture 12 | Useful Resources & Links |
Section 18 : Understanding Validation
|
Lecture 1 | Module Introduction | 00:01:03 Duration |
|
Lecture 2 | Why Should We Use Validation | 00:02:28 Duration |
|
Lecture 3 | How to Validate Input | 00:04:04 Duration |
|
Lecture 4 | Setup & Basic Validation | 00:10:44 Duration |
|
Lecture 5 | Using Validation Error Messages | 00:02:12 Duration |
|
Lecture 6 | Built-In & Custom Validators | 00:03:55 Duration |
|
Lecture 7 | More Validators | 00:04:26 Duration |
|
Lecture 8 | Checking For Field Equality | 00:03:15 Duration |
|
Lecture 9 | Adding Async Validation | 00:04:46 Duration |
|
Lecture 10 | Keeping User Input | 00:04:12 Duration |
|
Lecture 11 | Adding Conditional CSS Classes | 00:05:30 Duration |
|
Lecture 12 | Adding Validation to Login | 00:05:37 Duration |
|
Lecture 13 | Sanitizing Data | 00:03:42 Duration |
|
Lecture 14 | Validating Product Addition | 00:11:41 Duration |
|
Lecture 15 | Validating Product Editing | 00:06:57 Duration |
|
Lecture 16 | Wrap Up | 00:01:23 Duration |
|
Lecture 17 | Useful Resources & Links |
Section 19 : Error Handling
|
Lecture 1 | Module Introduction | 00:00:45 Duration |
|
Lecture 2 | Types of Errors & Error Handling | 00:05:15 Duration |
|
Lecture 3 | Analyzing the Error Handling in the Current Project | 00:02:05 Duration |
|
Lecture 4 | Errors - Some Theory | 00:06:43 Duration |
|
Lecture 5 | Throwing Errors in Code | 00:02:43 Duration |
|
Lecture 6 | Returning Error Pages | 00:06:55 Duration |
|
Lecture 7 | Using the Express | 00:05:47 Duration |
|
Lecture 8 | Updating the App | 00:03:10 Duration |
|
Lecture 9 | Using the Error Handling Middleware Correctly | 00:04:55 Duration |
|
Lecture 10 | Status Codes | 00:05:58 Duration |
|
Lecture 11 | Available Status Codes | |
|
Lecture 12 | Wrap Up | 00:02:21 Duration |
|
Lecture 13 | Useful Resources & Links |
Section 20 : File Upload & Download
|
Lecture 1 | Module Introduction | 00:00:55 Duration |
|
Lecture 2 | Adding a File Picker to the Frontend | 00:03:07 Duration |
|
Lecture 3 | Handling Multipart Form Data | 00:05:15 Duration |
|
Lecture 4 | Handling File Uploads with Multer | 00:04:52 Duration |
|
Lecture 5 | Configuring Multer to Adjust Filename & Filepath | 00:04:29 Duration |
|
Lecture 6 | Filtering Files by Mimetype | 00:02:28 Duration |
|
Lecture 7 | Storing File Data in the Database | 00:07:42 Duration |
|
Lecture 8 | Remove imageUrl from Add Product | |
|
Lecture 9 | Serving Images Statically | 00:04:25 Duration |
|
Lecture 10 | Downloading Files with Authentication | 00:07:34 Duration |
|
Lecture 11 | Setting File Type Headers | 00:02:35 Duration |
|
Lecture 12 | Restricting File Access | 00:03:19 Duration |
|
Lecture 13 | Streaming Data vs Preloading Data | 00:03:20 Duration |
|
Lecture 14 | Using PDFKit for | 00:05:32 Duration |
|
Lecture 15 | Generating | 00:06:51 Duration |
|
Lecture 16 | Deleting Files | 00:05:57 Duration |
|
Lecture 17 | Fixing Invoice Links | 00:00:35 Duration |
|
Lecture 18 | Wrap Up | 00:01:31 Duration |
|
Lecture 19 | Useful Resources & Links |
Section 21 : Adding Pagination
|
Lecture 1 | Module Introduction | 00:00:49 Duration |
|
Lecture 2 | Adding Pagination Links | 00:04:09 Duration |
|
Lecture 3 | Retrieving a Chunk of Data | 00:03:48 Duration |
|
Lecture 4 | Skip & Limit with SQL | |
|
Lecture 5 | Preparing Pagination Data on the Server | 00:03:52 Duration |
|
Lecture 6 | Adding Dynamic Pagination Buttons | 00:08:07 Duration |
|
Lecture 7 | Re-Using the Pagination Logic & Controls | 00:03:41 Duration |
|
Lecture 8 | Wrap Up | 00:01:02 Duration |
|
Lecture 9 | Useful Resources & Links |
Section 22 : Understanding Async Requests
|
Lecture 1 | Module Introduction | 00:00:49 Duration |
|
Lecture 2 | What are Async Requests | 00:02:07 Duration |
|
Lecture 3 | Adding Client Side JS Code | 00:07:24 Duration |
|
Lecture 4 | The JSON Data Format | |
|
Lecture 5 | Sending & Handling Background Requests | 00:09:26 Duration |
|
Lecture 6 | Manipulating the DOM | 00:03:02 Duration |
|
Lecture 7 | Useful Resources & Links |
Section 23 : Adding Payments
|
Lecture 1 | Module Introduction | 00:00:58 Duration |
|
Lecture 2 | How Payments Work | 00:02:04 Duration |
|
Lecture 3 | Adding a Checkout Page | 00:06:01 Duration |
|
Lecture 4 | Using Stripe in Your App | 00:19:23 Duration |
|
Lecture 5 | Useful Resources & Links |
Section 24 : Working with REST APIs - The Basics
|
Lecture 1 | Module Introduction | 00:01:26 Duration |
|
Lecture 2 | What are REST APIs and why do we use Them | 00:01:40 Duration |
|
Lecture 3 | Accessing Data with REST APIs | 00:05:42 Duration |
|
Lecture 4 | Understanding Routing & HTTP Methods | 00:05:26 Duration |
|
Lecture 5 | REST APIs - The Core Principles | 00:04:09 Duration |
|
Lecture 6 | Creating our REST API Project & Implementing the Route Setup | 00:06:42 Duration |
|
Lecture 7 | INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM | |
|
Lecture 8 | REST APIs, Clients & CORS Errors | 00:10:33 Duration |
|
Lecture 9 | Sending POST Requests | 00:06:32 Duration |
|
Lecture 10 | Wrap Up | 00:02:15 Duration |
|
Lecture 11 | Useful Resources & Links |
Section 25 : Working with REST APIs - The Practical Application
|
Lecture 1 | Module Introduction | 00:01:10 Duration |
|
Lecture 2 | REST APIs & The Rest Of The Course | 00:04:00 Duration |
|
Lecture 3 | Understanding the Frontend Setup | 00:04:18 Duration |
|
Lecture 4 | Planning the API | 00:03:03 Duration |
|
Lecture 5 | Fetching Lists of Posts | 00:06:19 Duration |
|
Lecture 6 | Adding a Create Post Endpoint | 00:07:36 Duration |
|
Lecture 7 | Adding Server Side Validation | 00:06:19 Duration |
|
Lecture 8 | Setting Up a Post Model | 00:05:14 Duration |
|
Lecture 9 | Storing Posts in the Database | 00:03:32 Duration |
|
Lecture 10 | Static Images & Error Handling | 00:06:53 Duration |
|
Lecture 11 | Fetching a Single Post | 00:07:48 Duration |
|
Lecture 12 | Image Names & Windows | |
|
Lecture 13 | Uploading Images | 00:08:34 Duration |
|
Lecture 14 | Updating Posts | 00:14:02 Duration |
|
Lecture 15 | Deleting Posts | 00:04:17 Duration |
|
Lecture 16 | Adding Pagination | 00:06:20 Duration |
|
Lecture 17 | Adding a User Model | 00:04:08 Duration |
|
Lecture 18 | Adding User Signup Validation | 00:06:29 Duration |
|
Lecture 19 | Signing Users Up | 00:07:24 Duration |
|
Lecture 20 | How Does Authentication Work | 00:03:10 Duration |
|
Lecture 21 | Starting with User Login | 00:03:51 Duration |
|
Lecture 22 | Logging In & Creating JSON Web Tokens (JWTs) | 00:07:54 Duration |
|
Lecture 23 | Using & Validating the Token | 00:09:43 Duration |
|
Lecture 24 | Adding Auth Middleware to All Routes | 00:01:52 Duration |
|
Lecture 25 | Connecting Posts & Users | 00:06:14 Duration |
|
Lecture 26 | Adding Authorization Checks | 00:03:51 Duration |
|
Lecture 27 | Clearing Post-User Relations | 00:02:54 Duration |
|
Lecture 28 | Wrap Up | 00:02:29 Duration |
|
Lecture 29 | Useful Resources & Links |
Section 26 : Understanding Async Await in Node
|
Lecture 1 | Module Introduction | 00:00:59 Duration |
|
Lecture 2 | What is Async Await All About | 00:03:01 Duration |
|
Lecture 3 | Transforming Then Catch to Async Await | 00:04:26 Duration |
|
Lecture 4 | Top-level await | 00:01:18 Duration |
|
Lecture 5 | The User Name is Missing! | |
|
Lecture 6 | Wrap Up | 00:03:04 Duration |
|
Lecture 7 | Useful Resources & Links |
Section 27 : Understanding Websockets & Socket
|
Lecture 1 | Module Introduction | 00:00:55 Duration |
|
Lecture 2 | What Are Websockets & Why Would You Use Them | 00:04:17 Duration |
|
Lecture 3 | Websocket Solutions - An Overview | 00:01:36 Duration |
|
Lecture 4 | Setting Up Socket | 00:03:56 Duration |
|
Lecture 5 | Establishing a Connection From the Client | 00:02:27 Duration |
|
Lecture 6 | Identifying Realtime Potential | 00:02:43 Duration |
|
Lecture 7 | Sharing the IO Instance Across Files | 00:02:47 Duration |
|
Lecture 8 | Synchronizing POST Additions | 00:07:14 Duration |
|
Lecture 9 | Fixing a Bug - The Missing Username | 00:01:45 Duration |
|
Lecture 10 | Updating Posts On All Connected Clients | 00:03:59 Duration |
|
Lecture 11 | Sorting Correctly | 00:01:00 Duration |
|
Lecture 12 | Deleting Posts Across Clients | 00:02:32 Duration |
|
Lecture 13 | Wrap Up | 00:01:49 Duration |
|
Lecture 14 | Useful Resources & Links |
Section 28 : Working with GraphQL
|
Lecture 1 | Module Introduction | 00:00:57 Duration |
|
Lecture 2 | What is GraphQL | |
|
Lecture 3 | Understanding the Setup & Writing our First Query | 00:11:15 Duration |
|
Lecture 4 | Defining a Mutation Schema | 00:05:43 Duration |
|
Lecture 5 | Adding a Mutation Resolver & GraphiQL | 00:09:43 Duration |
|
Lecture 6 | Adding Input Validation | 00:04:20 Duration |
|
Lecture 7 | Handling Errors | 00:03:46 Duration |
|
Lecture 8 | Connecting the Frontend to the GraphQL API | 00:06:49 Duration |
|
Lecture 9 | Adding a Login Query & a Resolver | 00:06:21 Duration |
|
Lecture 10 | Adding Login Functionality | 00:04:57 Duration |
|
Lecture 11 | Adding a Create Post Mutation | 00:07:23 Duration |
|
Lecture 12 | Extracting User Data From the Auth Token | 00:05:49 Duration |
|
Lecture 13 | Sending the Create Post Query | 00:04:46 Duration |
|
Lecture 14 | Fixing a Bug & Adding New Posts Correctly | 00:02:54 Duration |
|
Lecture 15 | Adding a Get Post Query & Resolver | 00:04:53 Duration |
|
Lecture 16 | Sending Create Post and Get Post Queries | 00:05:14 Duration |
|
Lecture 17 | Adding Pagination | 00:04:28 Duration |
|
Lecture 18 | Uploading Images | 00:10:27 Duration |
|
Lecture 19 | Fetching the imageUrl | |
|
Lecture 20 | Viewing a Single Post | 00:06:07 Duration |
|
Lecture 21 | Updating Posts | 00:09:32 Duration |
|
Lecture 22 | Deleting Posts | 00:09:26 Duration |
|
Lecture 23 | Adding Posts & Pagination | |
|
Lecture 24 | Managing the User Status | 00:09:17 Duration |
|
Lecture 25 | Using Variables | 00:16:06 Duration |
|
Lecture 26 | Fixing a Pagination Bug | 00:02:49 Duration |
|
Lecture 27 | Wrap Up | 00:03:36 Duration |
|
Lecture 28 | Useful Resources & Links |
Section 29 : Deploying our App
|
Lecture 1 | Module Introduction | 00:01:16 Duration |
|
Lecture 2 | Deploying Different Kinds of Apps | 00:01:39 Duration |
|
Lecture 3 | Deployment Preparations | 00:04:53 Duration |
|
Lecture 4 | Using Environment Variables | 00:11:12 Duration |
|
Lecture 5 | Using Production API Keys | 00:01:19 Duration |
|
Lecture 6 | Setting Secure Response Headers with Helmet | 00:02:41 Duration |
|
Lecture 7 | Compressing Assets | 00:02:33 Duration |
|
Lecture 8 | Setting Up Request Logging | 00:03:35 Duration |
|
Lecture 9 | More on Logging | |
|
Lecture 10 | Setting Up a SSL Server | 00:09:55 Duration |
|
Lecture 11 | Using a Hosting Provider | 00:04:25 Duration |
|
Lecture 12 | Understanding the Project & the Git Setup | 00:04:03 Duration |
|
Lecture 13 | A Deployment Example with Heroku | 00:10:26 Duration |
|
Lecture 14 | Storing User-generated Files on Heroku | |
|
Lecture 15 | Deploying APIs | 00:02:52 Duration |
|
Lecture 16 | Useful Resources & Links |
Section 30 : Testing Node
|
Lecture 1 | Module Introduction | 00:00:44 Duration |
|
Lecture 2 | What is Testing | 00:02:42 Duration |
|
Lecture 3 | Why & How | 00:03:26 Duration |
|
Lecture 4 | Setup and Writing a First Test | 00:09:40 Duration |
|
Lecture 5 | Testing the Auth Middleware | 00:12:33 Duration |
|
Lecture 6 | Organizing Multiple Tests | 00:04:12 Duration |
|
Lecture 7 | What Not To Test! | 00:08:03 Duration |
|
Lecture 8 | Using Stubs | 00:08:39 Duration |
|
Lecture 9 | Testing Controllers | 00:08:03 Duration |
|
Lecture 10 | Testing Asynchronous Code | 00:05:54 Duration |
|
Lecture 11 | Setting up a Testing Database | 00:06:34 Duration |
|
Lecture 12 | Testing Code With An Active Database | 00:06:33 Duration |
|
Lecture 13 | Cleaning Up | 00:03:29 Duration |
|
Lecture 14 | Hooks | 00:04:34 Duration |
|
Lecture 15 | Testing Code That Requires Authentication | 00:12:38 Duration |
|
Lecture 16 | Wrap Up & Mastering Tests | 00:04:23 Duration |
|
Lecture 17 | Useful Resources & Links |
Section 31 : Node
|
Lecture 1 | Module Introduction | 00:01:02 Duration |
|
Lecture 2 | npm & Node | 00:01:42 Duration |
|
Lecture 3 | Using npm | 00:07:52 Duration |
|
Lecture 4 | Versioning in package | |
|
Lecture 5 | What is a Build Tool | 00:05:02 Duration |
|
Lecture 6 | Using Node | 00:05:50 Duration |
|
Lecture 7 | Useful Resources & Links |
Section 32 : Modern JavaScript & NodeJS
|
Lecture 1 | Module Introduction | 00:02:28 Duration |
|
Lecture 2 | What is this Module About | 00:02:19 Duration |
|
Lecture 3 | Working with ES Modules & Node | 00:09:33 Duration |
|
Lecture 4 | More on ES Modules | 00:06:27 Duration |
|
Lecture 5 | Node Core Modules & Promises | 00:05:19 Duration |
|
Lecture 6 | Module Resources |
Section 33 : NodeJS & TypeScript
|
Lecture 1 | Module Introduction | 00:01:23 Duration |
|
Lecture 2 | TypeScript What & Why | 00:06:03 Duration |
|
Lecture 3 | TypeScript Setup | 00:04:09 Duration |
|
Lecture 4 | Assigning Types | 00:03:29 Duration |
|
Lecture 5 | Type Inference & Type Casting | 00:06:10 Duration |
|
Lecture 6 | Configuring TypeScript | 00:05:01 Duration |
|
Lecture 7 | Working with Union Types | 00:04:23 Duration |
|
Lecture 8 | Using Object & Array Types | 00:06:17 Duration |
|
Lecture 9 | Working with Type Aliases & Interfaces | 00:03:22 Duration |
|
Lecture 10 | Understanding Generics | 00:05:10 Duration |
|
Lecture 11 | A First Summary | 00:00:34 Duration |
|
Lecture 12 | Node & TypeScript Setup | 00:02:14 Duration |
|
Lecture 13 | Getting Started with Node and TypeScript | 00:09:31 Duration |
|
Lecture 14 | Writing TypeScript Express | 00:03:59 Duration |
|
Lecture 15 | Adding REST Routes with TypeScript | 00:06:42 Duration |
|
Lecture 16 | Finishing the REST Routes | 00:05:53 Duration |
|
Lecture 17 | Testing the API | 00:04:52 Duration |
|
Lecture 18 | Using Type Casting | 00:04:22 Duration |
|
Lecture 19 | Moving to a Better Project Structure | 00:03:45 Duration |
|
Lecture 20 | Wrap Up | 00:02:50 Duration |
|
Lecture 21 | Module Resources |
Section 34 : An Introduction to Deno
|
Lecture 1 | Module Introduction | 00:01:36 Duration |
|
Lecture 2 | What is Deno | 00:03:09 Duration |
|
Lecture 3 | Why Deno | 00:01:55 Duration |
|
Lecture 4 | Deno Setup | 00:05:51 Duration |
|
Lecture 5 | Writing First Deno Code | 00:04:18 Duration |
|
Lecture 6 | The Deno Runtime (Namespace) API | 00:03:13 Duration |
|
Lecture 7 | Using the Runtime API | 00:05:27 Duration |
|
Lecture 8 | Working with Deno Permissions | 00:04:31 Duration |
|
Lecture 9 | Repeating the Example with Node | 00:04:17 Duration |
|
Lecture 10 | How Deno Features Are Organized | 00:04:29 Duration |
|
Lecture 11 | Using the Standard Library | 00:08:30 Duration |
|
Lecture 12 | Creating a Webserver | 00:02:55 Duration |
|
Lecture 13 | Using the Oak Framework with Deno | 00:09:48 Duration |
|
Lecture 14 | More on Module URLs | |
|
Lecture 15 | An Example Node REST API | 00:12:15 Duration |
|
Lecture 16 | Re-building the REST API with Deno | 00:16:19 Duration |
|
Lecture 17 | Should You Switch From Node to Deno | 00:05:05 Duration |
|
Lecture 18 | Module Resources |
Section 35 : Deno, CRUD & Databases (MongoDB)
|
Lecture 1 | Module Introduction | 00:01:01 Duration |
|
Lecture 2 | App Setup | 00:04:07 Duration |
|
Lecture 3 | Handling CORS Errors | 00:07:16 Duration |
|
Lecture 4 | Connecting Deno to MongoDB | 00:08:05 Duration |
|
Lecture 5 | Using the MongoDB Client Module | 00:10:34 Duration |
|
Lecture 6 | Finishing the Deno MongoDB CRUD Operations | 00:05:29 Duration |
|
Lecture 7 | Wrap Up | 00:01:11 Duration |
|
Lecture 8 | Module Resources |
Section 36 : Roundup
|
Lecture 1 | Course Roundup | 00:02:40 Duration |
|
Lecture 2 | Course Slides |