1. Introduction.mp4
01:48
2. Basic MERN Stack Structure.mp4
04:48
3. Front-end Setup.mp4
06:47
4. Back-end Setup - Full-Stack React Development CBT Nuggets-1.mp4
10:50
5. Building a React Front-end.mp4
10:06
6. Loading Data from the Back-end.mp4
12:22
7. Creating Resources.mp4
08:17
8. Updating and Deleting Resources.mp4
06:57
9. Introduction.mp4
00:45
10. MongoDB Basics.mp4
13:27
11. Development Flow Improvements.mp4
11:51
12. Connecting to MongoDB from Node.mp4
05:49
13. Loading Data from MongoDB.mp4
04:51
14. Inserting Data into MongoDB.mp4
05:01
15. Deleting Data in MongoDB.mp4
04:38
16. Basic Full-stack Conversion Strategy.mp4
06:33
16. Updating Data in MongoDB.mp4
02:58
17. Full-stack Server Setup.mp4
08:25
17. Introduction.mp4
01:15
20. Read Server Endpoints.mp4
13:10
21. Converting Pages to Use Server Data.mp4
15:02
22. Converting Context to Use Server Data.mp4
10:43
23. Introduction.mp4
00:56
24. Create Server Endpoints.mp4
09:45
25. Making Create Requests from the Front-End.mp4
07:46
26. Delete Server Endpoints.mp4
07:23
27. Making Delete Requests from the Front-End.mp4
06:58
28. Update Server Endpoints.mp4
08:29
29. Making Update Requests from the Front-end.mp4
06:31
30. Introduction.mp4
01:13
31. What is Firebase Auth.mp4
04:13
32. Creating Pages.mp4
11:22
33. Redirecting Unauthenticated Users.mp4
12:34
34. Signing In With Firebase Auth.mp4
12:24
35. Listening for Auth Changes.mp4
12:16
36. Introduction.mp4
00:44
37. The Firebase User Object.mp4
09:05
38. Create Firebase Auth Accounts.mp4
11:47
39. Auth Error Handling.mp4
12:31
40. Auth-Conscious Navigation Bars.mp4
15:43
41. Introduction.mp4
00:46
42. Creating Custom Hooks for Auth.mp4
12:28
43. Using Custom Hooks Inside Components.mp4
13:38
44. Functions Inside Custom Hooks.mp4
08:12
45. Creating Accounts In Custom Hooks.mp4
06:23
46. Logging Out In Custom Hooks.mp4
05:24
47. Introduction.mp4
00:54
48. Express Server Setup.mp4
17:38
49. React Front-end Setup.mp4
09:08
50. Making Requests with Auth Tokens.mp4
20:08
51. Introduction.mp4
00:56
52. Verifying Tokens with Firebase Admin.mp4
12:29
53. Protecting Update and Delete Endpoints.mp4
08:56
54. Protecting Create Endpoints.mp4
10:58
55. Using Auth Middleware.mp4
11:43
56. Introduction.mp4
01:05
57. Adding a Login Page to Existing Apps.mp4
13:58
58. Encapsulating Auth Logic with Context.mp4
19:38
59. Adding Auth to a Navigation Bar.mp4
09:15
60. Creating Custom Hooks for Context.mp4
04:39
61. Introduction.mp4
01:09
62. Data Ownership on the Back-end.mp4
26:07
63. Automatically Including Tokens In Requests.mp4
13:08
64. Protecting User Data in Endpoints.mp4
16:16
65. Introduction.mp4
02:10
66. Map Out the App.mp4
10:41
67. Create Pages and Set Up Routes.mp4
11:40
68. Build the Notes Page and List.mp4
09:47
69. Build the Note Detail Page.mp4
16:13
70. Introduction.mp4
00:52
71. Store Note Data Inside A Context Provider.mp4
12:15
72. Add A Create Note Modal.mp4
11:02
73. Creating New Notes in Context.mp4
08:48
74. Deleting Notes in Context.mp4
08:51
75. Updating Notes in Context.mp4
05:23
76. Introduction.mp4
01:01
77. Add Styling to the App.mp4
22:20
78. Create A Reusable X Component.mp4
15:54
79. Create A Navigation Bar.mp4
05:17
80. Render Markdown in React.mp4
03:16
81. Introduction.mp4
00:49
82. Full-Stack Project Setup.mp4
15:10
83. Create a Read Endpoint And Load Data From the Client-Side.mp4
14:24
84. Add a Create Endpoint And Make Requests From the Client-Side.mp4
06:44
85. Add Update And Delete Endpoints.mp4
09:57
86. Introduction.mp4
00:48
87. Add MongoDB to the Back-end.mp4
06:32
88. Convert Endpoints to Use MongoDB.mp4
09:24
89. Split Express Servers Into Multiple Files.mp4
09:20
90. Make MongoDB Available in Different Files.mp4
09:37
91. Rewrite Routes To Increase Performance.mp4
11:33
92. Introduction.mp4
00:52
93. Create Login and Create Account Forms.mp4
18:52
94. Add Login and Create Account Pages.mp4
11:14
95. Styling the Login and Create Account Pages.mp4
06:18
96. Add Firebase Auth to the Front-end.mp4
10:31
97. Introduction.mp4
00:52
98. Install and Set Up Firebase Admin.mp4
05:23
99. How Should We Organize Our Database.mp4
18:49
100. Convert Endpoints for Ownership.mp4
09:58
101. Data Ownership in Create and Delete Endpoints.mp4
13:45
102. Introduction.mp4
00:49
103. Subscribe to Auth State Changes.mp4
12:15
104. Protect Routes with Arbitrary Criteria.mp4
10:00
105. Create a useUser Hook.mp4
05:35
106. Include Users Tokens in Requests.mp4
18:07
107. Introduction.mp4
01:06
108. Protect Users Data from Unwanted Access.mp4
07:20
109. Prevent Users From Deleting Other Users Data.mp4
09:22
110. Prevent Unauthorized Data Modification.mp4
07:07
111. Add Protection to the Create Note Endpoint.mp4
03:54
112. Use Middleware to Reduce Repetition.mp4
13:41
113. Add More Middleware.mp4
11:56
114. Introduction.mp4
01:01
115. Data Segregation Demonstration.mp4
08:23
116. User Account Creation.mp4
18:24
117. Handle Login and Create Account Errors.mp4
17:57
118. Introduction.mp4
00:51
119. Create a Page for Editing Sharing Settings.mp4
16:14
120. Create a Shared Emails List.mp4
13:16
121. Basic Front-end Sharing Logic.mp4
16:21
122. Introduction.mp4
00:51
123. Add a Share Note Endpoint.mp4
16:41
124. Make Share Requests from the Front-end.mp4
10:41
125. Add Unshare Functionality.mp4
07:59
126. Load Shared Notes.mp4
09:15
127. Introduction.mp4
01:07
128. Hide Elements Based On Ownership.mp4
06:59
129. Add Permission Levels To the Back-end.mp4
15:59
130. Add Permission Levels To the Front-end.mp4
10:24
131. Allow Other Users to Edit Notes.mp4
16:47
132. Introduction.mp4
00:59
133. Email Verification Basics.mp4
07:08
134. Create a Please Verify Email Page.mp4
06:46
135. Refactor the Create Account Flow.mp4
12:13
136. Introduction.mp4
00:54
137. Create an Email Verification Landing Page.mp4
18:53
138. Create an Email Verification Server Route.mp4
07:39
139. Protect Server Routes from Unverified Users.mp4
14:12
140. Prevent Unverified Users from Logging In.mp4
13:01
141. Introduction.mp4
01:27
142. Web-Socket Basics.mp4
08:14
143. Add Web-Sockets to Express.mp4
06:09
144. Add Web-Sockets to React.mp4
07:46
145. Send Data Through a Web-Socket.mp4
07:24
146. Convert Load Requests to Web-Sockets.mp4
15:18
147. Introduction.mp4
00:49
148. Create User Can Edit Note Middleware.mp4
10:16
149. Convert Express Middleware to Socket.io.mp4
09:17
150. Middleware for Individual Events -.mp4
08:19
151. Handle Socket Errors on the Front-end.mp4
08:27
152. Create a Custom Hook for Web-Sockets.mp4
13:12
153. Introduction.mp4
01:02
154. Create an EnableDisable Section.mp4
11:28
155. Create an Endpoint for Enabling Link Sharing.mp4
13:19
156. Create an Endpoint for Disabling Link Sharing.mp4
04:49
157. Introduction.mp4
01:19
158. Organize Web-Socket Logic Effectively.mp4
08:44
159. Define Initial Connection Logic.mp4
05:42
160. Define Event Handlers in Separate Files.mp4
14:41
161. Introduction.mp4
01:05
162. Keep Client Data In Sync.mp4
07:30
163. Prevent Infinite Socket Loops.mp4
05:51
164. Add Roles to Web-Socket Data.mp4
14:04
165. Use Web-Socket Rooms.mp4
08:46
166. Introduction.mp4
00:57
167. Multiple Web-Socket Connection Types.mp4
14:47
168. Handle New Web-Socket Connections.mp4
07:14
169. Loading Data Via Web-Sockets.mp4
08:54
170. Update Client-Side Data Immediately.mp4
16:00