Autoplay
Autocomplete
Previous Lesson
Complete and Continue
The Complete Web Development Bootcamp
01 Front-End Web Development
001 What You'll Get in This Course (3:09)
004 How to Get the Most Out of the Course (9:33)
006 How Does the Internet Actually Work_ (5:42)
007 How Do Websites Actually Work_ (6:20)
008 What You'll Need to Get Started - Setup Your Local Web Development Environment (6:59)
009 How to Get Help When You're Stuck (6:39)
02 Introduction to HTML
011 Introduction to HTML (10:51)
012 The Anatomy of an HTML Tag (10:55)
013 What we're building - HTML Personal Site (2:52)
014 What is The HTML Boilerplate_ (17:01)
015 How to Structure Text in HTML (11:00)
016 HTML Lists (5:24)
017 HTML Image Elements (7:32)
018 HTML Links and Anchor Tags (11:55)
019 How to Ace this Course (1:24)
03 Intermediate HTML
020 HTML Tables (11:57)
021 Using HTML Tables for Layout (2:17)
022 HTML Tables Code Challenge (1:44)
024 HTML Tables Solution Walkthrough (6:42)
025 HTML Forms (9:09)
026 Forms in Practice - Create a Contact Me Form (7:27)
027 Publish Your Website! (6:44)
028 Tip from Angela - Habit Building with the Calendar Trick (2:52)
04 Introduction to CSS
030 Introduction to CSS (3:04)
031 Inline CSS (9:56)
033 Internal CSS (20:22)
034 External CSS (8:29)
035 How to Debug CSS Code (13:37)
036 The Anatomy of CSS Syntax (13:08)
037 CSS Selectors (6:23)
038 Classes vs. Ids (11:44)
039 Tip from Angela - Dealing with Distractions (2:28)
05 Intermediate CSS
041 What We'll Make - Stylised Personal Site (4:57)
042 What Are Favicons_ (3:47)
043 HTML Divs (13:33)
044 The Box Model of Website Styling (19:25)
045 CSS Display Property (15:11)
047 CSS Static and Relative Positioning (14:36)
048 Absolute positioning (12:12)
049 The Dark Art of Centering Elements with CSS (9:03)
050 Font Styling in Our Personal Site (13:59)
052 Adding Content to Our Website (6:53)
053 CSS Sizing (15:39)
057 CSS Font Property Challenge Solutions (3:57)
058 CSS Float and Clear (15:14)
060 Stylised Personal Site Solution Walkthrough (21:22)
062 Tip from Angela - Nothing Easy is Worth Doing! (3:35)
06 Introduction to Bootstrap 4
063 What is Bootstrap_ (14:36)
064 Installing Bootstrap (7:55)
065 Web Design 101 - Wireframing (11:38)
066 The Bootstrap Navigation Bar (20:40)
067 What We'll Make_ TinDog (0:56)
069 Setting Up Our New Project (7:42)
070 Bootstrap Grid Layout System (20:17)
072 Adding Grid Layouts to Our Website (9:39)
074 Bootstrap Containers (5:54)
075 Bootstrap Buttons & Font Awesome (11:30)
076 Styling Our Website Challenges and Solutions (20:20)
078 Solution to Bootstrap Challenge 1 (17:01)
079 Tip from Angela - How to Deal with Procrastination (4:08)
07 Intermediate Bootstrap
080 The Bootstrap Carousel Part 1 (9:39)
081 The Bootstrap Carousel Part 2 (17:20)
082 Bootstrap Cards (16:32)
083 The CSS Z-Index and Stacking Order (21:28)
084 Media Query Breakpoints (22:03)
086 Bootstrap Challenge 2 Solution (11:46)
087 How to become a Better Programmer - Code Refactoring (7:48)
088 Put it into Practice - Refactor our Website Part 1 (19:20)
089 Advanced CSS - Combining Selectors (11:43)
090 Refactoring our Website Part 2 (5:21)
091 Advanced CSS - Selector Priority (5:51)
092 Completing the Website (2:34)
094 Tip from Angela - Building a Programming Habit (2:47)
08 Web Design School - Create a Website that People Love
095 Introduction to Web Design (3:55)
096 Understanding Colour Theory (9:04)
097 Understanding Typography and How to Choose a Font (10:28)
098 Manage ATTENTION with effective User Interface (UI) Design (10:27)
099 User Experience (UX) Design (13:39)
100 Web Design in Practice - Let's apply what we've learnt! (18:20)
09 Introduction to Javascript ES6
101 Introduction to Javascript (11:49)
102 Javascript Alerts - Adding Behaviour to Websites (14:21)
103 Data Types (4:06)
104 Javascript Variables (9:35)
105 Javascript Variables Exercise Start (2:48)
106 Javascript Variables Exercise Solution (3:28)
107 Naming and Naming Conventions for Javascript Variables (7:10)
108 String Concatenation (3:07)
109 String Lengths and Retrieving the Number of Characters (6:24)
110 Slicing and Extracting Parts of a String (8:57)
111 Challenge_ Changing Casing in Text (3:39)
112 Challenge_ Changing String Casing Solution (9:00)
113 Basic Arithmetic and the Modulo Operator in Javascript (6:14)
114 Increment and Decrement Expressions (2:28)
115 Functions Part 1_ Creating and Calling Functions (10:35)
116 Functions Part 1 Challenge - The Karel Robot (9:08)
119 Functions Part 2_ Parameters and Arguments (9:52)
120 Life in Weeks Solution (3:44)
121 Functions Part 3_ Outputs & Return Values (11:16)
122 Challenge_ Create a BMI Calculator (1:49)
123 Challenge_ BMI Calculator Solution (5:39)
124 Tip from Angela - Set Your Expectations (2:35)
10 Intermediate Javascript
125 Random Number Generation in Javascript_ Building a Love Calculator (11:15)
126 Control Statements_ Using If-Else Conditionals & Logic (4:48)
127 Comparators and Equality (2:51)
128 Combining Comparators (2:46)
129 Introducing the Leap Year Code Challenge (4:16)
130 Leap Year Solution (3:03)
131 Collections_ Working with Javascript Arrays (9:02)
132 Adding Elements and Intermediate Array Techniques (15:58)
133 Who's Buying Lunch Solution (3:43)
134 Control Statements_ While Loops (7:53)
136 Control Statements_ For Loops (6:10)
137 Introducing the Fibonacci Code Challenge (6:37)
138 Fibonacci Solution (8:16)
139 Tip from Angela - Retrieval is How You Learn (2:52)
11 The Document Object Model (DOM)
140 Adding Javascript to Websites (10:44)
141 Introduction to the Document Object Model (DOM) (12:28)
143 Selecting HTML Elements with Javascript (14:17)
144 Manipulating and Changing Styles of HTML Elements with Javascript (5:01)
145 The Separation of Concerns_ Structure vs Style vs Behaviour (5:57)
146 Text Manipulation and the Text Content Property (2:37)
147 Manipulating HTML Element Attributes (2:27)
148 Tip from Angela - The 20 Minute Method (2:39)
12 Boss Level Challenge 1 - The Dicee Game
149 Challenge_ The Dicee Challenge (2:14)
157 The Solution to the Dicee Challenge (14:43)
159 Tip from Angela - Learning Before you Eat (2:06)
13 Advanced Javascript and DOM Manipulation
160 What We'll Make_ Drum Kit (1:19)
170 Using Keyboard Event Listeners to Check for Key Presses (7:37)
162 Adding Event Listeners to a Button (14:29)
163 Higher Order Functions and Passing Functions as Arguments (12:40)
165 How to Play Sounds on a Website (11:11)
166 A Deeper Understanding of Javascript Objects (12:04)
167 How to Use Switch Statements in Javascript (5:23)
168 Objects, their Methods and the Dot Notation (6:29)
171 Understanding Callbacks and How to Respond to Events (11:35)
172 Adding Animation to Websites (8:31)
174 Tip from Angela - Dealing with Lack of Progress (3:08)
14 jQuery
175 What is jQuery_ (3:44)
176 How to Incorporate jQuery into Websites (9:08)
177 How Minification Works to Reduce File Size (3:59)
178 Selecting Elements with jQuery (2:01)
179 Manipulating Styles with jQuery (5:13)
180 Manipulating Text with jQuery (3:36)
181 Manipulating Attributes with jQuery (3:44)
182 Adding Event Listeners with jQuery (7:47)
183 Adding and Removing Elements with jQuery (2:58)
184 Website Animations with jQuery (8:13)
185 Tip from Angela - Mixing Knowledge (2:20)
15 Boss Level Challenge 2 - The Simon Game
210 Tip from Angela - Dealing with Frustration (2:31)
186 What You'll Make_ The Simon Game (1:00)
16 The Unix Command Line
212 Command Line Hyper Setup (4:53)
213 Understanding the Command Line. Long Live the Command Line! (5:55)
214 Command Line Techniques and Directory Navigation (10:13)
215 Creating, Opening, and Removing Files through the Command Line (9:10)
216 Tip from Angela - Sleep is My Secret Weapon (3:49)
17 Backend Web Development
217 Backend Web Development Explained (8:02)
18 Node.js
218 What is Node.js_ (5:40)
221 The Power of the Command Line and How to Use Node (6:27)
222 The Node REPL (Read Evaluation Print Loops) (2:39)
223 How to Use the Native Node Modules (8:19)
224 The NPM Package Manager and Installing External Node Modules (13:44)
225 Tip from Angela - Step Up to the Challenge (1:14)
19 Express.js with Node.js
226 What is Express_ (3:24)
227 Creating Our First Server with Express (11:29)
228 Handling Requests and Responses_ the GET Request (8:12)
230 Understanding and Working with Routes (9:23)
231 What We'll Make_ A Calculator (1:52)
233 Calculator Setup_ Challenge Solution (5:43)
234 Responding to Requests with HTML Files (7:40)
235 Processing Post Requests with Body Parser (14:19)
237 Solution to the BMI Routing Challenge (6:29)
238 Tip from Angela - How to Solidify Your Knowledge (2:55)
20 APIs - Application Programming Interfaces
239 Why Do We Need APIs_ (8:50)
240 API Endpoints, Paths and Parameters (10:59)
241 API Authentication and Postman (11:34)
242 What is JSON_ (4:54)
243 Making GET Requests with the Node HTTPS Module (13:00)
244 How to Parse JSON (13:05)
245 Using Express to Render a Website with Live API Data (8:23)
246 Using Body Parser to Parse POST Requests to the Server (10:05)
247 The Mailchimp API - What You'll Make (2:41)
248 Setting Up the Sign Up Page (20:52)
249 Posting Data to Mailchimp's Servers via their API (18:37)
250 Adding Success and Failure Pages (8:55)
251 Deploying Your Server with Heroku (18:39)
252 Tip from Angela - Location, Location, Location! (2:06)
21 Git, Github and Version Control
253 Introduction to Version Control and Git (2:35)
254 Version Control Using Git and the Command Line (15:02)
255 GitHub and Remote Repositories (11:00)
257 Gitignore (12:02)
258 Cloning (5:05)
259 Branching and Merging (17:25)
261 Forking and Pull Requests (17:09)
262 Tip from Angela - Spaced Repetition (4:01)
22 EJS
263 What We'll Make_ A ToDoList (0:46)
265 Templates_ Why Do We Need Templates_ (15:10)
266 Creating Your First EJS Templates (17:53)
267 Running Code Inside the EJS Template (6:33)
268 Passing Data from Your Webpage to Your Server (25:05)
269 The Concept of Scope in the Context of Javascript (8:40)
270 Adding Pre-Made CSS Stylesheets to Your Website (16:14)
271 Understanding Templating vs. Layouts (13:35)
273 Tip from Angela - Use Accountability in your Favour (2:56)
272 Understanding Node Module Exports_ How to Pass Functions and Data between Files (21:45)
23 Boss Level Challenge 3 - Blog Website
274 A New Challenge Format and What We'll Make_ A Blog (6:18)
275 Setting Up the Blog Project (7:06)
276 Challenge 1 (4:04)
277 Challenge 1 Solution (2:37)
279 Challenge 2 Solution (2:09)
280 Challenge 3 (2:37)
281 Challenge 3 Solution (2:31)
282 Challenge 4 (2:05)
283 Challenge 4 Solution (1:52)
284 Challenge 5 (2:47)
285 Challenge 5 Solution (4:16)
286 Challenge 6 (1:24)
287 Challenge 6 Solution (1:15)
288 Challenge 7 (0:59)
289 Challenge 7 Solution (1:54)
290 Challenge 8 (3:26)
291 Challenge 8 Solution (3:36)
292 Challenge 9 (4:43)
293 Challenge 9 Solution (6:33)
294 Challenge 10 (2:24)
295 Challenge 10 Solution (3:13)
296 Challenge 11 (3:21)
297 Challenge 11 Solution (3:00)
298 Challenge 12 (1:55)
299 Challenge 12 Solution (2:35)
300 Challenge 13 (2:46)
301 Challenge 13 Solution (3:37)
302 Challenge 14 and Solution (6:28)
303 Challenge 15 (1:41)
304 Challenge 15 Solution (3:14)
305 Express Routing Parameters (6:38)
306 Challenge 16 (1:55)
307 Challenge 16 Solution (2:32)
308 Challenge 17 (3:54)
309 Challenge 17 Solution (5:30)
310 Challenge 18 (6:04)
311 Challenge 18 Solution (4:19)
312 Challenge 19 (2:57)
313 Challenge 19 Solution (4:54)
314 Challenge 20 (2:58)
315 Challenge 20 Solution (3:18)
316 Challenge 21 (2:15)
317 Challenge 21 Solution (3:44)
318 Tip from Angela - When Life Gives You Lemons (6:01)
24 Databases
319 Databases Explained_ SQL vs. NOSQL (19:58)
25 SQL
320 SQL Commands_ CREATE Table and INSERT Data (13:48)
321 SQL Commands_ READ, SELECT, and WHERE (3:10)
322 Updating Single Values and Adding Columns in SQL (4:42)
323 SQL Commands_ DELETE (1:32)
324 Understanding SQL Relationships, Foreign Keys and Inner Joins (11:13)
325 Tip from Angela - Find All the Hard Working People (2:01)
26 MongoDB
326 Installing MongoDB on Mac (12:34)
327 Installing MongoDB on Windows (9:20)
328 MongoDB CRUD Operations in the Shell_ Create (9:37)
329 MongoDB CRUD Operations in the Shell_ Reading & Queries (6:22)
330 MongoDB CRUD Operations in the Shell_ Update (4:07)
331 MongoDB CRUD Operations in the Shell_ Delete (1:45)
332 Relationships in MongoDB (6:12)
333 Working with The Native MongoDB Driver (19:03)
335 Tip from Angela - Daily Routines (2:34)
27 Mongoose
336 Introduction to Mongoose (20:26)
337 Reading from Your Database with Mongoose (7:28)
338 Data Validation with Mongoose (7:56)
339 Updating and Deleting Data Using Mongoose (10:06)
340 Establishing Relationships and Embedding Documents using Mongoose (6:45)
341 Tip from Angela - Deep Work (3:01)
28 Putting Everything Together
342 Let's take the ToDoList Project to the Next Level and Connect it with Mongoose (16:46)
343 Rendering Database Items in the ToDoList App (13:25)
344 Adding New Items to our ToDoList Database (3:56)
345 Deleting Items from our ToDoList Database (13:48)
346 Creating Custom Lists using Express Route Parameters (16:12)
347 Adding New Items to the Custom ToDo Lists (7:31)
348 Revisiting Lodash and Deleting Items from Custom ToDo Lists (19:10)
349 Tip from Angela - One Step at a Time (2:54)
29 Deploying Your Web Application
350 How to Deploy Web Apps with a Database (5:02)
351 How to Setup MongoDB Atlas (13:41)
352 Deploying an App with a Database to Heroku (12:13)
353 Tip from Angela - Discipline Breeds Discipline (2:20)
30 Boss Level Challenge 4 - Blog Website Upgrade
354 Challenge_ Give your Blog a Database (2:31)
361 Tip from Angela - Dealing with Limitations (5:22)
31 Build Your Own RESTful API From Scratch
362 What is REST_ (17:08)
363 Creating a Database with Robo 3T (9:29)
364 Set Up Server Challenge (2:09)
365 Set Up Server Solution (7:30)
366 GET All Articles (6:50)
367 POST a New Article (12:51)
368 DELTE All Articles (5:12)
369 Chained Route Handlers Using Express (7:07)
370 GET a Specific Article (14:02)
371 PUT a Specific Article (10:32)
372 PATCH a Specific Article (7:17)
373 DELETE a Specific Article (4:04)
375 Tip from Angela - How to Get a Job as Programmer (2:06)
32 Authentication & Security
376 Introduction to Authentication (5:46)
377 Getting Set Up (7:26)
378 Level 1 - Register Users with Username and Password (14:43)
380 Level 2 - Database Encryption (16:35)
381 Using Environment Variables to Keep Secrets Safe (17:40)
382 Level 3 - Hashing Passwords (15:25)
383 Hacking 101 ☣️ (12:28)
384 Level 4 - Salting and Hashing Passwords with bcrypt (20:41)
385 What are Cookies and Sessions_ (8:19)
386 Using Passport.js to Add Cookies and Sessions (29:30)
387 Level 6 - OAuth 2.0 & How to Implement Sign In with Google (47:46)
388 Finishing Up the App - Letting Users Submit Secrets (13:40)
390 Tip from Angela - How to Work as a Freelancer (1:37)
33 React.js
391 What is React_ (7:28)
392 What we will make in this React module (1:34)
393 Introduction to Code Sandbox and the Structure of the Module (5:50)
394 Introduction to JSX and Babel (16:12)
395 JSX Code Practice (7:34)
396 Javascript Expressions in JSX & ES6 Template Literals (11:42)
397 Javascript Expressions in JSX Practice (8:34)
398 JSX Attributes & Styling React Elements (16:58)
399 Inline Styling for React Elements (8:41)
400 React Styling Practice (9:59)
401 React Components (15:47)
402 React Components Practice (5:01)
403 Javascript ES6 - Import, Export and Modules (11:10)
404 Javascript ES6 Import, Export and Modules Practice (4:04)
405 [Windows] Local Environment Setup for React Development (13:52)
406 [Mac] Local Environment Setup for React Development (13:40)
407 Keeper App Project - Part 1 Challenge (4:57)
408 Keeper App Part 1 Solution (14:07)
409 React Props (16:44)
410 React Props Practice (13:19)
411 React DevTools (17:19)
412 Mapping Data to Components (10:21)
413 Mapping Data to Components Practice (17:30)
414 Javascript ES6 Map_Filter_Reduce (20:21)
415 Javascript ES6 Arrow functions (9:56)
416 Keeper App Project - Part 2 (10:23)
417 React Conditional Rendering with the Ternary Operator & AND Operator (19:24)
418 Conditional Rendering Practice (6:33)
419 State in React - Declarative vs. Imperative Programming (9:38)
420 React Hooks - useState (18:09)
421 useState Hook Practice (7:24)
422 Javascript ES6 Object & Array Destructuring (17:45)
423 Javascript ES6 Destructuring Challenge Solution (5:48)
424 Event Handling in React (11:10)
425 React Forms (13:40)
426 Class Components vs. Functional Components (6:24)
427 Changing Complex State (19:43)
428 Changing Complex State Practice (7:08)
429 Javascript ES6 Spread Operator (10:58)
430 Javascript ES6 Spread Operator Practice (12:20)
431 Managing a Component Tree (22:38)
433 Keeper App Project - Part 3 (25:06)
432 Managing a Component Tree Practice (8:27)
434 React Dependencies & Styling the Keeper App (16:38)
435 Tip from Angela - How to Build Your Own Product (2:14)
Teach online with
063 What is Bootstrap_
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock