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