1. Урок 1. 00:01:48
    Introduction
  2. Урок 2. 00:07:32
    What is the "MERN Stack"?
  3. Урок 3. 00:02:12
    MERN - A First Overview
  4. Урок 4. 00:02:14
    Course Outline
  5. Урок 5. 00:02:55
    How To Get The Most Out Of The Course
  6. Урок 6. 00:01:19
    Module Introduction
  7. Урок 7. 00:08:05
    Understanding the Big Picture
  8. Урок 8. 00:04:07
    Diving Into the Frontend
  9. Урок 9. 00:05:11
    Understanding the Backend
  10. Урок 10. 00:07:55
    REST vs GraphQL
  11. Урок 11. 00:05:51
    Connecting Node & React
  12. Урок 12. 00:11:25
    Creating our Development Environment & the Development Servers
  13. Урок 13. 00:09:46
    Diving Deeper Into the Code
  14. Урок 14. 00:04:51
    Module Introduction
  15. Урок 15. 00:02:37
    Understanding the General App Idea
  16. Урок 16. 00:09:38
    Sketching out the Frontend
  17. Урок 17. 00:05:20
    Data & API Endpoints used in our App
  18. Урок 18. 00:02:57
    Required SPA Pages for the Frontend
  19. Урок 19. 00:01:13
    Module Introduction
  20. Урок 20. 00:03:14
    What is React?
  21. Урок 21. 00:04:04
    Setting Up a Starting Project
  22. Урок 22. 00:05:32
    Understanding JSX
  23. Урок 23. 00:02:51
    Understanding Components
  24. Урок 24. 00:07:05
    Working with Multiple Components
  25. Урок 25. 00:06:53
    Using Props to pass Data between Components
  26. Урок 26. 00:04:31
    Rendering Lists of Data
  27. Урок 27. 00:07:25
    Handling Events
  28. Урок 28. 00:04:39
    Efficient Child<=>Parent Communication
  29. Урок 29. 00:05:55
    Working with "State"
  30. Урок 30. 00:04:21
    More on State
  31. Урок 31. 00:05:53
    Fetching User Input (Two-way Binding)
  32. Урок 32. 00:02:12
    Wrap Up
  33. Урок 33. 00:02:33
    Module Introduction
  34. Урок 34. 00:17:22
    Starting Setup, Pages & Routes
  35. Урок 35. 00:09:30
    Adding a UsersList Page / Component
  36. Урок 36. 00:03:42
    Adding a UserItem Component
  37. Урок 37. 00:07:18
    Styling our App & More Components
  38. Урок 38. 00:03:23
    Presentational vs Stateful Components
  39. Урок 39. 00:09:47
    Adding a Main Header
  40. Урок 40. 00:05:06
    Adding Navlinks
  41. Урок 41. 00:04:22
    Implementing a Basic Desktop & Mobile Navigation
  42. Урок 42. 00:03:01
    Understanding Portals
  43. Урок 43. 00:04:09
    Handling the Drawer State
  44. Урок 44. 00:05:15
    Animating the Sidedrawer
  45. Урок 45. 00:16:13
    Rendering User Places & Using Dynamic Route Segments
  46. Урок 46. 00:02:17
    Getting Route Params
  47. Урок 47. 00:02:54
    Adding Custom Buttons
  48. Урок 48. 00:17:27
    Adding a Modal
  49. Урок 49. 00:14:37
    Rendering a Map with Google Maps
  50. Урок 50. 00:09:43
    Adding a Custom Form Input Component
  51. Урок 51. 00:11:52
    Managing State in the Input Component
  52. Урок 52. 00:08:03
    Adding Input Validation
  53. Урок 53. 00:08:12
    Sharing Input Values & Adding Multiple Inputs
  54. Урок 54. 00:09:12
    Managing Form-wide State
  55. Урок 55. 00:03:20
    Finishing the "Add Place" Form
  56. Урок 56. 00:08:46
    Starting Work on the "Update Place" Page
  57. Урок 57. 00:02:39
    Adjusting the Input Component
  58. Урок 58. 00:11:04
    Creating a Custom Form Hook (useForm)
  59. Урок 59. 00:11:20
    Adjusting the Form Hook
  60. Урок 60. 00:04:33
    Fixing Minor Issues
  61. Урок 61. 00:05:29
    Showing a Deletion Warning
  62. Урок 62. 00:09:07
    Adding an "Auth" Page & Login Form
  63. Урок 63. 00:11:19
    Adding Signup + "Switch Mode" Button
  64. Урок 64. 00:07:05
    Adding Auth Context for App-wide State Management
  65. Урок 65. 00:02:12
    Listening to Context Changes
  66. Урок 66. 00:05:50
    Adding Authenticated & Unauthenticated Routes
  67. Урок 67. 00:02:45
    More Auth Context Usage
  68. Урок 68. 00:01:09
    Wrap Up
  69. Урок 69. 00:01:41
    Module Introduction
  70. Урок 70. 00:02:56
    What is Node.js?
  71. Урок 71. 00:08:21
    Writing our First Node.js Code
  72. Урок 72. 00:13:35
    Sending Requests & Responses
  73. Урок 73. 00:01:16
    What is Express.js?
  74. Урок 74. 00:11:40
    Adding Express.js
  75. Урок 75. 00:08:33
    Understanding the Advantages of Express.js
  76. Урок 76. 00:03:17
    How Code Execution Works
  77. Урок 77. 00:02:18
    Module Introduction
  78. Урок 78. 00:02:30
    Setting up our Project
  79. Урок 79. 00:11:22
    Implementing Basic Routing
  80. Урок 80. 00:09:40
    Adding Place-Specific Routes
  81. Урок 81. 00:04:38
    Getting a Place By User ID
  82. Урок 82. 00:10:53
    Handling Errors
  83. Урок 83. 00:04:46
    Adding our own Error Model
  84. Урок 84. 00:06:43
    Adding Controllers
  85. Урок 85. 00:13:23
    Adding a POST Route & Using Postman
  86. Урок 86. 00:02:14
    Handling Errors for Unsupported Routes
  87. Урок 87. 00:08:04
    Adding Patch Routes to Update Places
  88. Урок 88. 00:04:08
    Deleting Places
  89. Урок 89. 00:02:45
    Finalizing the "Get Places by User ID" Resource
  90. Урок 90. 00:13:25
    Setting Up the User Routes (Signup, Login, Get Users)
  91. Урок 91. 00:10:20
    Validating API Input (Request Bodies)
  92. Урок 92. 00:06:15
    Validating Patch Requests & User Routes
  93. Урок 93. 00:16:21
    Using Google's Geocoding API to Convert an Address Into Coordinates
  94. Урок 94. 00:01:28
    Wrap Up
  95. Урок 95. 00:01:16
    Module Introduction
  96. Урок 96. 00:01:27
    What is MongoDB?
  97. Урок 97. 00:03:42
    SQL vs NoSQL
  98. Урок 98. 00:01:45
    Connecting React to a Database?
  99. Урок 99. 00:05:27
    Setting Up MongoDB
  100. Урок 100. 00:05:51
    Creating a Simple Backend & Connecting it to the Database
  101. Урок 101. 00:07:53
    Creating a Document with MongoDB
  102. Урок 102. 00:06:12
    Getting Data from the Database
  103. Урок 103. 00:01:32
    Installing Mongoose
  104. Урок 104. 00:03:52
    Understanding Models & Schemas
  105. Урок 105. 00:03:24
    Creating a Product
  106. Урок 106. 00:07:29
    Connecting to the Database & Saving the Product
  107. Урок 107. 00:04:13
    Getting Products
  108. Урок 108. 00:03:19
    Understanding the ObjectID
  109. Урок 109. 00:01:43
    Wrap Up
  110. Урок 110. 00:01:28
    Module Introduction
  111. Урок 111. 00:06:33
    Installing Mongoose & Connecting our Backend to MongoDB
  112. Урок 112. 00:06:35
    Creating the Place Schema & Model
  113. Урок 113. 00:07:27
    Creating & Storing Documents in the Database
  114. Урок 114. 00:08:09
    Getting Places by the PlaceID
  115. Урок 115. 00:05:54
    Getting Places by the UserID
  116. Урок 116. 00:06:11
    Updating Places
  117. Урок 117. 00:03:44
    Deleting Places
  118. Урок 118. 00:01:35
    How Users & Places are Related
  119. Урок 119. 00:06:29
    Creating the User Model
  120. Урок 120. 00:11:44
    Using the User Model for Signup
  121. Урок 121. 00:04:20
    Adding the User Login
  122. Урок 122. 00:05:38
    Getting Users
  123. Урок 123. 00:05:04
    Adding the Relation between Places & Users
  124. Урок 124. 00:14:00
    Creating Places & Adding it to a User
  125. Урок 125. 00:07:48
    Deleting Places & Removing it From the User
  126. Урок 126. 00:05:39
    Getting Places - An Alternative
  127. Урок 127. 00:02:33
    Cleaning Up our Code
  128. Урок 128. 00:01:44
    Wrap Up
  129. Урок 129. 00:01:32
    Module Introduction
  130. Урок 130. 00:01:02
    Initial Setup
  131. Урок 131. 00:10:31
    Sending a POST Request to the Backend
  132. Урок 132. 00:06:59
    Handling CORS Errors
  133. Урок 133. 00:08:00
    Getting Started with Error Handling
  134. Урок 134. 00:05:06
    Proper Error Handling in the Frontend
  135. Урок 135. 00:03:36
    Sending a Login Request
  136. Урок 136. 00:10:23
    Getting Users with a GET Request
  137. Урок 137. 00:10:51
    Creating a Custom Http Hook
  138. Урок 138. 00:08:30
    Improving the Custom Http Hook
  139. Урок 139. 00:03:48
    Using the Http Hook to GET Users
  140. Урок 140. 00:13:07
    Adding Places (POST)
  141. Урок 141. 00:08:00
    Loading Places by User Id
  142. Урок 142. 00:12:24
    Updating Places
  143. Урок 143. 00:07:41
    Deleting Places
  144. Урок 144. 00:01:07
    Fixing NavLinks & "My Places"
  145. Урок 145. 00:03:43
    Final Adjustments
  146. Урок 146. 00:01:14
    Module Introduction
  147. Урок 147. 00:10:37
    Building an ImageUpload Component
  148. Урок 148. 00:12:17
    Finishing & Using the ImageUpload Component (in a Form)
  149. Урок 149. 00:08:53
    On the Backend: Using Multer to Save Files
  150. Урок 150. 00:03:04
    Filtering Files on the Backend (Images Only!)
  151. Урок 151. 00:05:10
    Wiring Frontend and Backend Up
  152. Урок 152. 00:06:20
    Connecting Users to Images
  153. Урок 153. 00:03:34
    Serving Images Statically
  154. Урок 154. 00:06:09
    Uploading Images for New Places
  155. Урок 155. 00:03:00
    Deleting Images When Places Get Deleted
  156. Урок 156. 00:01:33
    Wrap Up
  157. Урок 157. 00:01:09
    Module Introduction
  158. Урок 158. 00:05:02
    How Authentication Works (in a MERN App)
  159. Урок 159. 00:05:33
    Hashing the User Password
  160. Урок 160. 00:03:11
    Logging Users In (with Hashed Passwords)
  161. Урок 161. 00:09:02
    Generating Tokens (JWT) on the Backend
  162. Урок 162. 00:12:49
    Backend Route Protection with Auth Middleware
  163. Урок 163. 00:07:18
    Using & Attaching JWT (Tokens) in React
  164. Урок 164. 00:02:27
    Using Tokens to Update and Delete Places
  165. Урок 165. 00:07:36
    Adding Authorization
  166. Урок 166. 00:03:02
    Authorization on "Delete Places"
  167. Урок 167. 00:06:10
    Storing the Token in the Browser Storage
  168. Урок 168. 00:05:15
    Adding Auto-Login (Basic Version)
  169. Урок 169. 00:04:55
    Managing the Token Expiration Date
  170. Урок 170. 00:08:04
    Finished Auto-Login & Auto-Logout
  171. Урок 171. 00:03:46
    Creating a Custom Authentication Hook
  172. Урок 172. 00:01:50
    Authentication - Summary
  173. Урок 173. 00:04:41
    General App Improvements
  174. Урок 174. 00:00:56
    Module Introduction
  175. Урок 175. 00:02:30
    Deployment Steps Overview
  176. Урок 176. 00:08:26
    Using Environment Variables (Node.js)
  177. Урок 177. 00:07:27
    Environment Variables in React Apps
  178. Урок 178. 00:05:48
    Preparing API Keys & Credentials
  179. Урок 179. 00:04:32
    Building the React App
  180. Урок 180. 00:07:16
    Adding Code Splitting to React
  181. Урок 181. 00:03:51
    Understanding Possible Deployment Alternatives
  182. Урок 182. 00:10:47
    Deploying a Standalone REST API (Example: Heroku)
  183. Урок 183. 00:09:13
    Deploying a Standalone React SPA (Example: Firebase Hosting)
  184. Урок 184. 00:01:36
    Fixing Style Issues
  185. Урок 185. 00:10:25
    Deploying a Combined App
  186. Урок 186. 00:02:21
    Storing Files/ Uploads
  187. Урок 187. 00:00:46
    Wrap Up
  188. Урок 188. 00:00:56
    Course Roundup