Урок 1. 00:01:10
Welcome to This Course! [Day 1]
Урок 2. 00:07:51
What Is "Web Development" & How Does The Web Work? [Day 1]
Урок 3. 00:05:23
The Three Key Programming Languages [Day 1]
Урок 4. 00:08:09
How The Web Works: A Deep Dive [Day 1]
Урок 5. 00:03:51
The 100 Days of Code Challenge! [Day 1]
Урок 6. 00:03:40
How To Get The Most Out Of This Course [Day 1]
Урок 7. 00:03:24
Stuck in the Course? We Got you Covered! [Day 1]
Урок 8. 00:02:24
Module Introduction [Day 1]
Урок 9. 00:05:20
How to Create a Website [Day 1]
Урок 10. 00:08:29
Creating our First HTML Page [Day 1]
Урок 11. 00:11:23
Setting Up a Development Environment [Day 2]
Урок 12. 00:02:07
Why Visual Studio Code? [Day 2]
Урок 13. 00:06:03
Understanding HTML Elements [Day 2]
Урок 14. 00:07:17
Which HTML Elements Exist? [Day 2]
Урок 15. 00:07:25
Adding Another HTML Element [Day 2]
Урок 16. 00:04:34
Exploring HTML Attributes [Day 2]
Урок 17. 00:06:18
Getting Started with CSS (Day 2)
Урок 18. 00:02:39
More CSS Styling [Day 2]
Урок 19. 00:08:13
Working with Colors [Day 3]
Урок 20. 00:04:17
Formatting our Code [Day 3]
Урок 21. 00:06:14
Working with the Browser Developer Tools [Day 3]
Урок 22. 00:06:41
Adding a Link [Day 3]
Урок 23. 00:02:19
You can Nest HTML Elements! [Day 3]
Урок 24. 00:07:50
Using Global CSS Styles [Day 3]
Урок 25. 00:07:37
The HTML Document Skeleton & Metadata [Day 3]
Урок 26. 00:07:50
Visual Studio Code Shortcuts & Tricks [Day 3]
Урок 27. 00:06:25
First Summary [Day 3]
Урок 28. 00:04:50
Styling the Anchor Element Also with Pseudo Hover [Day 4]
Урок 29. 00:02:26
Why it's Called Cascading Style Sheets [Day 4]
Урок 30. 00:06:24
Storing CSS Code in External Files [Day 4]
Урок 31. 00:01:23
The Void Element Syntax [Day 4]
Урок 32. 00:06:07
Multiple Files & Requests [Day 4]
Урок 33. 00:05:40
Selecting Single Elements with the ID Selector [Day 4]
Урок 34. 00:05:16
Working with "font-size" and "px" [Day 4]
Урок 35. 00:08:14
Using Other Fonts from Google Fonts [Day 4]
Урок 36. 00:04:49
Adding an Image [Day 5]
Урок 37. 00:07:49
Styling the Image & Using the Body Tag [Day 5]
Урок 38. 00:01:59
Styling the Overall Page Background [Day 5]
Урок 39. 00:05:36
Adding a Second HTML File [Day 5]
Урок 40. 00:04:45
Using a Shared CSS File [Day 5]
Урок 41. 00:03:12
Organizing Source Files in Folders [Day 5]
Урок 42. 00:03:55
Summary [Day 5]
Урок 43. 00:01:57
Module Introduction [Day 6]
Урок 44. 00:03:39
Using the Live Server Extension [Day 6]
Урок 45. 00:05:03
Understanding Lists [Day 6]
Урок 46. 00:08:02
Creating Lists [Day 6]
Урок 47. 00:08:45
Understanding Parents, Children, Containers & More [Day 6]
Урок 48. 00:08:02
Understanding Cascading, Inheritance & Specificity [Day 6]
Урок 49. 00:06:21
Styling the Full Week Page [Day 6]
Урок 50. 00:07:03
Introducing the CSS Box Model [Day 7]
Урок 51. 00:08:52
Using the CSS Box Model [Day 7]
Урок 52. 00:07:23
Creating HTML Layouts [Day 7]
Урок 53. 00:04:09
Theory: Selectors & Combinators [Day 7]
Урок 54. 00:10:45
Using Selectors & Combinators [Day 7]
Урок 55. 00:06:23
Understanding Classes [Day 7]
Урок 56. 00:08:19
Block vs Inline Elements [Day 7]
Урок 57. 00:09:16
Styling Differences Between Block & Inline Elements [Day 8]
Урок 58. 00:04:44
Understanding Margin Collapsing [Day 8]
Урок 59. 00:06:25
The "box-shadow" Property [Day 8]
Урок 60. 00:01:44
Your Challenge! [Day 8]
Урок 61. 00:04:29
Creating the HTML Layout [Day 8]
Урок 62. 00:05:39
Styling the Main Section [Day 8]
Урок 63. 00:05:16
Styling Images & Working with Negative Margins [Day 8]
Урок 64. 00:04:09
Finishing Touches [Day 8]
Урок 65. 00:05:41
Module Summary [Day 8]
Урок 66. 00:02:45
Module Introduction [Day 9]
Урок 67. 00:02:18
Your Task! [Day 9]
Урок 68. 00:11:22
Creating the Core Structure [Day 9]
Урок 69. 00:03:35
Adding the Header Content [Day 9]
Урок 70. 00:12:09
Adding Header Styling [Day 9]
Урок 71. 00:05:13
Spacing & the CSS Box Model [Day 9]
Урок 72. 00:11:12
Adding the Main Content [Day 9]
Урок 73. 00:06:57
Styling the Main Content [Day 10]
Урок 74. 00:16:58
Styling List Items & Links [Day 10]
Урок 75. 00:12:57
Adding the Footer [Day 10]
Урок 76. 00:05:38
Introducing New HTML Elements [Day 10]
Урок 77. 00:01:59
Organizing our Files [Day 10]
Урок 78. 00:01:23
Module Summary [Day 10]
Урок 79. 00:02:30
Module Introduction [Day 11]
Урок 80. 00:03:17
What is "Hosting" & "Deployment"? [Day 11]
Урок 81. 00:02:24
Hosting a First Static Website (Example Deployment on Netlify) [Day 11]
Урок 82. 00:01:58
More Information On Netlify & HTTPS [Day 11]
Урок 83. 00:06:17
Adding a Favicon [Day 11]
Урок 84. 00:05:37
Relative vs Absolute Paths [Day 11]
Урок 85. 00:02:20
Module Introduction [Day 11]
Урок 86. 00:06:03
What are Git & GitHub? [Day 11]
Урок 87. 00:05:25
Command Line Interface (CLI) vs Graphical User Interface (GUI) [Day 11]
Урок 88. 00:18:00
Optional: MacOS Terminal (z Shell) Crash Course [Day 11]
Урок 89. 00:13:10
Optional: Windows Command Prompt (cmd) Crash Course [Day 12]
Урок 90. 00:04:25
Git: MacOS Installation [Day 12]
Урок 91. 00:09:21
Git: Windows Installation [Day 12]
Урок 92. 00:04:35
Understanding the Git Basics [Day 12]
Урок 93. 00:18:52
Initializing the Repository & Creating our First Commit [Day 12]
Урок 94. 00:13:11
Understanding Branches, Merging & Fixing Merge Conflicts [Day 13]
Урок 95. 00:13:54
Deleting Branches & Commits, Reverting Staged & Unstaged Changes [Day 13]
Урок 96. 00:04:36
Onwards to GitHub - What & Why? [Day 13]
Урок 97. 00:12:26
Creating a GitHub Account & a Remote Repository [Day 13]
Урок 98. 00:14:50
Understanding the Personal Access Token & "git clone" [Day 14]
Урок 99. 00:20:16
Collaborating on Projects - Collaborators & Organizations [Day 14]
Урок 100. 00:13:33
Contributing to Projects - Forks & Pull Requests [Day 14]
Урок 101. 00:05:12
Wrap Up [Day 14]
Урок 102. 00:01:23
Module Introduction [Day 15]
Урок 103. 00:02:05
Project Overview - What we Will Build [Day 15]
Урок 104. 00:03:46
Project Setup [Day 15]
Урок 105. 00:05:01
Creating the Landing Page Structure [Day 15]
Урок 106. 00:08:22
Adding the Page Logo [Day 15]
Урок 107. 00:04:20
Adding the Page Navigation [Day 15]
Урок 108. 00:08:46
Introducing CSS Flexbox [Day 15]
Урок 109. 00:04:14
Aligning Flex Items [Day 15]
Урок 110. 00:03:07
Your Flexbox Challenge! [Day 16]
Урок 111. 00:05:38
Adding Flexbox to our Project [Day 16]
Урок 112. 00:08:45
Adding a Background Image [Day 16]
Урок 113. 00:05:21
Creating a Container for the Hero-Content [Day 16]
Урок 114. 00:06:06
Positioning Elements [Day 16]
Урок 115. 00:08:40
Styling the Hero Content [Day 16]
Урок 116. 00:07:56
Understanding Fixed & Absolute Positioning [Day 16]
Урок 117. 00:06:59
Working with % Units & Creating a Top Navigation Bar [Day 17]
Урок 118. 00:08:21
Finishing the Header [Day 17]
Урок 119. 00:02:16
Introducing the "Highlights" Section [Day 17]
Урок 120. 00:10:37
Creating the HTML Code [Day 17]
Урок 121. 00:06:32
Building the Flex Container [Day 17]
Урок 122. 00:05:27
Flex Item Layout [Day 17]
Урок 123. 00:06:08
Styling Images with "object-fit" [Day 17]
Урок 124. 00:06:25
Styling Text [Day 17]
Урок 125. 00:03:33
Understanding Parent - Child Margin Collapsing [Day 18]
Урок 126. 00:05:40
Working with CSS Functions - Linear Gradients [Day 18]
Урок 127. 00:01:58
The Next Step [Day 18]
Урок 128. 00:03:44
Creating a Footer Section [Day 18]
Урок 129. 00:07:36
Styling the Footer [Day 18]
Урок 130. 00:05:13
Places Page - Overview & Preparations [Day 18]
Урок 131. 00:07:05
Creating the Card Content [Day 18]
Урок 132. 00:07:40
Using "position: static" [Day 18]
Урок 133. 00:03:54
Creating the Card Look [Day 19]
Урок 134. 00:06:32
Understanding "overflow" & Your Challenge! [Day 19]
Урок 135. 00:11:33
Solving the Challenge [Day 19]
Урок 136. 00:09:07
Creating all Cards [Day 19]
Урок 137. 00:10:21
The CSS Grid - Theory [Day 19]
Урок 138. 00:06:51
Understanding the "nth-type" Selector & "grid-template-columns" [Day 19]
Урок 139. 00:07:14
Your Grid Challenge [Day 20]
Урок 140. 00:04:32
Working with Unicode UTF-8 [Day 20]
Урок 141. 00:06:37
Finishing Touches [Day 20]
Урок 142. 00:04:53
Module Summary [Day 20]
Урок 143. 00:02:02
Module Introduction [Day 20]
Урок 144. 00:04:40
Project Overview [Day 20]
Урок 145. 00:06:56
Optional: Your Challenge - Creating the HTML Structure [Day 20]
Урок 146. 00:12:58
Optional: Challenge Solution - The HTML Structure [Day 20]
Урок 147. 00:14:57
Optional: Styling the Header [Day 21]
Урок 148. 00:16:40
Optional: Styling the "main" Section [Day 21]
Урок 149. 00:05:49
What is Responsive Design? [Day 21]
Урок 150. 00:05:46
The Problem with Pixels [Day 21]
Урок 151. 00:03:53
Introducing "em" & "rem" [Day 21]
Урок 152. 00:13:08
Applying "em" & "rem" for the Font Size [Day 22]
Урок 153. 00:09:05
Deep Dive: "em" vs "rem" vs "%" [Day 22]
Урок 154. 00:10:04
Updating the Project Units [Day 22]
Урок 155. 00:05:17
Comparing Desktop & Mobile First Design [Day 22]
Урок 156. 00:08:54
Understanding Media Queries [Day 22]
Урок 157. 00:09:21
Adding Media Queries to the Project [Day 23]
Урок 158. 00:08:08
Your Media Queries Challenge! [Day 23]
Урок 159. 00:04:17
Side Drawer & Hamburger Icon - Theory [Day 23]
Урок 160. 00:09:55
Creating the Hamburger Button [Day 23]
Урок 161. 00:12:05
Creating the Side Drawer [Day 23]
Урок 162. 00:05:53
Understanding HTML Fragments [Day 23]
Урок 163. 00:04:30
Understanding the Target Selector [Day 24]
Урок 164. 00:06:43
Finishing the Side Drawer [Day 24]
Урок 165. 00:03:24
Module Summary [Day 24]
Урок 166. 00:04:38
Module Introduction [Day 24]
Урок 167. 00:03:45
Three Things to Keep in Mind [Day 24]
Урок 168. 00:06:03
Introducing the Module Project [Day 24]
Урок 169. 00:06:39
Sizing & Spacing [Day 24]
Урок 170. 00:09:10
Choosing the Right Font [Day 24]
Урок 171. 00:05:40
Understanding The Importance of Grey, Primary & Accent Colors [Day 24]
Урок 172. 00:08:23
Introducing CSS Variables / CSS Custom Properties [Day 25]
Урок 173. 00:16:29
CSS Variables in Action [Day 25]
Урок 174. 00:03:59
Comparing "root" vs "html" vs "*" Selectors [Day 25]
Урок 175. 00:06:42
Understanding CSS Transformations [Day 25]
Урок 176. 00:14:36
Adding CSS Transitions [Day 25]
Урок 177. 00:06:03
Working with SVGs [Day 25]
Урок 178. 00:02:16
Module Introduction [Day 26]
Урок 179. 00:03:33
What & Why [Day 26]
Урок 180. 00:02:51
Important Form HTML Elements [Day 26]
Урок 181. 00:06:36
Our First Input Element [Day 26]
Урок 182. 00:04:24
Adding a Button [Day 26]
Урок 183. 00:18:07
The Form Element, Form Submission & Different Types of Requests [Day 26]
Урок 184. 00:03:40
Styling the Form Element [Day 27]
Урок 185. 00:04:23
Adding Labels [Day 27]
Урок 186. 00:12:46
More Detailed Forms Styling [Day 27]
Урок 187. 00:05:12
Understanding Different Input Types [Day 27]
Урок 188. 00:08:08
Understanding Email, Numbers, Password & Date Types [Day 27]
Урок 189. 00:11:06
Working with Radio Buttons [Day 27]
Урок 190. 00:04:56
Using Checkboxes [Day 28]
Урок 191. 00:04:13
The Textarea Element For Longer Text [Day 28]
Урок 192. 00:04:30
Adding a Dropdown [Day 28]
Урок 193. 00:10:26
Forms & Semantics (Structuring Forms) [Day 28]
Урок 194. 00:04:44
More on Form Buttons [Day 28]
Урок 195. 00:09:58
Validation Attributes [Day 28]
Урок 196. 00:05:15
More Input & Form Attributes [Day 28]
Урок 197. 00:02:09
Your Challenge! [Day 29]
Урок 198. 00:06:26
Challenge: Base Page Structure & Styling [Day 29]
Урок 199. 00:07:20
Challenge: First Set of Input Elements [Day 29]
Урок 200. 00:05:04
Challenge: Adding Remaining Elements [Day 29]
Урок 201. 00:03:44
Challenge: Submission & Validation [Day 29]
Урок 202. 00:12:19
Challenge: Styling [Day 29]
Урок 203. 00:01:13
Module Introduction [Day 29]
Урок 204. 00:07:36
What is JavaScript & Why would we use it? [Day 29]
Урок 205. 00:02:37
What You Will Learn In this Module [Day 29]
Урок 206. 00:04:28
Introducing Values & Variables [Day 29]
Урок 207. 00:02:53
Adding the "script" HTML Element [Day 30]
Урок 208. 00:05:44
Working with Values & Basic JavaScript Commands [Day 30]
Урок 209. 00:08:16
Introducing Variables ("Data Containers") [Day 30]
Урок 210. 00:03:11
A Closer Look At The JavaScript Syntax [Day 30]
Урок 211. 00:04:25
A Second Variable & Practice Time! [Day 30]
Урок 212. 00:07:12
Outsourcing JavaScript Code Into External Files [Day 30]
Урок 213. 00:06:53
Introducing Arrays (Managing Lists Of Data) [Day 30]
Урок 214. 00:06:42
Introducing Objects (Grouping Related Data) [Day 30]
Урок 215. 00:04:33
Splitting Code Across Multiple Lines [Day 31]
Урок 216. 00:02:08
Accessing Object Properties [Day 31]
Урок 217. 00:07:13
Performing Operations [Day 31]
Урок 218. 00:04:08
Onwards To Custom Commands! [Day 31]
Урок 219. 00:07:15
Introducing Functions [Day 31]
Урок 220. 00:04:30
Functions & Variables [Day 31]
Урок 221. 00:06:22
Returning Values In Functions [Day 31]
Урок 222. 00:05:41
Passing Data Into Functions With Parameters [Day 31]
Урок 223. 00:01:47
Functions - A Summary [Day 31]
Урок 224. 00:04:40
Time To Practice: The Problem [Day 32]
Урок 225. 00:19:17
Time To Practice: The Solution [Day 32]
Урок 226. 00:05:48
Introducing Methods [Day 32]
Урок 227. 00:06:22
Making Our Developer Life Easier (Logging with console.log()) [Day 32]
Урок 228. 00:03:12
Math Operations & Working With Different Kinds Of Values [Day 32]
Урок 229. 00:01:59
The Modulus Operator [Day 32]
Урок 230. 00:06:07
Math Operations & Math Rules [Day 32]
Урок 231. 00:03:04
Performing String (Text) Operations [Day 32]
Урок 232. 00:04:09
String Operations & String Methods [Day 32]
Урок 233. 00:02:18
Basic Array Operations [Day 33]
Урок 234. 00:02:46
Module Summary [Day 33]
Урок 235. 00:01:51
Module Introduction [Day 33]
Урок 236. 00:01:10
Our Starting Setup [Day 33]
Урок 237. 00:06:19
The Global "window" & "document" Objects [Day 33]
Урок 238. 00:04:10
What Is "The DOM"? [Day 33]
Урок 239. 00:07:33
Exploring The DOM [Day 33]
Урок 240. 00:07:50
Drilling Into The DOM To Select & Change HTML Elements [Day 33]
Урок 241. 00:03:50
Loading Our Script Correctly [Day 33]
Урок 242. 00:06:57
The DOM Tree & DOM Traversal [Day 33]
Урок 243. 00:06:57
Drilling Into The DOM & Exploring Text Nodes [Day 34]
Урок 244. 00:03:06
DOM Drilling Limitations [Day 34]
Урок 245. 00:04:06
Searching The DOM For Elements [Day 34]
Урок 246. 00:05:16
Querying Elements [Day 34]
Урок 247. 00:04:53
Time to Practice: The Problem [Day 34]
Урок 248. 00:14:12
Time to Practice: The Solution [Day 34]
Урок 249. 00:01:19
Next Steps [Day 34]
Урок 250. 00:08:36
Inserting New HTML Elements via JavaScript [Day 34]
Урок 251. 00:03:15
Deleting DOM Elements [Day 35]
Урок 252. 00:02:44
Moving Existing Elements Around [Day 35]
Урок 253. 00:07:22
Working with "innerHTML" [Day 35]
Урок 254. 00:02:17
Introducing Events [Day 35]
Урок 255. 00:10:42
Adding a First "click" Event Listener [Day 35]
Урок 256. 00:05:17
Listening To User Input Events [Day 35]
Урок 257. 00:07:41
The "event" Object [Day 35]
Урок 258. 00:18:45
A More Realistic Demo & Example [Day 36]
Урок 259. 00:12:26
Introducing "Constant Variables" ("Constants") [Day 36]
Урок 260. 00:08:12
Changing Element Styles With JavaScript [Day 36]
Урок 261. 00:09:02
Managing CSS Classes With JavaScript [Day 36]
Урок 262. 00:05:55
Module Summary [Day 36]
Урок 263. 00:06:18
Time to Practice: The Problem [Day 37]
Урок 264. 00:18:42
Time to Practice: The Solution [Day 37]
Урок 265. 00:01:06
Module Introduction [Day 37]
Урок 266. 00:04:49
Getting Started with "Control Structures" [Day 37]
Урок 267. 00:08:20
Introducing Boolean Values ("Booleans") & Comparison Operators [Day 37]
Урок 268. 00:08:44
Booleans & Comparison Operators In Action [Day 37]
Урок 269. 00:01:27
Using Booleans In "if" Statements (Conditional Code Execution) [Day 37]
Урок 270. 00:03:06
A Real Example [Day 38]
Урок 271. 00:10:13
Alternatives with "else" and "else if" [Day 38]
Урок 272. 00:05:04
More on Boolean Values [Day 38]
Урок 273. 00:04:23
"Truthy" & "Falsy" Values [Day 38]
Урок 274. 00:06:02
Introducing Loops (Repeated Code Execution) [Day 38]
Урок 275. 00:06:23
The Regular "for" Loop [Day 38]
Урок 276. 00:02:55
The "for-of" Loop (for Arrays) [Day 38]
Урок 277. 00:04:40
The "for-in" Loop (for Objects) [Day 38]
Урок 278. 00:03:15
The "while" Loop [Day 38]
Урок 279. 00:13:55
Practice Time: Setup & The "for" Loop [Day 39]
Урок 280. 00:05:49
Practice Time: The "for-of" Loop [Day 39]
Урок 281. 00:08:57
Practice Time: The "for-in" Loop [Day 39]
Урок 282. 00:17:35
Practice Time: The "while" Loop [Day 39]
Урок 283. 00:03:13
Module Summary [Day 39]
Урок 284. 00:04:48
Module Introduction [Day 40]
Урок 285. 00:03:31
Planning The Project [Day 40]
Урок 286. 00:21:23
Creating The HTML Structure [Day 40]
Урок 287. 00:14:50
Adding Base Page Styles [Day 40]
Урок 288. 00:20:40
Adding Styling For The Game Configuration Area [Day 41]
Урок 289. 00:12:11
Styling The Game Board [Day 41]
Урок 290. 00:10:49
Adding JavaScript, Script Files & First Event Listeners [Day 41]
Урок 291. 00:07:48
Showing & Hiding The Configuration Modal (Overlay) [Day 41]
Урок 292. 00:15:09
Handling Form Submission With JavaScript [Day 42]
Урок 293. 00:17:11
Validating User Input With JavaScript [Day 42]
Урок 294. 00:21:12
Storing & Managing Submitted Data [Day 42]
Урок 295. 00:08:09
Adding Logic For Starting A Game [Day 43]
Урок 296. 00:18:59
Managing Game Rounds (Turns) & Field Selection [Day 43]
Урок 297. 00:12:17
Tracking Selected Fields On The Game Board [Day 43]
Урок 298. 00:24:12
Checking For A Winner Or Draw [Day 44]
Урок 299. 00:19:48
Ending The Game & Adding Restart Logic [Day 44]
Урок 300. 00:03:54
Module Summary [Day 44]
Урок 301. 00:03:14
Module Introduction [Day 45]
Урок 302. 00:06:32
What & Why? [Day 45]
Урок 303. 00:01:59
Third-Party Code vs Custom Code ("Your Own Code") [Day 45]
Урок 304. 00:03:19
First Example: Adding Bootstrap For Some Default Styling [Day 45]
Урок 305. 00:04:22
Adding & Using the Bootstrap CSS Package [Day 45]
Урок 306. 00:03:00
Adding a JavaScript Package [Day 45]
Урок 307. 00:04:20
Adding an Image Carousel / Gallery with a Third-Party Package [Day 45]
Урок 308. 00:06:23
Combining Third-Party Packages With Custom Code [Day 45]
Урок 309. 00:04:53
More Bootstrap Examples [Day 45]
Урок 310. 00:04:54
Exercise Solution & First Summary [Day 45]
Урок 311. 00:08:30
Another Example: Preparing a Parallax Page [Day 45]
Урок 312. 00:09:11
Adding A Parallax Effect Package [Day 46]
Урок 313. 00:02:33
Viewing Third-Party Source Code & Module Summary [Day 46]
Урок 314. 00:01:33
Module Introduction [Day 46]
Урок 315. 00:09:27
What is "The Backend" & Why Do We Need Server-side Code? [Day 46]
Урок 316. 00:06:03
Frontend vs Backend vs Fullstack Development [Day 46]
Урок 317. 00:07:52
Choosing a Backend (Server-side) Programming Language [Day 46]
Урок 318. 00:01:18
Module Introduction [Day 47]
Урок 319. 00:06:01
Installing NodeJS [Day 47]
Урок 320. 00:09:21
Executing NodeJS Code [Day 47]
Урок 321. 00:12:37
Creating a Custom NodeJS Server [Day 47]
Урок 322. 00:13:26
Handling Requests & Creating Custom Responses [Day 47]
Урок 323. 00:07:01
Doing More Server-side Work [Day 47]
Урок 324. 00:02:13
Summary [Day 47]
Урок 325. 00:03:31
Module Introduction [Day 48]
Урок 326. 00:12:58
Installing Express with "npm" [Day 48]
Урок 327. 00:10:57
Creating a Server with Express & Handling Requests + Responses [Day 48]
Урок 328. 00:17:48
Parsing User Data With Express [Day 48]
Урок 329. 00:13:45
Storing Data in (Server-side) Files [Day 48]
Урок 330. 00:06:26
Reading File Data & Returning Dynamic Responses (Dynamic HTML Code) [Day 49]
Урок 331. 00:08:35
Enhancing the Developer Workflow with "nodemon" [Day 49]
Урок 332. 00:03:01
Summary [Day 49]
Урок 333. 00:02:30
Module Introduction [Day 49]
Урок 334. 00:07:31
Creating a Starting Project & What Needs To Change [Day 49]
Урок 335. 00:04:51
Setting Up A Basic Express App (incl. Practice) [Day 49]
Урок 336. 00:12:58
Serving HTML Files With Node & Express [Day 49]
Урок 337. 00:08:05
Serving Static Files (CSS & JavaScript) [Day 50]
Урок 338. 00:11:52
Parsing Form Data & Redirecting Requests [Day 50]
Урок 339. 00:09:46
Adding the EJS Template Engine [Day 50]
Урок 340. 00:06:29
Rendering Dynamic Content With Templates [Day 50]
Урок 341. 00:07:04
Outputting Repeated Content With EJS & Loops [Day 50]
Урок 342. 00:03:16
Rendering Conditional Content [Day 50]
Урок 343. 00:14:54
Including Partial Content [Day 51]
Урок 344. 00:02:18
EJS & IDE Support [Day 51]
Урок 345. 00:03:57
Module Summary [Day 51]
Урок 346. 00:01:25
Module Introduction [Day 51]
Урок 347. 00:16:51
Introducing Dynamic Routes [Day 51]
Урок 348. 00:10:33
Managing Data with Unique IDs [Day 51]
Урок 349. 00:07:13
Loading & Displaying Detail Data [Day 52]
Урок 350. 00:06:41
Showing a 404 Page For "Not Found" Cases [Day 52]
Урок 351. 00:05:50
More 404 Page Usage (Non-Existent Routes) [Day 52]
Урок 352. 00:08:35
Handling Server-Side Errors (500 Status Code) [Day 52]
Урок 353. 00:07:37
Working With Status Codes [Day 52]
Урок 354. 00:10:24
Code Refactoring & Adding More Functions [Day 52]
Урок 355. 00:12:46
Importing & Exporting Code In NodeJS [Day 53]
Урок 356. 00:13:44
Using The Express Router To Split The Route Configuration [Day 53]
Урок 357. 00:20:29
Introducing Query Parameters (& Hidden Form Fields) [Day 53]
Урок 358. 00:02:35
Module Summary [Day 53]
Урок 359. 00:05:19
Module Introduction [Day 54]
Урок 360. 00:06:36
Functions & Default Parameters [Day 54]
Урок 361. 00:11:58
Rest Parameters & The Spread Operator [Day 54]
Урок 362. 00:06:04
Functions Are Objects! [Day 54]
Урок 363. 00:03:57
Working with Template Literals [Day 54]
Урок 364. 00:17:42
Primitive vs Reference Values [Day 54]
Урок 365. 00:10:13
Custom Error Handling With try / catch [Day 55]
Урок 366. 00:08:17
Variable Scoping & Shadowing [Day 55]
Урок 367. 00:11:54
Introducing Classes As Object Blueprints [Day 55]
Урок 368. 00:05:24
Classes & Methods (and "this") [Day 55]
Урок 369. 00:08:22
Destructuring Objects & Arrays [Day 55]
Урок 370. 00:13:23
Diving Into Asynchronous Code & Callback Functions [Day 56]
Урок 371. 00:07:20
Introducing Promises [Day 56]
Урок 372. 00:02:40
Asynchronous Code & Error Handling [Day 56]
Урок 373. 00:06:53
Improving Code With async / await [Day 56]
Урок 374. 00:05:26
Module Summary [Day 56]
Урок 375. 00:01:32
Module Introduction [Day 56]
Урок 376. 00:08:20
Why Databases? And What Are Databases In The First Place? [Day 56]
Урок 377. 00:06:46
A Quick Introduction To SQL Databases (RDBMS) [Day 57]
Урок 378. 00:04:19
A Quick Introduction To NoSQL Databases [Day 57]
Урок 379. 00:05:00
SQL vs NoSQL Databases [Day 57]
Урок 380. 00:02:46
Module Introduction [Day 57]
Урок 381. 00:05:54
What & Why? [Day 57]
Урок 382. 00:02:57
RDBMS Options [Day 57]
Урок 383. 00:13:04
Installing MySQL & Setup Steps [Day 57]
Урок 384. 00:03:26
Database Server vs Databases vs Tables [Day 57]
Урок 385. 00:07:13
Writing Our First SQL Code & Creating a Database [Day 57]
Урок 386. 00:13:36
Creating a Table & Table Structure [Day 58]
Урок 387. 00:04:10
Inserting Data Into A Table [Day 58]
Урок 388. 00:09:18
Reading Data From A Table (incl. Filtering) [Day 58]
Урок 389. 00:05:49
Updating & Deleting Data [Day 58]
Урок 390. 00:05:26
Designing A More Complex Database [Day 58]
Урок 391. 00:08:08
Adding A New Table [Day 58]
Урок 392. 00:15:14
Implementing A More Complex Design With Relations [Day 59]
Урок 393. 00:07:54
Inserting Related Data [Day 59]
Урок 394. 00:05:25
Practice: Inserting Related Data [Day 59]
Урок 395. 00:08:49
Querying & Joining Related Data [Day 59]
Урок 396. 00:04:58
Practice: Joining Data [Day 59]
Урок 397. 00:04:35
Module Summary & More On Relationships [Day 59]
Урок 398. 00:01:50
Module Introduction [Day 60]
Урок 399. 00:03:30
Why Should Database-Accessing Code Run On The Backend? [Day 60]
Урок 400. 00:03:59
What We'll Build In This Section [Day 60]
Урок 401. 00:05:00
Planning Our Database Structure [Day 60]
Урок 402. 00:09:51
Database Initialization [Day 60]
Урок 403. 00:07:03
Project Setup [Day 60]
Урок 404. 00:08:20
Creating Our First Routes [Day 60]
Урок 405. 00:16:41
Connecting To The Database & Querying Data [Day 61]
Урок 406. 00:14:02
Inserting Data With Placeholders (Injecting Dynamic Data) [Day 61]
Урок 407. 00:13:12
Fetching & Displaying a List Of Blog Posts [Day 61]
Урок 408. 00:16:46
Fetching & Displaying a Single Blog Post [Day 62]
Урок 409. 00:08:08
Formatting & Transforming Fetched Data [Day 62]
Урок 410. 00:08:43
Preparing The "Update Post" Page [Day 62]
Урок 411. 00:06:28
Updating Posts [Day 62]
Урок 412. 00:04:25
Deleting Posts [Day 62]
Урок 413. 00:02:18
Module Summary [Day 62]
Урок 414. 00:01:34
Module Introduction [Day 63]
Урок 415. 00:09:23
The Idea Behind NoSQL Database Systems [Day 63]
Урок 416. 00:01:36
Introducing MongoDB [Day 63]
Урок 417. 00:17:42
General Setup Instructions & Installing MongoDB on macOS [Day 63]
Урок 418. 00:08:58
Installing MongoDB on Windows [Day 63]
Урок 419. 00:05:18
Installing the MongoDB Shell [Day 63]
Урок 420. 00:10:18
Inserting Data with MongoDB [Day 63]
Урок 421. 00:06:00
Reading & Filtering Data [Day 64]
Урок 422. 00:06:02
Updating Documents In A MongoDB Database [Day 64]
Урок 423. 00:02:27
Deleting Documents With MongoDB [Day 64]
Урок 424. 00:08:48
Planning a Complete Database Design / Layout [Day 64]
Урок 425. 00:13:03
Implementing the Planned Design & Layout [Day 64]
Урок 426. 00:07:59
Practice Time & More Filtering Operators [Day 64]
Урок 427. 00:02:39
Module Introduction [Day 65]
Урок 428. 00:09:49
Planning the Database Structure & Layout [Day 65]
Урок 429. 00:06:48
Project & Database Initialization [Day 65]
Урок 430. 00:13:07
Connecting to MongoDB (from inside NodeJS) [Day 65]
Урок 431. 00:08:45
Fetching & Displaying A List Of Authors [Day 65]
Урок 432. 00:14:43
Inserting Documents (New Posts) [Day 65]
Урок 433. 00:10:28
Fetching & Displaying Documents [Day 66]
Урок 434. 00:09:45
Fetching a Single Document [Day 66]
Урок 435. 00:05:11
Transforming & Preparing Data [Day 66]
Урок 436. 00:11:59
Updating Documents [Day 66]
Урок 437. 00:04:17
Deleting Documents [Day 66]
Урок 438. 00:06:55
ExpressJS & Handling Asynchronous Code Errors [Day 67]
Урок 439. 00:02:01
Module Introduction [Day 67]
Урок 440. 00:03:41
The Two Sides Of Uploading Files & Setting Up A Starting Project [Day 67]
Урок 441. 00:08:06
Adding A File Picker To A Form [Day 67]
Урок 442. 00:09:31
Parsing Incoming File Uploads With The "multer" Package [Day 67]
Урок 443. 00:07:22
How To Store Files On A Backend [Day 67]
Урок 444. 00:07:47
Configuring Multer In-Depth [Day 67]
Урок 445. 00:03:26
Storing File Data In A Database (And What NOT To Store) [Day 68]
Урок 446. 00:09:05
Serving Uploaded Files To Website Visitors [Day 68]
Урок 447. 00:10:24
Adding An Image Preview Feature [Day 68]
Урок 448. 00:02:49
Module Summary [Day 68]
Урок 449. 00:01:44
Module Introduction [Day 68]
Урок 450. 00:09:27
What Is Ajax? And Why Would We Need It? [Day 68]
Урок 451. 00:10:59
What is "Ajax"? [Day 68]
Урок 452. 00:05:23
The Starting Project & A Problem [Day 69]
Урок 453. 00:19:10
Sending & Handling a GET Ajax Request [Day 69]
Урок 454. 00:08:44
Updating The DOM Based On The Response [Day 69]
Урок 455. 00:07:58
Preparing The POST Request Data [Day 69]
Урок 456. 00:15:29
Sending & Handling a POST Ajax Request [Day 69]
Урок 457. 00:05:58
Improving The User Experience (UX) [Day 70]
Урок 458. 00:08:01
Handling Errors (Server-side & Technical) [Day 70]
Урок 459. 00:08:20
We Now Have More HTTP Methods! [Day 70]
Урок 460. 00:04:26
Module Summary [Day 70]
Урок 461. 00:02:41
Module Introduction [Day 70]
Урок 462. 00:04:00
What is "Authentication" & Why Would You Want To Add It To A Website? [Day 70]
Урок 463. 00:04:48
Our Starting Project [Day 70]
Урок 464. 00:08:21
Adding a Basic Signup Functionality [Day 70]
Урок 465. 00:07:00
Must-Do: Hashing Passwords [Day 71]
Урок 466. 00:08:48
Adding User Login Functionality [Day 71]
Урок 467. 00:05:38
Validating Signup Information [Day 71]
Урок 468. 00:12:23
Introducing Sessions & Cookies - The Stars Of Authentication [Day 71]
Урок 469. 00:12:11
Adding Sessions Support To Our Website [Day 71]
Урок 470. 00:07:23
Storing Authentication Data In Sessions [Day 72]
Урок 471. 00:11:40
Using Sessions & Cookies For Controlling Access [Day 72]
Урок 472. 00:04:37
Adding The Logout Functionality [Day 72]
Урок 473. 00:07:01
A Closer Look At Cookies [Day 72]
Урок 474. 00:19:04
Diving Deeper Into Sessions (Beyond Authentication) [Day 72]
Урок 475. 00:12:14
Authorization vs Authentication [Day 73]
Урок 476. 00:06:27
Practicing Sessions & Working With Sessions [Day 73]
Урок 477. 00:13:41
Writing Custom Middlewares & Using "res.locals" [Day 73]
Урок 478. 00:02:21
Module Summary [Day 73]
Урок 479. 00:02:12
Module Introduction [Day 74]
Урок 480. 00:03:04
Authentication vs Website Security [Day 74]
Урок 481. 00:14:04
Understanding CSRF Attacks [Day 74]
Урок 482. 00:05:18
Partial CSRF Protection With "Same-Site" Cookies [Day 74]
Урок 483. 00:08:21
Implementing A Better CSRF Protection [Day 74]
Урок 484. 00:09:51
Understanding XSS Attacks [Day 74]
Урок 485. 00:12:24
Protecting Against XSS Attacks [Day 74]
Урок 486. 00:08:58
Understanding SQL Injection Attacks [Day 75]
Урок 487. 00:05:23
Protecting Against SQL Injection Attacks [Day 75]
Урок 488. 00:01:20
A Word About NoSQL Injection [Day 75]
Урок 489. 00:02:06
Module Summary [Day 75]
Урок 490. 00:05:06
Avoid Exposing Your Server-side Code or Data Accidentally! [Day 75]
Урок 491. 00:02:33
Module Introduction [Day 75]
Урок 492. 00:18:34
Our Starting Project (Deep Dive) [Day 75]
Урок 493. 00:05:00
What's Wrong With Our Code? [Day 75]
Урок 494. 00:05:32
Splitting Our Routes [Day 76]
Урок 495. 00:06:59
Extracting Configuration Settings [Day 76]
Урок 496. 00:06:27
Extracting Custom Middleware [Day 76]
Урок 497. 00:04:46
An Introduction To The MVC Pattern [Day 76]
Урок 498. 00:11:23
Creating Our First Model [Day 76]
Урок 499. 00:09:39
Adding Update & Delete Functionalities To The Model [Day 76]
Урок 500. 00:11:17
Adding Fetch Functionalities To The Model [Day 76]
Урок 501. 00:07:55
Adding A First Controller & Controller Actions [Day 77]
Урок 502. 00:18:31
Refactoring The Sessions & Input Validation Errors Functionality [Day 77]
Урок 503. 00:06:23
Refactoring The CSRF Token Handling [Day 77]
Урок 504. 00:08:02
Migrating The "Authentication" Functionality To MVC [Day 77]
Урок 505. 00:05:14
Improving Asynchronous Error Handling [Day 78]
Урок 506. 00:14:40
Protecting Routes With Custom Middleware [Day 78]
Урок 507. 00:04:01
Module Introduction [Day 78]
Урок 508. 00:07:36
Planning The Project [Day 78]
Урок 509. 00:01:53
Your Challenge! [Day 78]
Урок 510. 00:07:22
Course Project Setup [Day 78]
Урок 511. 00:15:43
Creating Folders, Files & A First Set Of Routes [Day 78]
Урок 512. 00:13:45
Adding EJS & First Views [Day 79]
Урок 513. 00:12:52
Populating & Rendering The First View [Day 79]
Урок 514. 00:11:11
Adding Base CSS Files & Static File Serving [Day 79]
Урок 515. 00:09:25
Adding CSS Variables & A Website Theme [Day 79]
Урок 516. 00:13:29
More Base CSS Styles For The Website [Day 80]
Урок 517. 00:09:55
Styling First Form Elements [Day 80]
Урок 518. 00:13:57
Adding A MongoDB Database Server & Connection [Day 80]
Урок 519. 00:21:45
Adding User Signup [Day 81]
Урок 520. 00:09:27
Security Time: Adding CSRF Protection [Day 81]
Урок 521. 00:08:00
Implementing Proper Error Handling With The Error Handling Middleware [Day 81]
Урок 522. 00:10:16
Introducing Sessions & Configuring Sessions [Day 81]
Урок 523. 00:18:27
Implementing Authentication & User Login [Day 82]
Урок 524. 00:08:10
Finishing Authentication & Checking The Auth Status (Custom Middleware) [Day 82]
Урок 525. 00:06:02
Adding Logout Functionality [Day 82]
Урок 526. 00:04:48
Handling Errors In Asynchronous Code [Day 82]
Урок 527. 00:16:37
Adding User Input Validation [Day 82]
Урок 528. 00:14:38
Flashing Errors & Input Data Onto Sessions [Day 83]
Урок 529. 00:16:41
Displaying Error Messages & Saving User Input [Day 83]
Урок 530. 00:10:43
Admin Authorization & Protected Navigation [Day 83]
Урок 531. 00:14:20
Setting Up Base Navigation Styles [Day 83]
Урок 532. 00:19:16
Building a Responsive Website [Day 84]
Урок 533. 00:11:37
Frontend JavaScript For Toggling The Mobile Menu [Day 84]
Урок 534. 00:19:52
Adding Product Admin Pages & Forms [Day 84]
Урок 535. 00:14:38
Adding The Image Upload Functionality [Day 85]
Урок 536. 00:14:20
More Data: Adding a Product Model & Storing Products In The Database [Day 85]
Урок 537. 00:19:22
Fetching & Outputting Product Items [Day 85]
Урок 538. 00:11:44
Styling Product Items [Day 86]
Урок 539. 00:17:07
Adding the "Product Details" (Single Product) Page [Day 86]
Урок 540. 00:18:37
Updating Products (As Administrator) [Day 86]
Урок 541. 00:14:33
Adding a "File Upload" Preview [Day 87]
Урок 542. 00:08:45
Making Products Deletable [Day 87]
Урок 543. 00:19:49
Using Ajax / Frontend JS Requests & Updating The DOM [Day 87]
Урок 544. 00:14:15
Various Fixes & Proper Route Protection [Day 88]
Урок 545. 00:11:45
Outputting Products For Customers [Day 88]
Урок 546. 00:11:15
Outputting Product Details [Day 88]
Урок 547. 00:19:36
Adding A Cart Model [Day 89]
Урок 548. 00:13:19
Working On The Shopping Cart Logic [Day 89]
Урок 549. 00:17:55
Adding Cart Items Via Ajax Requests [Day 89]
Урок 550. 00:15:59
Adding A Cart Page [Day 90]
Урок 551. 00:08:58
Styling The Cart Page [Day 90]
Урок 552. 00:14:03
Updating Cart Items (Changing Quantities) [Day 90]
Урок 553. 00:10:44
Updating Carts Via Ajax Requests (PATCH Requests) [Day 90]
Урок 554. 00:12:33
Updating The DOM After Cart Item Updates [Day 91]
Урок 555. 00:14:35
Adding The Order Controller & A Basic Order Model [Day 91]
Урок 556. 00:15:38
Saving Orders In The Database [Day 91]
Урок 557. 00:11:03
Displaying Orders (For Customers & Administrators) [Day 92]
Урок 558. 00:10:11
Managing Orders As An Administrator [Day 92]
Урок 559. 00:13:41
Keeping Cart Items Updated [Day 92]
Урок 560. 00:06:26
Bugfixing & Polishing [Day 92]
Урок 561. 00:03:01
Module Summary [Day 92]
Урок 562. 00:01:34
Module Introduction [Day 93]
Урок 563. 00:12:02
What Are "Services" & "APIs"? [Day 93]
Урок 564. 00:02:49
Why Would You Use Services & APIs? [Day 93]
Урок 565. 00:04:26
Introducing Stripe [Day 93]
Урок 566. 00:03:15
Creating A Stripe Account [Day 93]
Урок 567. 00:15:55
Setting Up A Stripe API Request [Day 93]
Урок 568. 00:09:41
Configuring The Stripe Request & Handling Payments [Day 93]
Урок 569. 00:01:15
Module Summary [Day 93]
Урок 570. 00:02:07
Module Introduction [Day 94]
Урок 571. 00:05:17
How Are Websites Made Available To The Public? [Day 94]
Урок 572. 00:04:01
Static vs Dynamic Websites [Day 94]
Урок 573. 00:03:54
Hosting Database Servers [Day 94]
Урок 574. 00:03:07
Deployment (Preparation) Steps [Day 94]
Урок 575. 00:04:28
The Example Projects [Day 94]
Урок 576. 00:12:33
Testing & Code Preparation (incl. Environment Variables) [Day 94]
Урок 577. 00:05:25
Evaluating Cross-Browser Support [Day 94]
Урок 578. 00:05:31
Search Engine Optimization (SEO) [Day 94]
Урок 579. 00:03:22
Improving Performance & Shrinking Assets (JS, Images) [Day 95]
Урок 580. 00:05:09
Deployment Example: Static Websites (Refresher) [Day 95]
Урок 581. 00:10:43
Deployment Example: Dynamic Website With Backend Code [Day 95]
Урок 582. 00:07:15
Deploying A MongoDB Database With Atlas [Day 95]
Урок 583. 00:08:13
Finishing Dynamic Website Deployment [Day 95]
Урок 584. 00:01:15
Module Introduction [Day 95]
Урок 585. 00:04:31
APIs & Services: What & Why? [Day 95]
Урок 586. 00:04:03
JS Packages vs URL-based APIs: What We Will Build Here [Day 95]
Урок 587. 00:07:40
APIs vs "Traditional Websites" [Day 95]
Урок 588. 00:07:34
Introducing REST APIs [Day 96]
Урок 589. 00:08:31
Building A First Basic REST API [Day 96]
Урок 590. 00:20:01
Enhancing The API & Making It More Realistic [Day 96]
Урок 591. 00:17:57
A More Complex REST API: First Steps [Day 96]
Урок 592. 00:03:27
Finishing The First API Endpoints [Day 97]
Урок 593. 00:06:59
Testing APIs With Postman [Day 97]
Урок 594. 00:07:45
Adding PATCH & DELETE Routes / Endpoints [Day 97]
Урок 595. 00:16:22
Adding A Decoupled Frontend Website (SPA) [Day 97]
Урок 596. 00:03:24
Why Would You Use A Decoupled Frontend / SPA? [Day 97]
Урок 597. 00:05:41
Understanding CORS Errors [Day 97]
Урок 598. 00:06:35
Fixing CORS Errors & Connecting The Frontend SPA To The REST API [Day 97]
Урок 599. 00:04:28
Module Introduction [Day 98]
Урок 600. 00:06:53
Why Would You Use Frontend JavaScript UI Frameworks? [Day 98]
Урок 601. 00:02:46
React vs Vue vs Angular: Which Framework Should You Use? [Day 98]
Урок 602. 00:13:41
Getting Started With Vue.js ("Vue") [Day 98]
Урок 603. 00:07:31
Listening To Events & Updating Data + the DOM [Day 98]
Урок 604. 00:05:05
Introducing "Two-Way-Binding" [Day 98]
Урок 605. 00:08:30
Outputting Lists Of Data [Day 99]
Урок 606. 00:03:22
Outputting Content Conditionally [Day 99]
Урок 607. 00:11:20
Updating Data [Day 99]
Урок 608. 00:05:06
Deleting Data [Day 99]
Урок 609. 00:06:56
Sending a POST Http Request [Day 99]
Урок 610. 00:09:43
Loading Data & Managing Loading States [Day 99]
Урок 611. 00:02:11
Loading Vue Differently [Day 99]
Урок 612. 00:06:22
Sending PATCH + DELETE Requests & Module Summary [Day 99]
Урок 613. 00:05:12
Bonus: Possible Next Steps, Practice Opportunities & Project Ideas [Day 100]
как включить русские сабы?
там только англ и выкл
What & Why? [Day 57]
05:53
RDBMS Options [Day 57]
02:56
Installing MySQL & Setup Steps [Day 57]
13:03
А почему меня закрикроллили?
Я не могу смотреть онлайн с премиум подпиской?