Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай Epic Web. Ship Modern Full-Stack Web Applications, а также все другие курсы, прямо сейчас!
Премиум
  • Урок 1. 00:04:00
    01. Intro to Full Stack Foundations Workshop
  • Урок 2. 00:02:44
    02. Intro to Styling
  • Урок 3. 00:01:46
    03. Manage Asset Links in a Remix Application
  • Урок 4. 00:03:07
    04. Using Remix's Links Component
  • Урок 5. 00:04:16
    05. Asset Import Caching Issue
  • Урок 6. 00:03:55
    06. Caching the Favicon
  • Урок 7. 00:00:50
    07. Add Custom Fonts to the Global CSS
  • Урок 8. 00:02:35
    08. Adding Global Styles to a Remix App
  • Урок 9. 00:01:38
    09. Using PostCSS and Tailwind CSS in Remix
  • Урок 10. 00:05:18
    10. PostCSS and Tailwind CSS Configuration
  • Урок 11. 00:01:40
    11. Bundling CSS in Remix
  • Урок 12. 00:06:13
    12. Configure CSS Bundling
  • Урок 13. 00:00:19
    13. Dad Joke Break
  • Урок 14. 00:08:45
    14. Intro to Routing
  • Урок 15. 00:01:40
    15. Routing in Remix
  • Урок 16. 00:08:24
    16. Creating User Profile and Notes Pages with Remix Routes
  • Урок 17. 00:00:51
    17. Adding Navigation Links
  • Урок 18. 00:05:34
    18. Adding Absolute and Relative Links
  • Урок 19. 00:00:56
    19. Adding Dynamic Parameter Support
  • Урок 20. 00:03:58
    20. Access Params with useParams
  • Урок 21. 00:02:48
    21. Adding a Resource Route
  • Урок 22. 00:06:41
    22. Example Resource Route Usage
  • Урок 23. 00:00:33
    23. Dad Joke Break_2
  • Урок 24. 00:03:41
    24. Intro to Loading
  • Урок 25. 00:01:37
    25. Loading Data to Your Database
  • Урок 26. 00:11:31
    26. Efficient Data Loading in a Remix App
  • Урок 27. 00:01:17
    27. Handling Error Messages
  • Урок 28. 00:05:36
    28. Handling Error Responses with Remix
  • Урок 29. 00:00:30
    29. Dad Joke Break Loading
  • Урок 30. 00:07:43
    30. Intro to Mutations
  • Урок 31. 00:00:53
    31. Building Forms
  • Урок 32. 00:03:53
    32. Creating Form Components with Remix
  • Урок 33. 00:01:04
    33. Handling POST Requests for Form Submission
  • Урок 34. 00:06:26
    34. Handling Form Submissions and Mutations
  • Урок 35. 00:01:30
    35. Handling Form Errors and User Mistakes
  • Урок 36. 00:04:26
    36. Form Data Types and Validation
  • Урок 37. 00:01:04
    37. Button Forms Data
  • Урок 38. 00:03:34
    38. Form Submissions and Mutations
  • Урок 39. 00:01:01
    39. Handling Multiple Actions in a Single Action Function
  • Урок 40. 00:04:00
    40. Leveraging Name and Value in Buttons for Multiple Form Submissions
  • Урок 41. 00:00:17
    41. Dad Joke Break Mutations
  • Урок 42. 00:05:28
    42. Intro to Scripting
  • Урок 43. 00:02:25
    43. JavaScript in Remix- From Optional to Essential
  • Урок 44. 00:05:37
    44. Improving User Experience with Client-Side JavaScript
  • Урок 45. 00:01:29
    45. Page Navigation with Scroll Behavior
  • Урок 46. 00:02:04
    46. Enhancing Scroll Restoration
  • Урок 47. 00:07:24
    47. Environment Variables for Client-Side and Server-Side
  • Урок 48. 00:06:45
    48. Exposing Environment Variables in a Web Application
  • Урок 49. 00:02:09
    49. Optimizing Resource Loading with JavaScript Prefetching
  • Урок 50. 00:04:26
    50. Enhancing User Experience with Prefetching
  • Урок 51. 00:01:55
    51. Improve the UX with Pending UI
  • Урок 52. 00:06:37
    52. Adding Pending State to Form Submissions with Remix
  • Урок 53. 00:00:28
    53. Dad Joke Break Scripting
  • Урок 54. 00:03:43
    54. Intro to Search Engine Optimization (SEO)
  • Урок 55. 00:00:52
    55. Configuring Meta Tags
  • Урок 56. 00:02:18
    56. Meta Tags for Better SEO and UX
  • Урок 57. 00:00:36
    57. Dynamic Metadata for Different Routes
  • Урок 58. 00:04:51
    58. Managing Meta Tags and Descriptions in RemixRunReact
  • Урок 59. 00:01:24
    59. Customizing Meta Tags with Dynamic Data
  • Урок 60. 00:03:02
    60. Handling Dynamic Data with Remix's Meta Function
  • Урок 61. 00:01:41
    61. Optimizing Metadata for User Info
  • Урок 62. 00:08:41
    62. Implementing Dynamic Meta Data for Routes in a TypeScript Application
  • Урок 63. 00:00:29
    63. Dad Joke Break - SEO
  • Урок 64. 00:02:57
    64. Intro to Error Handling
  • Урок 65. 00:00:38
    65. Improving Error Handling and UI on User Profile Page
  • Урок 66. 00:05:38
    66. Error Handling and Error Boundaries
  • Урок 67. 00:01:55
    67. Handling Expected Errors with Error Boundaries
  • Урок 68. 00:02:28
    68. Improving Error Messages for User
  • Урок 69. 00:01:31
    69. Streamlining Error Handling in Routes with a General Error Boundary
  • Урок 70. 00:05:38
    70. Error Boundaries and Handling in Nested Routes
  • Урок 71. 00:02:11
    71. Improving Error Handling with a Document Component
  • Урок 72. 00:02:53
    72. Refactoring App Components for Better Error Handling
  • Урок 73. 00:02:01
    73. Handling 404 Errors in React Router with Splat Routes
  • Урок 74. 00:04:09
    74. Handling 404 Errors with Splat Routes in Remix
  • Урок 75. 00:00:32
    75. Dad Joke Break_3
  • Урок 76. 00:01:00
    76. Outro to Full Stack Foundations Workshop
  • Урок 77. 00:02:11
    01. Intro to Professional Web Forms Workshop
  • Урок 78. 00:01:32
    02. Intro to Form Validation
  • Урок 79. 00:00:52
    03. Required Field Validation for User Input
  • Урок 80. 00:01:52
    04. Form Validation for Accessibility
  • Урок 81. 00:01:20
    05. Server-side Validation and Custom Error Messages
  • Урок 82. 00:09:42
    06. Server-Side Form Validation and Error Handling
  • Урок 83. 00:00:49
    07. Dynamic Error Validation with Hooks
  • Урок 84. 00:02:44
    08. Form Validation with Client-Side Hydration
  • Урок 85. 00:00:21
    09. Dad Joke Break From Validation
  • Урок 86. 00:07:56
    10. Intro to Accessibility
  • Урок 87. 00:01:10
    11. Fixing Form Reset Button and Accessibility Issues
  • Урок 88. 00:06:12
    12. Improving Accessibility and Form Associations
  • Урок 89. 00:02:02
    13. Error Messages and Accessibility with ARIA Attributes
  • Урок 90. 00:05:51
    14. Accessible Forms with ARIA Attributes
  • Урок 91. 00:01:23
    15. Focus Management for Better User Experience
  • Урок 92. 00:07:34
    16. Managing Focus for Form Errors
  • Урок 93. 00:00:40
    17. Dad Break Joke Accessibility
  • Урок 94. 00:06:44
    18. Intro to Schema Validation
  • Урок 95. 00:00:30
    19. Schema Validation
  • Урок 96. 00:03:50
    20. Schema Validation with Zod
  • Урок 97. 00:01:09
    21. Form Data Parsing with Conform
  • Урок 98. 00:03:21
    22. Form Submission and Error Handling with Conform & Zod
  • Урок 99. 00:00:30
    23. Type Safety with Conform
  • Урок 100. 00:08:15
    24. Simplifying Form Handling with Conform and Schema Validation
  • Урок 101. 00:00:39
    25. Dad Joke Break Schema Validation
  • Урок 102. 00:05:09
    26. Intro to File Upload
  • Урок 103. 00:01:19
    27. File Upload Functionality
  • Урок 104. 00:12:27
    28. Image Upload with Form Data and Memory Upload Handling
  • Урок 105. 00:00:37
    29. TypeScript Integration
  • Урок 106. 00:05:43
    30. Validating File Uploads with Zod Schema in a Web Application
  • Урок 107. 00:01:00
    31. Dad Joke Break File Upload
  • Урок 108. 00:06:07
    32. Intro to Complex Structures
  • Урок 109. 00:00:47
    33. Grouping and Managing Related Fields in Form Objects
  • Урок 110. 00:10:42
    34. Implementing Image Field Set with Conform and TypeScript
  • Урок 111. 00:01:12
    35. Multiple Image Uploading
  • Урок 112. 00:04:57
    36. Dynamic Image Lists with Field Sets
  • Урок 113. 00:02:30
    37. Interactive Image Management
  • Урок 114. 00:10:21
    38. Dynamically Delete and Add Buttons
  • Урок 115. 00:00:29
    39. Dad Joke Break Complex Structures
  • Урок 116. 00:04:03
    40. Intro to Honeypot
  • Урок 117. 00:01:01
    41. Adding a Honeypot to Protect Against Spam Bots
  • Урок 118. 00:06:14
    42. Honeypot Fields in Sign Up Forms
  • Урок 119. 00:04:41
    43. Honeypot Fields for Form Security
  • Урок 120. 00:00:52
    44. Honeypots for Form Security
  • Урок 121. 00:04:01
    45. Honeypot Protection
  • Урок 122. 00:01:27
    46. Consistent Encryption with Honeypot Server
  • Урок 123. 00:03:10
    47. Setting Up Honeypot Security for Server Environment Variables
  • Урок 124. 00:00:33
    48. Dad Joke Break Honeypot
  • Урок 125. 00:05:08
    49. Intro to CSRF
  • Урок 126. 00:01:12
    50. CSRF Protection with Cookies
  • Урок 127. 00:09:05
    51. Creating and Managing CSRF Tokens With Node.js
  • Урок 128. 00:01:06
    52. Authenticity With Token Protection
  • Урок 129. 00:05:21
    53. Security with Authenticity Token and CSRF Validation
  • Урок 130. 00:00:14
    54. Dad Joke Break CSRF
  • Урок 131. 00:02:12
    55. Intro to Rate Limit
  • Урок 132. 00:01:14
    56. Optimizing Your Express Server with Rate Limiting Middleware
  • Урок 133. 00:04:33
    57. Safeguarding Your Server- Adding Rate Limit Configuration
  • Урок 134. 00:01:24
    58. Tiered Rate Limiting with Custom Middleware
  • Урок 135. 00:04:45
    59. Applying Rate Limiting
  • Урок 136. 00:00:34
    60. Dad Joke Break Rate Limit
  • Урок 137. 00:00:52
    61. Outro to Professional Web Forms Workshop
  • Урок 138. 00:02:11
    01. Intro to Data Modeling Deep Dive Workshop
  • Урок 139. 00:03:21
    02. Intro to Database Schema
  • Урок 140. 00:00:42
    03. Setting Up the Database with Prisma
  • Урок 141. 00:09:33
    04. Database with Prisma and SQLite
  • Урок 142. 00:00:32
    05. Dad Joke Break Database Schema
  • Урок 143. 00:06:16
    06. Intro to Data Relationships
  • Урок 144. 00:01:41
    07. One-to-Many Relationships
  • Урок 145. 00:06:26
    08. One-to-Many Relationships in Prisma
  • Урок 146. 00:05:50
    09. Database Design
  • Урок 147. 00:08:17
    10. One-to-One and One-to-Many Relationships in Prisma
  • Урок 148. 00:00:37
    11. Dad Joke Break Data Relationships
  • Урок 149. 00:05:22
    12. Intro to Data Migrations
  • Урок 150. 00:00:40
    13. Creating Migration Files for Database Management with Prisma
  • Урок 151. 00:05:22
    14. Database Migrations with Prisma
  • Урок 152. 00:00:35
    15. Dad Joke Break Data Migrations
  • Урок 153. 00:03:41
    16. Intro to Seeding Data
  • Урок 154. 00:00:35
    17. Configuring Prisma for Seed Script Execution
  • Урок 155. 00:03:55
    18. Creating and Managing Data with Prisma Seed Scripts
  • Урок 156. 00:01:09
    19. Optimizing Queries with Nested Mutations in Prisma
  • Урок 157. 00:01:53
    20. Nested Queries in Database Operations
  • Урок 158. 00:00:58
    21. Dad Joke Break Seeding Data
  • Урок 159. 00:01:53
    22. Intro to Generating Seed Data
  • Урок 160. 00:00:30
    23. Generating Fake Data for Efficient Testing
  • Урок 161. 00:01:43
    24. Generating Random User Data with Faker.js for Database Seeding
  • Урок 162. 00:02:20
    25. Dynamically Generating Data
  • Урок 163. 00:05:51
    26. Generating Dynamic Seed Data
  • Урок 164. 00:01:03
    27. Creating Unique User Data with Enforce Unique Library
  • Урок 165. 00:04:59
    28. Generating Unique and Valid Usernames in Seed Data
  • Урок 166. 00:00:31
    29. Dad Joke Break Generating Seed Data
  • Урок 167. 00:05:24
    30. Intro to Querying Data
  • Урок 168. 00:01:01
    31. Connecting to a Real Database with Prisma and SQLite
  • Урок 169. 00:07:29
    32. Optimizing Prisma Client for Efficient Database Operations
  • Урок 170. 00:00:35
    33. Transitioning to Real Database with Prisma API
  • Урок 171. 00:03:29
    34. Using Prisma to Retrieve User Data from a SQLite Database
  • Урок 172. 00:00:30
    35. Database Queries and Migrating to Prisma
  • Урок 173. 00:02:46
    36. Efficient Data Retrieval with Prisma and Subselects
  • Урок 174. 00:00:58
    37. Dad Joke Break Querying Data
  • Урок 175. 00:02:59
    38. Intro to Updating Data
  • Урок 176. 00:00:39
    39. Mutating Data with Prisma
  • Урок 177. 00:00:55
    40. Deleting Data with Prisma
  • Урок 178. 00:03:27
    41. Updating Page Mutations for Images and Notes with Efficient Cache Control
  • Урок 179. 00:05:13
    42. Efficiently Updating and Deleting Data in a Form with Prisma
  • Урок 180. 00:02:00
    43. Implementing Transactions for Reliable Data Operations
  • Урок 181. 00:02:50
    44. Implementing Transactions with Prisma for Atomic Database Operations
  • Урок 182. 00:00:38
    45. Optimizing Database Calls with Nested Queries in Prisma
  • Урок 183. 00:04:27
    46. Efficient Database Updates with Prisma's Nested Queries
  • Урок 184. 00:00:26
    47. Dad Joke Break Updating Data
  • Урок 185. 00:04:31
    48. Intro to SQL
  • Урок 186. 00:01:22
    49. SQL Queries for User Search in Prisma
  • Урок 187. 00:02:48
    50. User Search with Prisma and SQL
  • Урок 188. 00:01:28
    51. Handling TypeScript Errors and Runtime Type Checking with Prisma and Zod
  • Урок 189. 00:06:16
    52. Runtime Type Checking and Parsing in Prisma with Raw Queries
  • Урок 190. 00:03:10
    53. Working with Joins in SQL
  • Урок 191. 00:02:24
    54. Left Joins with Prisma and SQLite
  • Урок 192. 00:01:24
    55. Sorting Users by Recent Entry with Raw SQL
  • Урок 193. 00:03:57
    56. Leveraging AI Assistance for Writing SQL Queries
  • Урок 194. 00:00:29
    57. Dad Joke Break SQL
  • Урок 195. 00:12:19
    58. Intro to Query Optimization
  • Урок 196. 00:00:54
    59. Optimizing Query Performance with Indexes in Prisma
  • Урок 197. 00:05:07
    60. Optimizing Database Queries with Indexes
  • Урок 198. 00:02:29
    61. Optimizing User Search Query Performance with Indexing
  • Урок 199. 00:13:56
    62. Query Performance with Indexes in SQLite
  • Урок 200. 00:00:47
    63. Dad Joke Break Query Optimization
  • Урок 201. 00:00:28
    64. Outro to Data Modeling Deep Dive Workshop
  • Урок 202. 00:04:44
    01. Intro to Authentication Strategies & Implementation Workshop
  • Урок 203. 00:04:41
    02. Intro to Cookies
  • Урок 204. 00:01:48
    03. Implementing Theme Switching with Conform and UseFetcher
  • Урок 205. 00:03:58
    04. Creating a Theme Switcher with Form Submission and Fetcher in React
  • Урок 206. 00:00:41
    05. Adding User Preference for Dark Mode
  • Урок 207. 00:09:46
    06. Implementing Cookies for Theme Selection
  • Урок 208. 00:01:17
    07. Implementing Optimistic UI for Theme Switching
  • Урок 209. 00:05:16
    08. Implementing Optimistic UI with Remix
  • Урок 210. 00:00:38
    09. Dad Joke Break Cookies
  • Урок 211. 00:04:01
    10. Intro to Session Storage
  • Урок 212. 00:01:46
    11. Toast Messages with Cookies
  • Урок 213. 00:04:54
    12. Configuring Cookie Session Storage for Toast Messages
  • Урок 214. 00:00:46
    13. Adding Toast Notifications to Delete Functionality
  • Урок 215. 00:04:57
    14. Managing Toast Messages with Cookie Sessions
  • Урок 216. 00:00:39
    15. Improving Note Deletion Functionality with Multiple Cookies
  • Урок 217. 00:04:59
    16. Efficiently Updating and Serializing Cookies
  • Урок 218. 00:00:47
    17. Implementing Flash Messages for Temporary Notifications
  • Урок 219. 00:00:48
    18. Efficiently Removing Toast Messages with Flash API
  • Урок 220. 00:00:16
    19. Dad Joke Break Session Storage
  • Урок 221. 00:00:49
    20. Intro to User Sessions
  • Урок 222. 00:00:23
    21. Managing User Sessions with Separate Cookies
  • Урок 223. 00:01:15
    22. Secure Cookie Session Storage
  • Урок 224. 00:01:18
    23. User Authentication and Session Management
  • Урок 225. 00:06:21
    24. User Authentication and Session Management with Login Forms
  • Урок 226. 00:00:21
    25. Load User Avatars
  • Урок 227. 00:02:38
    26. Handling User Authentication and Session Management with Prisma
  • Урок 228. 00:00:30
    27. Dad Joke Break User Sessions
  • Урок 229. 00:04:46
    28. Intro to Password
  • Урок 230. 00:00:37
    29. Creating an Optional Password Model in Prisma Schema
  • Урок 231. 00:02:52
    30. Model Relationships and Handling Passwords in Database Schema
  • Урок 232. 00:00:58
    31. Generating Passwords for Secure User Creation
  • Урок 233. 00:03:41
    32. Secure Password Creation with Prisma
  • Урок 234. 00:00:21
    33. Enhancing User Creation by Adding Passwords
  • Урок 235. 00:01:47
    34. Creating and Hashing Passwords for User Sign-Up
  • Урок 236. 00:00:22
    35. Dad Joke Break Password
  • Урок 237. 00:03:59
    36. Intro to Login
  • Урок 238. 00:00:18
    37. Secure Password Authentication with bcrypt Compare in Node.js
  • Урок 239. 00:03:40
    38. Implementing Secure Password Verification in User Login
  • Урок 240. 00:00:45
    39. Securing UI Elements
  • Урок 241. 00:00:28
    40. Dad Joke Break Login
  • Урок 242. 00:08:40
    41. Leveraging Utility Functions for User Data Handling and UI Customization
  • Урок 243. 00:01:08
    42. Intro to Logout
  • Урок 244. 00:00:33
    43. Transforming a Logout Link into a Secure Logout Form
  • Урок 245. 00:03:55
    44. Logout Functionality with Session Storage and CSRF Protection
  • Урок 246. 00:02:59
    45. Implementing Remember Me Functionality for Login Sessions
  • Урок 247. 00:05:04
    46. Implementing Remember Me Functionality
  • Урок 248. 00:00:59
    47. Managing Inactive User Sessions
  • Урок 249. 00:01:31
    48. Destroying Sessions and Handling Weird States
  • Урок 250. 00:03:04
    49. Implementing Automatic Logout with Modals
  • Урок 251. 00:06:08
    50. Auto-Logout Functionality
  • Урок 252. 00:00:42
    51. Dad Joke Break Logout
  • Урок 253. 00:01:54
    52. Intro to Protecting Routes
  • Урок 254. 00:00:49
    53. Creating Protected Routes
  • Урок 255. 00:02:54
    54. Creating an Auth Utility
  • Урок 256. 00:01:06
    55. Building a Profile Page
  • Урок 257. 00:03:57
    56. User Authentication and Authorization
  • Урок 258. 00:01:22
    57. Securing User Access
  • Урок 259. 00:04:33
    58. Authorization and User Authentication
  • Урок 260. 00:02:05
    59. Redirect Functionality
  • Урок 261. 00:08:20
    60. Handling Redirects Safely in User Authentication
  • Урок 262. 00:00:32
    61. Dad Joke Break Protecting Routes
  • Урок 263. 00:03:38
    62. Intro to Permissions
  • Урок 264. 00:00:51
    63. Role-Based Access Control with Prisma
  • Урок 265. 00:06:36
    64. Modeling Permissions and Roles in Prisma Database
  • Урок 266. 00:01:54
    65. Managing Roles and Permissions
  • Урок 267. 00:07:51
    66. Seed Data
  • Урок 268. 00:01:34
    67. Implementing User Permissions and Authorization Logic
  • Урок 269. 00:10:35
    68. Implementing Role-Based Permissions
  • Урок 270. 00:01:13
    69. Securing Admin Pages with User Permissions
  • Урок 271. 00:09:44
    70. Implementing Role-based Access Control and Permissions
  • Урок 272. 00:00:39
    71. Dad Joke Break Permissions
  • Урок 273. 00:00:59
    72. Intro to Man Sessions
  • Урок 274. 00:00:53
    73. Managing User Sessions and Allowing Data Downloads
  • Урок 275. 00:01:57
    74. Integrating User Sessions into the Login Process
  • Урок 276. 00:00:49
    75. Implementing Session-Based Authentication
  • Урок 277. 00:06:44
    76. Authentication Logic with Session IDs and User Creation
  • Урок 278. 00:00:30
    77. Improving Login and Signup Flows with Session Management
  • Урок 279. 00:02:46
    78. Updating Login and Signup Routes to Use Sessions instead of User IDs
  • Урок 280. 00:01:18
    79. Proactive Session Management
  • Урок 281. 00:04:49
    80. Managing Sessions and Sign Out in Web Applications
  • Урок 282. 00:00:30
    81. Dad Joke Break Man Sessions
  • Урок 283. 00:03:33
    82. Intro to Email
  • Урок 284. 00:01:03
    83. Integrating Email Services
  • Урок 285. 00:05:19
    84. Sending Emails with the Resend API using Fetch
  • Урок 286. 00:01:46
    85. Mocking APIs with MSW and Testing
  • Урок 287. 00:12:12
    86. Setting Up a Mock Server with MSW Node
  • Урок 288. 00:01:33
    87. Email Verification Flow
  • Урок 289. 00:01:05
    88. User Verification Emails
  • Урок 290. 00:01:52
    89. Secure Email Transfer and Storage with Cookies for Onboarding
  • Урок 291. 00:07:54
    90. Passing Data Between Routes
  • Урок 292. 00:00:29
    91. Dad Joke Break Email
  • Урок 293. 00:05:12
    92. Intro to Verification
  • Урок 294. 00:00:43
    93. Implementing One-Time Password Verification with Database Storage
  • Урок 295. 00:04:10
    94. Creating a Verification Model in Prisma for User Verification
  • Урок 296. 00:02:03
    95. User Verification Workflow
  • Урок 297. 00:07:47
    96. Generating One-Time Passwords and Verification URLs in a Signup Flow
  • Урок 298. 00:01:07
    97. Implementing User Code Verification with TOTP
  • Урок 299. 00:12:20
    98. Verification Flow and Dynamic Query Parameters
  • Урок 300. 00:00:31
    99. Dad Joke Break Verification
  • Урок 301. 00:01:44
    100. Intro to Reset Password
  • Урок 302. 00:02:32
    101. Implementing Forgot Password and Reset Password Flows
  • Урок 303. 00:11:06
    102. Resetting Passwords and Handling Verification
  • Урок 304. 00:00:52
    103. User Authentication and Password Reset Flow
  • Урок 305. 00:05:59
    104. Secure Password Reset Flow Implementation
  • Урок 306. 00:00:46
    105. Dad Joke Break Reset Pass
  • Урок 307. 00:01:33
    106. Intro to Change Email
  • Урок 308. 00:00:57
    107. Implementing Email Verification for Changing Email Addresses
  • Урок 309. 00:04:33
    108. Implementing Email Change Verification
  • Урок 310. 00:00:26
    109. Handling Email Verification and Updates
  • Урок 311. 00:06:17
    110. Implementing a Secure Email Change Flow
  • Урок 312. 00:00:23
    111. Dad Joke Break Change Email
  • Урок 313. 00:02:12
    112. Intro to Enable Two-Factor Authentication
  • Урок 314. 00:01:02
    113. Implementing Two-Factor Authentication Verification
  • Урок 315. 00:04:22
    114. Two-Factor Authentication with TOTP Codes
  • Урок 316. 00:01:20
    115. Generating Two-Factor Authentication Codes and QR Codes
  • Урок 317. 00:05:09
    116. Generating QR Code and Auth URI for Two-Factor Authentication
  • Урок 318. 00:02:09
    117. Testing the Two-Factor Authentication Setup
  • Урок 319. 00:09:25
    118. Two-Factor Authentication Code Verification
  • Урок 320. 00:01:05
    119. Dad Joke Break Enable Two-Factor Authentication
  • Урок 321. 00:01:55
    120. Intro to Verify Two-Factor Authentication (2FA)
  • Урок 322. 00:00:37
    121. Two-Factor Authentication and Session Verification
  • Урок 323. 00:06:26
    122. Implementing Two-Factor Authentication Flow
  • Урок 324. 00:03:08
    123. Switching to Verified Session ID After Code Verification
  • Урок 325. 00:08:31
    124. Two-Factor Authentication Login in Node.js
  • Урок 326. 00:00:48
    125. Dad Joke Break Verify Two-Factor Authentication (2FA)
  • Урок 327. 00:02:49
    126. Intro to Two-Factor Authentication Check
  • Урок 328. 00:00:38
    127. Two-Factor Authentication Deletion
  • Урок 329. 00:01:26
    128. Disabling Two-Factor Authentication
  • Урок 330. 00:01:52
    129. Adding User Re-Verification for Critical Operations
  • Урок 331. 00:00:47
    130. Implementing Verification Age Check for Disable 2FA
  • Урок 332. 00:05:42
    131. Managing User Verification and Two-Factor Authentication
  • Урок 333. 00:04:08
    132. Redirecting Users to Re-verify for 2FA Disabling
  • Урок 334. 00:02:56
    133. Session Expiry Issue During 2FA Disablement Flow
  • Урок 335. 00:06:12
    134. Fixing Session Expiration Behavior in 2FA Disablement Flow
  • Урок 336. 00:00:32
    135. Dad Joke Break Two-Factor Authentication Check
  • Урок 337. 00:08:55
    136. Intro to Oauth
  • Урок 338. 00:01:33
    137. Integrating GitHub Authentication
  • Урок 339. 00:08:05
    138. Setting up OAuth Authentication with GitHub
  • Урок 340. 00:01:18
    139. Testing the OAuth Flow with GitHub Authentication
  • Урок 341. 00:07:39
    140. Implementing OAuth2 Flow with GitHub for User Authentication
  • Урок 342. 00:06:52
    141. Simulating Third-Party Dependencies
  • Урок 343. 00:04:12
    142. Simulating GitHub Authentication Flow with Mocks
  • Урок 344. 00:01:25
    143. Updating Prisma Schema for GitHub Login
  • Урок 345. 00:04:43
    144. Establishing Connections and Seed Script in Prisma for GitHub Authentication
  • Урок 346. 00:00:36
    145. Dad Joke Break Oauth
  • Урок 347. 00:00:56
    146. Intro to Provider Errors
  • Урок 348. 00:00:48
    147. Handling Errors in Third-Party API Calls
  • Урок 349. 00:01:13
    148. Handling Errors and Redirecting with GitHub Authentication
  • Урок 350. 00:00:46
    149. Handling Connection Errors and Duplication in Account Management
  • Урок 351. 00:04:13
    150. Handling Existing Connections in AuthProvider Callback
  • Урок 352. 00:00:35
    151. Dad Joke Break Provider Errors
  • Урок 353. 00:02:13
    152. Intro to Third Party Login
  • Урок 354. 00:01:18
    153. Implementing GitHub Login with Two-Factor Authentication
  • Урок 355. 00:03:54
    154. Refactoring Login Logic and Implementing GitHub Login
  • Урок 356. 00:02:28
    155. Sign Up with GitHub and Handling Mocked Data
  • Урок 357. 00:11:18
    156. Onboarding and User Authentication with Third-Party Providers
  • Урок 358. 00:00:31
    157. Dad Joke Break Third Party Login
  • Урок 359. 00:01:15
    158. Intro to Connection
  • Урок 360. 00:01:16
    159. Connecting Website and GitHub Accounts
  • Урок 361. 00:04:13
    160. Automatically Connecting User Profiles with Existing Accounts
  • Урок 362. 00:00:56
    161. Adding Multiple GitHub Connections to User Accounts
  • Урок 363. 00:01:39
    162. Connecting Existing Accounts with an Auth Provider
  • Урок 364. 00:00:49
    163. Dad Joke Break Connection
  • Урок 365. 00:00:59
    164. Intro to Redirect Cookie
  • Урок 366. 00:00:59
    165. Managing Redirects in Forms and Handling Cookies for Persistent Navigation
  • Урок 367. 00:01:47
    166. Adding Redirect Functionality to Login and Signup Forms
  • Урок 368. 00:01:04
    167. Handling Redirects and Cookies
  • Урок 369. 00:01:58
    168. Handling Authentication Redirects and Cookies
  • Урок 370. 00:00:43
    169. Handling Redirects
  • Урок 371. 00:05:06
    170. Managing Redirects and Cookies
  • Урок 372. 00:00:32
    171. Dad Joke Break Redirect Cookie
  • Урок 373. 00:00:58
    172. Outro to Authentication Strategies & Implementation Workshop
  • Урок 374. 00:01:32
    01. Intro to Web Application Testing Workshop
  • Урок 375. 00:06:23
    02. Intro to End-to-End
  • Урок 376. 00:02:38
    03. Writing Automated Tests with Playwright UI Mode
  • Урок 377. 00:10:17
    04. Writing and Asserting Playwright Tests for Search Functionality
  • Урок 378. 00:01:02
    05. Isolating Tests for Better Reliability and Flexibility
  • Урок 379. 00:02:02
    06. Creating and Interacting with User Data
  • Урок 380. 00:02:01
    07. Test Isolation in End-to-End Testing
  • Урок 381. 00:01:02
    08. Proper Setup and Teardown of Testing for Database Cleanup
  • Урок 382. 00:02:06
    09. Implementing Fixtures to Ensure User Deletion in Playwright Tests
  • Урок 383. 00:06:29
    10. Playwright Fixtures for Testing
  • Урок 384. 00:00:27
    11. Dad Joke Break E2E
  • Урок 385. 00:05:14
    12. Intro to E2E Mocking
  • Урок 386. 00:01:33
    13. Writing Emails to the File System for Test Automation
  • Урок 387. 00:02:31
    14. Handling Emails in Node.js using File System
  • Урок 388. 00:00:22
    15. Reading Email from Disk in Test Environment
  • Урок 389. 00:03:19
    16. Communicating Between Processes with File System in Node.js
  • Урок 390. 00:00:36
    17. Dad Joke Break E2E Mocking
  • Урок 391. 00:03:23
    18. Intro to Auth E2E
  • Урок 392. 00:02:06
    19. End-to-End User Flow Testing and Authentication Utility
  • Урок 393. 00:07:26
    20. Login and Setting Cookies for Browser Testing
  • Урок 394. 00:00:59
    21. Dad Joke Break Auth E2E
  • Урок 395. 00:03:12
    22. Intro to Unit Test
  • Урок 396. 00:00:43
    23. Unit Testing a Function for Error Messages
  • Урок 397. 00:06:56
    24. Writing Unit Tests for Utility Functions
  • Урок 398. 00:02:12
    25. Managing Test Output and Error Logging with Console Mocking
  • Урок 399. 00:04:19
    26. Testing Console Error with Spies
  • Урок 400. 00:01:00
    27. Implementing Test Hooks for Error Restoration in Playwright
  • Урок 401. 00:05:16
    28. Effective Error Handling and Console Capture Testing
  • Урок 402. 00:00:44
    29. Creating a Setup File for Test Environment Setup
  • Урок 403. 00:03:45
    30. Setting Up Test Environment and Utilizing Setup Files with VTest
  • Урок 404. 00:00:58
    31. Dad Joke Break Unit Test
  • Урок 405. 00:05:50
    32. Intro to Component Testing
  • Урок 406. 00:00:32
    33. Error List Component with React Testing Library
  • Урок 407. 00:05:58
    34. Testing React Components with JSDOM
  • Урок 408. 00:00:19
    35. Proper DOM Cleanup for Reliable Testing
  • Урок 409. 00:04:50
    36. Ensuring Isolation and Proper Test Execution
  • Урок 410. 00:00:13
    37. Dad Joke Break Component Test
  • Урок 411. 00:07:03
    38. Intro to Hooks
  • Урок 412. 00:04:04
    39. Double Confirmation Feature
  • Урок 413. 00:09:25
    40. Testing Custom React Hooks with RenderHook and Act
  • Урок 414. 00:01:13
    41. Custom Test Components vs Render Hook Utility
  • Урок 415. 00:05:59
    42. Testing React Hooks
  • Урок 416. 00:00:26
    43. Dad Joke Break Hooks
  • Урок 417. 00:03:38
    44. Intro to Testing Remix
  • Урок 418. 00:01:29
    45. Creating a Stub for Testing Component Logic in Remix
  • Урок 419. 00:07:14
    46. Rendering Components with Mock Data
  • Урок 420. 00:01:11
    47. Creating a Parent Route for Accessing Root Data
  • Урок 421. 00:03:38
    48. Creating Routes and Context in Remix
  • Урок 422. 00:00:27
    49. Dad Joke Break Testing Remix
  • Урок 423. 00:02:24
    50. Intro to Http Mocking
  • Урок 424. 00:02:05
    51. GitHub Sign-In Callback
  • Урок 425. 00:10:10
    52. Testing OAuth2 Flow and Mocking GitHub API Responses
  • Урок 426. 00:01:29
    53. Testing Error Handling in GitHub API Interceptor
  • Урок 427. 00:05:54
    54. Testing Error Handling and Assertions with Mock API Calls
  • Урок 428. 00:01:03
    55. Streamlining Repetitive Test Setup for Optimal Efficiency
  • Урок 429. 00:02:36
    56. Efficient Code Organization with Setup Functions
  • Урок 430. 00:00:54
    57. Dad Joke Break Http Mocking
  • Урок 431. 00:03:08
    58. Intro to Auth Integration
  • Урок 432. 00:01:03
    59. Testing Authenticated Requests and Connection Creation
  • Урок 433. 00:08:45
    60. Creating and Authenticating Users for Connection Setup
  • Урок 434. 00:00:35
    61. Assertions for GitHub Login Session Creation
  • Урок 435. 00:02:56
    62. Verifying Session Creation and User Authentication
  • Урок 436. 00:00:40
    63. Integrating Real Database with User Routes
  • Урок 437. 00:07:32
    64. Authentication in Database Integration Tests
  • Урок 438. 00:01:02
    65. Dad Joke Break Auth Integration
  • Урок 439. 00:03:03
    66. Intro to Custom Assertions
  • Урок 440. 00:01:38
    67. Custom Matchers for Assertions
  • Урок 441. 00:04:22
    68. Custom Assertions with Jest's Expect Library
  • Урок 442. 00:00:46
    69. Dad Joke Break Custom Assertions
  • Урок 443. 00:04:04
    70. Intro to Test Database
  • Урок 444. 00:02:15
    71. Setting Up a Test Database for Prisma Integration Tests
  • Урок 445. 00:06:25
    72. Setting Up an Isolated Database for Tests
  • Урок 446. 00:00:46
    73. Optimizing Database Seeding for Faster Execution
  • Урок 447. 00:01:32
    74. Optimizing Database Seeding for Faster Execution_2
  • Урок 448. 00:01:04
    75. Managing Test Databases for Parallel Testing
  • Урок 449. 00:01:11
    76. Isolating Test Databases for Efficient Testing
  • Урок 450. 00:01:26
    77. Optimizing Test Setup
  • Урок 451. 00:05:55
    78. Optimizing Test Setup with Global Database Configuration
  • Урок 452. 00:00:28
    79. Dad Joke Break Test Database
  • Урок 453. 00:00:39
    80. Outro to Web Application Testing Workshop
  • Урок 454. 00:29:58
    001 Content Management Systems with Alexandra Spalato
  • Урок 455. 00:29:14
    002 Leadership in Tech with Ankita Kulkarni
  • Урок 456. 00:38:37
    003 API Mocking with Artem Zakharchenko
  • Урок 457. 00:44:46
    004 Enhancing SQLite with Ben Johnson
  • Урок 458. 00:39:59
    005 The Evolution of Type Safety with Colin McDonnell
  • Урок 459. 00:39:06
    006 Simplifying Web Form Management with Edmund Hung
  • Урок 460. 00:27:34
    007 Scalable Databases and Authentication with Iheanyi Ekechukwu
  • Урок 461. 00:27:45
    008 Understanding Web Development with Jacob Paris
  • Урок 462. 00:35:50
    009 The Depth of Software Testing with Jessica Sachs
  • Урок 463. 00:38:08
    010 Platform Engineering with Jocelyn Harper
  • Урок 464. 00:25:34
    011 Navigating the Testing Terrain with Debbie O'Brien
  • Урок 465. 00:37:45
    012 Exploring the Front-End Ecosystem with Mark Dalgleish
  • Урок 466. 00:45:43
    013 Navigating Changing Web Technologies with Mark Thompson
  • Урок 467. 00:48:39
    014 The Magic of TypeScript with Matt Pocock
  • Урок 468. 00:42:11
    015 Building Deep Skills with Michael Chan
  • Урок 469. 00:31:29
    016 Examining MDX with Monica Powell
  • Урок 470. 00:30:11
    017 Efficient Form Management with Sandrina Pereira
  • Урок 471. 00:39:18
    018 Transitioning from Rails to Remix with Sergio Xalambri
  • Урок 472. 00:41:18
    019 The Capabilities and Ecosystem of Tailwind CSS with Simon Vrachliotis
  • Урок 473. 00:54:52
    020 The Crucial Role of Database Optimization with Tyler Benfield
  • Урок 474. 00:36:02
    021 Product Management with Nevi Shah
  • Урок 475. 00:36:00
    022 From Tech Sales to Engineering with Shaundai Person
  • Урок 476. 00:46:07
    023 Remix Behind the Scenes with Ryan Florence
  • Урок 477. 00:43:09
    024 Art, Code, and Data Visualization with Shirley Wu
  • Урок 478. 00:33:24
    025 The Future of Authentication with Will Johnson