The Complete Web Development Course
The complete full-stack web development bootcamp with HTML 5, CSS 3, Javascript ES6, Bootstrap 4, JQuery, Node.js, MongoDB and more!
Course Description
Welcome to the Complete Web Development Bootcamp, the only course you need to learn to code and become a full-stack web developer.
This is without a doubt the most comprehensive web development course available online. Even if you have zero programming experience, this course will take you from beginner to mastery. Here's why:
- The course is a taught by the lead instructor at the App Brewery, London's leading in-person programming bootcamp.
- The course has been updated to be 2020 ready and you'll be learning the latest tools and technologies that are used in large companies such as Apple, Google and Netflix.
- This course doesn't cut any corners, there are beautiful animated explanation videos and tens of real-world projects which you will get to build.
- The curriculum was developed over a period of three years, with student testing and feedback.
- We've taught over 100,000 students how to code and many have gone on to change their lives by becoming professional developers or start their own tech startup.
- You'll save yourself over $12,000 by enrolling, but still get access to the same teaching materials and learn from the same instructor and curriculum as our in-person programming bootcamp.
- The course is constantly updated with new content, with new projects and modules determined by students - that's you!
We'll take you step-by-step through engaging video tutorials and teach you everything you need to know to succeed as a web developer.
The course includes over 30 hours of HD video tutorials and builds your programming knowledge while making real world websites and web apps.
Throughout the course, we cover a massive amount of tools and technologies, including:
- Front-End Web Development
- HTML 5
- CSS 3
- Bootstrap 4
- Javascript ES6
- DOM Manipulation
- jQuery
- Bash Command Line
- Git, GitHub and Version Control
- Backend Web Development
- Node.js
- NPM
- Express.js
- EJS
- REST
- APIs
- Databases
- SQL
- MongoDB
- Mongoose
- ReactJS
- Web Design
- Deployment with GitHub Pages, Heroku and MongoDB Atlas
By the end of this course, you will be fluently programming and be ready to make any website you can dream of.
You'll also build a portfolio of over 15+ websites that you can show off to any potential employer.
Sign up today, and look forward to:
- Video Lectures
- Code Challenges and Exercises
- Fully Fledged Projects
- Quizzes
- Programming Resources and Cheatsheets
- Downloads
So what are you waiting for? Head on over to the first lesson!
Your Instructor
Hi, I'm Angela. I'm the lead mobile instructor at the App Brewery where we have over 2,000,000 students worldwide.
My first foray into programming was when I was just 12 years old, wanting to build my own Space Invaders. Since then, I've made hundreds of apps and some awesome games to boot. In my courses, you'll find lots of geeky humour but also detailed explanations and plenty of animations to make sure everything is easy to understand. I'll be there for you every step of the way.
As seen in:
Course Curriculum
-
PreviewWhat You'll Get in This Course (3:08)
-
StartDownload the Course Syllabus
-
StartDownload the Course Resources
-
PreviewHow Does the Internet Actually Work? (5:42)
-
PreviewHow Do Websites Actually Work? (6:20)
-
StartDownload the Required Software
-
StartHow to Get Help When You're Stuck (6:44)
-
StartPathfinder
-
StartIntroduction to HTML (10:51)
-
StartThe Anatomy of an HTML Tag (10:55)
-
StartWhat we're building - HTML Personal Site (2:52)
-
StartWhat is The HTML Boilerplate (17:01)
-
StartHow to Structure Text in HTML (11:00)
-
StartHTML Lists (5:24)
-
StartHTML Image Elements (7:32)
-
StartHTML Links and Anchor Tags (11:55)
-
StartHow to Ace this Course (1:24)
-
StartHTML Tables (12:03)
-
StartUsing HTML Tables for Layout (2:16)
-
StartHTML Tables Code Challenge (1:44)
-
StartHTML Tables Solution Walkthrough (6:44)
-
StartHTML Forms (9:17)
-
StartForms in Practice - Create a Contact Me Form (7:29)
-
StartPublish Your Website! (6:48)
-
StartTip from Angela - Habit Building with the Calendar Trick (2:52)
-
StartGet Monthly Tips and Tools to Level Up as a Developer
-
StartIntroduction to CSS (3:04)
-
StartInline CSS (9:56)
-
StartInternal CSS (20:22)
-
StartExternal CSS (8:29)
-
StartHow to Debug CSS Code (13:37)
-
StartThe Anatomy of CSS Syntax (13:08)
-
StartCSS Selectors (6:23)
-
StartClasses vs. Ids (11:44)
-
StartCSS Quiz
-
StartTip from Angela - Dealing with Distractions (2:28)
-
StartWhat We'll Make - Stylised Personal Site (4:57)
-
StartWhat Are Favicons? (3:47)
-
StartHTML Divs (13:33)
-
StartThe Box Model of Website Styling (19:25)
-
StartCSS Display Property (15:11)
-
StartLearn More About Web Design
-
StartCSS Static and Relative Positioning (14:36)
-
StartAbsolute positioning (12:12)
-
StartThe Dark Art of Centering Elements with CSS (9:03)
-
StartFont Styling in Our Personal Site (13:59)
-
StartLearn More About Typography
-
StartAdding Content to Our Website (6:53)
-
StartCSS Sizing (15:39)
-
StartFont Properties Challenge 1 - Change the Font Colour
-
StartFont Properties Challenge 2 - Change the Font Weight
-
StartFont Properties Challenge 3 - Change the Line Height
-
StartCSS Font Property Challenge Solutions (3:57)
-
StartCSS Float and Clear (15:14)
-
StartCSS Challenge
-
StartStylised Personal Site Solution Walkthrough (21:22)
-
Start[Optional] Get More Practice with CSS and HTML
-
StartTip from Angela - Nothing Easy is Worth Doing! (3:35)
-
StartWhat is Bootstrap? (14:36)
-
StartInstalling Bootstrap (7:55)
-
StartWeb Design 101 - Wireframing (11:38)
-
StartThe Bootstrap Navigation Bar (20:40)
-
StartWhat We'll Make: TinDog (0:56)
-
StartDownload the TinDog Starting Files
-
StartSetting Up Our New project (7:41)
-
StartBootstrap Grid Layout System (20:17)
-
StartAdding Grid Layouts to Our Website (9:39)
-
StartBootstrap Containers (5:54)
-
StartBootstrap Buttons & Font Awesome (11:30)
-
StartStyling Our Website Challenges and Solutions (20:20)
-
StartBootstrap Challenge 1
-
StartSolution to Bootstrap Challenge 1 (17:01)
-
StartTip from Angela - How to Deal with Procrastination (4:07)
-
StartThe Bootstrap Carousel Part 1 (9:39)
-
StartThe Bootstrap Carousel Part 2 (17:20)
-
StartBootstrap Cards (16:31)
-
StartCSS Z-Index and Stacking Order (21:28)
-
StartMedia Query Breakpoints (22:03)
-
StartBoostrap Challenge 2
-
StartBootstrap Challenge 2 Solution (11:46)
-
StartHow to become a Better Programmer - Code Refactoring (7:48)
-
StartPut it into Practice - Refactor our Website Part 1 (19:20)
-
StartAdvanced CSS - Combining Selectors (11:43)
-
StartRefactoring our Website Part 2 (5:21)
-
StartAdvanced CSS - Selector Priority (5:51)
-
StartCompleting the Website (2:34)
-
StartDownload the Complete Website
-
StartTip from Angela - Building a Programming Habit (2:46)
-
Start🎨 Introduction to Web Design 🖌 (3:55)
-
StartUnderstanding Colour Theory (9:04)
-
StartUnderstanding Typography and How to Choose a Font (10:28)
-
StartManage ATTENTION with effective User Interface (UI) Design (10:27)
-
StartUser Experience (UX) Design (13:39)
-
StartWeb Design in Practice - Let's apply what we've learnt! (18:20)
-
StartIntroduction to Javascript (11:49)
-
StartJavascript Alerts - Adding Behaviour to Websites (14:21)
-
StartData Types (4:06)
-
StartJavascript Variables (9:35)
-
StartNaming and Naming Conventions for Javascript Variables (7:09)
-
StartString Concatenation (3:07)
-
StartString Lengths and Retrieving the Number of Characters (6:24)
-
StartSlicing and Extracting Parts of a String (8:56)
-
StartChallenge: Changing Casing in Text (3:39)
-
StartChallenge: Changing String Casing Solution (8:59)
-
StartBasic Arithmetic and the Modulo Operator in Javascript (6:14)
-
StartIncrement and Decrement Expressions (2:28)
-
StartFunctions Part 1: Creating and Calling Functions (10:35)
-
StartFunctions Part 1 Challenge - The Karel Robot (9:08)
-
StartKarel Chess Board Solution
-
StartFunctions Part 2: Parameters and Arguments (9:52)
-
StartFunctions Part 3: Outputs & Return Values (11:16)
-
StartChallenge: Create a BMI Calculator (3:16)
-
StartBMI Calculator Challenge
-
StartChallenge: BMI Calculator Solution (6:16)
-
StartTip from Angela - Set Your Expectations (2:35)
-
StartRandom Number Generation in Javascript: Building a Love Calculator (11:15)
-
StartControl Statements: Using If-Else Conditionals & Logic (4:48)
-
StartComparators and Equality (2:51)
-
StartCombining Comparators (2:46)
-
StartBMI Calculator Advanced (IF/ELSE)
-
StartIntroducing the Lear Year Code Challenge (4:16)
-
StartLear Year Challenge Exercise
-
StartLeap Year Challenge Solution (3:03)
-
StartCollections: Working with Javascript Arrays (9:01)
-
StartAdding Elements and Intermediate Array Techniques (15:58)
-
StartThe Who's Buying Lunch? Code Challenge
-
StartWho's Buying Lunch Solution (3:43)
-
StartControl Statements: While Loops (7:52)
-
StartSolution to 99 Bottles of Beer Challenge
-
StartControl Statements: For Loops (6:10)
-
StartIntroducing the Fibonacci Code Challenge (6:37)
-
StartThe Fibonacci Code Exercise
-
StartFibonacci Solution (8:16)
-
StartTip from Angela - Retrieval is How You Learn (2:52)
-
StartAdding Javascript to Websites (10:44)
-
StartIntroduction to the Document Object Model (DOM) (12:28)
-
StartSolution to the DOM Challenge
-
StartSelecting HTML Elements with Javascript (14:17)
-
StartManipulating and Changing Styles of HTML Elements with Javascript (5:01)
-
StartThe Separation of Concerns: Structure vs Style vs Behaviour (5:57)
-
StartText Manipulation and the Text Content Property (2:37)
-
StartManipulating HTML Element Attributes (2:27)
-
StartTip from Angela - The 20 Minute Method (2:39)
-
StartChallenge: The Dicee Challenge (2:14)
-
StartDicee Challenge Step 0 - Download the Skeleton Project
-
StartDicee Challenge Step 1 - Create an External Javascript File
-
StartDicee Challenge Step 2 - Add Dice Images
-
StartDicee Challenge Step 4 - Change the img to a Random Dice
-
StartDicee Challenge Step 3 - Create a Random Number
-
StartDicee Challenge Step 5 - Change both img Elements
-
StartDicee Challenge Step 6 - Change the Title to Display a Winner
-
StartThe Solution to the Dicee Challenge (14:43)
-
StartDownload the Completed Website
-
StartTip from Angela - Learning Before you Eat (2:06)
-
StartWhat We'll Make: Drum Kit (1:19)
-
StartDownload the Starting Files for the Drum Kit
-
StartAdding Event Listeners to a Button (14:29)
-
StartHigher Order Functions and Passing Functions as Arguments (12:40)
-
StartHigher Order Function Challenge Solution
-
StartHow to Play Sounds on a Website (11:11)
-
StartA Deeper Understanding of Javascript Objects (12:04)
-
StartObjects, their Methods and the Dot Notation (6:29)
-
StartHow to Use Switch Statements in Javascript (5:22)
-
StartUsing Keyboard Event Listeners to Check for Key Presses (7:37)
-
StartUnderstanding Callbacks and How to Respond to Events (11:35)
-
StartAdding Animation to Websites (8:31)
-
StartDownload the Completed Website
-
StartTip from Angela - Dealing with Lack of Progress (3:08)
-
StartWhat is jQuery? (3:44)
-
StartHow to Incorporate jQuery into Websites (9:08)
-
StartHow Minification Works to Reduce File Size (3:58)
-
StartSelecting Elements with jQuery (2:01)
-
StartManipulating Styles with jQuery (5:13)
-
StartManipulating Text with jQuery (3:36)
-
StartManipulating Attributes with jQuery (3:44)
-
StartAdding Event Listeners with jQuery (7:47)
-
StartAdding and Removing Elements with jQuery (2:58)
-
StartWebsite Animations with jQuery (8:13)
-
StartTip from Angela - Mixing Knowledge (2:20)
-
StartWhat You'll Make: The Simon Game (1:00)
-
StartPlay the Game
-
StartStep 0 - Download the Starting Files
-
StartStep 1 - Add Javascript and jQuery
-
StartStep 1 - Answer
-
StartStep 2 - Create A New Pattern
-
StartStep 2 - Answer
-
StartStep 3 - Show the Sequence to the User with Animations and Sounds
-
StartStep 3 - Answer
-
StartStep 4 - Check Which Button is Pressed
-
StartStep 4 - Answer
-
StartStep 5 - Add Sounds to Button Clicks
-
StartStep 5 - Answer
-
StartStep 6 - Add Animations to User Clicks
-
StartStep 6 - Answer
-
StartStep 7 - Start the Game
-
StartStep 7 - Answer
-
StartStep 8 - Check the User's Answer Against the Game Sequence8
-
StartStep 8 - Answer
-
StartStep 9 - Game Over
-
StartStep 9 - Answer
-
StartStep 10 - Restart the Game
-
StartStep 10 - Answer
-
StartDownload the Completed Project Code
-
StartTip from Angela - Dealing with Frustration (2:31)
-
StartCommand Line Hyper Setup (4:53)
-
StartUnderstanding the Command Line. Long Live the Command Line! (5:55)
-
StartCommand Line Techniques and Directory Navigation (10:13)
-
StartCreating, Opening, and Removing Files through the Command Line (9:09)
-
StartTip from Angela - Sleep is My Secret Weapon (3:48)
-
StartWhat is Node.js? (5:40)
-
StartInstall Node on Mac
-
StartInstall Node on Windows
-
StartThe Power of the Command Line and How to Use Node (6:27)
-
StartThe Node REPL (Read Evaluation Print Loops)
-
StartHow to Use the Native Node Modules (8:19)
-
StartThe NPM Package Manager and Installing External Node Modules (13:44)
-
StartTip from Angela - Step Up to the Challenge (1:14)
-
StartWhat is Express? (3:24)
-
StartCreating Our First Server with Express (11:29)
-
StartHandling Requests and Responses: the GET Request (8:12)
-
StartUnderstanding and Working with Routes (9:23)
-
StartWhat We'll Make: A Calculator (1:52)
-
StartCalculator Setup Challenge
-
StartCalculator Setup: Challenge Solution (5:43)
-
StartResponding to Requests with HTML Files (7:40)
-
StartProcessing Post Requests with Body Parser (14:19)
-
StartBMI Routing Challenge
-
StartSolution to the BMI Routing Challenge (6:29)
-
StartTip from Angela - How to Solidify Your Knowledge (2:55)
-
StartWhy Do We Need APIs? (8:50)
-
StartAPI Endpoints, Paths and Parameters. (10:59)
-
StartAPI Authentication and Postman (11:34)
-
StartWhat is JSON? (4:54)
-
StartMaking GET Requests with the Node HTTPS Module (13:00)
-
StartHow to Parse JSON (13:05)
-
StartUsing Express to Render a Website with Live API Data (8:23)
-
StartUsing Body Parser to Parse POST Requests to the Server (10:05)
-
StartThe Mailchimp API - What You'll Make (2:41)
-
StartSetting Up the Sign Up Page (20:52)
-
StartPosting Data to Mailchimp's Servers via their API (18:37)
-
StartAdding Success and Failure Pages (8:55)
-
StartDeploying Your Server with Heroku (18:38)
-
StartTip from Angela - Location, Location, Location! (2:06)
-
StartIntroduction to Version Control and Git (2:35)
-
StartVersion Control Using Git and the Command Line (15:02)
-
StartGitHub and Remote Repositories (11:00)
-
StartGitignore (12:02)
-
StartCloning (5:05)
-
StartBranching and Merging (17:25)
-
StartOptional Git Challenge
-
StartForking and Pull Requests (17:08)
-
StartTip from Angela - Spaced Repetition (4:01)
-
StartWhat We'll Make: A ToDoList (0:46)
-
StartLinter Errors with EJS
-
StartTemplates? Why Do We Need Templates? (15:10)
-
StartCreating Your First EJS Templates (17:53)
-
StartRunning Code Inside the EJS Template (6:33)
-
StartPassing Data from Your Webpage to Your Server (25:05)
-
StartThe Concept of Scope in the Context of Javascript (8:40)
-
StartAdding Pre-Made CSS Stylesheets to Your Website (16:14)
-
StartUnderstanding Templating vs. Layouts (13:35)
-
StartUnderstanding Node Module Exports: How to Pass Functions and Data between Files (21:45)
-
StartTip from Angela - Use Accountability in your Favour (2:56)
-
StartA New Challenge Format and What We'll Make: A Blog (6:18)
-
StartSetting Up the Blog Project (7:06)
-
StartChallenge 1 (4:04)
-
StartChallenge 1 Solution (2:37)
-
StartChallenge 2 (4:07)
-
StartChallenge 2 Solution (2:09)
-
StartChallenge 3 (2:37)
-
StartChallenge 3 Solution (2:31)
-
StartChallenge 4 (2:05)
-
StartChallenge 4 Solution (1:52)
-
StartChallenge 5 (2:47)
-
StartChallenge 5 Solution (4:16)
-
StartChallenge 6 (1:24)
-
StartChallenge 6 Solution (1:15)
-
StartChallenge 7 (0:59)
-
StartChallenge 7 Solution (1:54)
-
StartChallenge 8 (3:26)
-
StartChallenge 8 Solution (3:36)
-
StartChallenge 9 (4:42)
-
StartChallenge 9 Solution (6:33)
-
StartChallenge 10 (2:24)
-
StartChallenge 10 Solution (3:13)
-
StartChallenge 11 (3:21)
-
StartChallenge 11 Solution (3:00)
-
StartChallenge 12 (1:55)
-
StartChallenge 12 Solution (2:34)
-
StartChallenge 13 (2:46)
-
StartChallenge 13 Solution (3:37)
-
StartChallenge 14 and Solution (6:28)
-
StartChallenge 15 (1:41)
-
StartChallenge 15 Solution (3:14)
-
StartExpress Routing Parameters (6:38)
-
StartChallenge 16 (1:55)
-
StartChallenge 16 Solution (2:32)
-
StartChallenge 17 (3:54)
-
StartChallenge 17 Solution (5:30)
-
StartChallenge 18 (6:04)
-
StartChallenge 18 Solution (4:19)
-
StartChallenge 19 (2:57)
-
StartChallenge 19 Solution (4:54)
-
StartChallenge 20 (2:58)
-
StartChallenge 20 Solution (3:18)
-
StartChallenge 21 (2:15)
-
StartChallenge 21 Solution (3:44)
-
StartTip from Angela - When Life Gives You Lemons (6:01)
-
StartSQL Commands: CREATE Table and INSERT Data (13:48)
-
StartSQL Commands: READ, SELECT, and WHERE (3:10)
-
StartUpdating Single Values and Adding Columns in SQL (4:42)
-
StartSQL Commands: DELETE (1:32)
-
StartUnderstanding SQL Relationships, Foreign Keys and Inner Joins (11:13)
-
StartTip from Angela - Find All the Hard Working People (2:01)
-
StartInstalling MongoDB on Mac (12:34)
-
StartInstalling MongoDB on Windows (9:20)
-
StartMongoDB CRUD Operations in the Shell: Create (9:37)
-
StartMongoDB CRUD Operations in the Shell: Reading & Queries (6:22)
-
StartMongoDB CRUD Operations in the Shell: Update (4:07)
-
StartMongoDB CRUD Operations in the Shell: Delete (1:45)
-
StartRelationships in MongoDB (6:12)
-
StartWorking with The Native MongoDB Driver (19:03)
-
StartIf You Have Forgotten to Quit the Mongod Server
-
StartTip from Angela - Daily Routines (2:34)
-
StartIntroduction to Mongoose (20:26)
-
StartReading from Your Database with Mongoose (7:28)
-
StartData Validation with Moongoose (7:56)
-
StartUpdating and Deleting Data Using Mongoose (10:06)
-
StartEstablishing Relationships and Embedding Documents Using Mongoose (6:45)
-
StartTip from Angela - Deep Work (3:01)
-
StartLet's take the ToDoList Project to the Next Level and Connect it with Mongoose (16:46)
-
StartRendering Database Items in the ToDoList App (13:25)
-
StartAdding New Items to our ToDoList Database (3:56)
-
StartDeleting Items from our ToDoList Database (13:48)
-
StartCreating Custom Lists using Express Route Parameters (16:12)
-
StartAdding New Items to the Custom ToDo Lists (7:31)
-
StartRevisiting Lodash and Deleting Items from Custom ToDo Lists (19:10)
-
StartTip from Angela - One Step at a Time (2:54)
-
StartChallenge: Give your Blog a Database (2:31)
-
StartStep 0 - Download the Starting Files
-
StartStep 1 - Save Composed Posts with MongoDB
-
StartStep 2 - Get the Home Page to Render the Posts
-
StartFix the bug
-
StartStep 4 - Render the correct blog post based on post _id
-
StartCompleted Blog with Database Solution
-
StartTip from Angela - Dealing with Limitations (5:22)
-
StartREST Explained (17:08)
-
StartCreating a Database with Robo 3T (9:29)
-
StartSet Up Server Challenge (2:09)
-
StartSet up Server Solution (7:30)
-
StartGET All Articles (6:50)
-
StartPOST a New Article (12:51)
-
StartDELETE All Articles (5:11)
-
StartChained Route Handlers Using Express (7:07)
-
StartGET a Specific Article (14:02)
-
StartPUT a Specific Article (10:32)
-
StartPATCH a Specific Article (7:17)
-
StartDELETE a Specific Article (4:04)
-
StartDownload the Completed Project
-
StartTip from Angela - How to Get a Job as Programmer (2:06)
-
StartIntroduction to Authentication (5:46)
-
StartGetting Set Up (7:26)
-
StartNew Lecture
-
StartLevel 1 - Authentication with Username and Password (14:43)
-
StartLevel 2 - Database Encryption (16:35)
-
StartSecurity and Environment Variables (17:40)
-
StartLevel 3 - Hashing Passwords (15:25)
-
StartHacking 101 (12:28)
-
StartLevel 4 - Hashing and Salting with bcrypt (20:41)
-
StartCookies and Sessions (8:19)
-
StartLevel 5 - Passport.js Local & Sessions (29:30)
-
StartLevel 6 - OAuth 2.0 and Social Login with Google (47:46)
-
StartFinishing the App - Allowing Users to Submit Secrets (13:40)
-
StartHow to Review the Source Code for Each Lesson
-
StartTip from Angela - How to Work as a Freelancer (1:37)
-
StartWhat is React? (7:28)
-
StartWhat We'll Make (1:34)
-
StartIntroduction to Code Sandbox and the Structure of the Module (5:50)
-
StartIntroduction to JSX and Babel (16:12)
-
StartJSX Code Practice (7:34)
-
StartJavascript Expressions in JSX & ES6 Template Literals (11:42)
-
StartJavascript Expressions in JSX Practice (8:34)
-
StartJSX Attributes & Styling React Elements (16:58)
-
StartInline Styling for React Elements (8:41)
-
StartReact Styling Practice (9:59)
-
StartReact Components (15:47)
-
StartReact Components Practice (5:01)
-
StartJavascript ES6 - Import, Export and Modules (11:10)
-
StartJavascript ES6 Import, Export and Modules Practice (4:04)
-
Start[Windows] Local Environment Setup for React Development (13:52)
-
Start[Mac] Local Environment Setup for React Development (13:40)
-
StartKeeper App Project - Part 1 Challenge (4:57)
-
StartKeeper App Part 1 Solution (14:07)
-
StartReact Props (16:44)
-
StartReact Props Practice (13:19)
-
StartReact DevTools (17:19)
-
StartMapping Data to Components (10:20)
-
StartMapping Data to Components Practice (17:30)
-
StartJavascript ES6 Map/Filter/Reduce (20:21)
-
StartJavascript ES6 Arrow functions (9:56)
-
StartKeeper App Project - Part 2 (10:23)
-
StartReact Conditional Rendering with the Ternary Operator & AND Operator (19:24)
-
StartConditional Rendering Practice (6:33)
-
StartState in React - Declarative vs. Imperative Programming (9:38)
-
StartReact Hooks - useState (18:09)
-
StartuseState Hook Practice (7:24)
-
StartJavascript ES6 Object & Array Destructuring (17:44)
-
StartJavascript ES6 Destructuring Challenge Solution (5:48)
-
StartEvent Handling in React (11:10)
-
StartReact Forms (13:40)
-
StartClass Components vs. Functional Components (6:24)
-
StartChanging Complex State (19:43)
-
StartChanging Complex State Practice (7:08)
-
StartJavascript ES6 Spread Operator (10:58)
-
StartJavascript ES6 Spread Operator Practice (12:20)
-
StartManaging a Component Tree (22:37)
-
StartManaging a Component Tree Practice (8:27)
-
StartKeeper App Project - Part 3 (25:05)
-
StartReact Dependencies & Styling the Keeper App (16:38)
-
StartTip from Angela - How to Build Your Own Product (2:14)
-
StartWhat is Web3? (7:38)
-
StartHow does the Blockchain actually work? (25:45)
-
StartWhat are Apps (Decentralised Apps) and how do you develop them? (9:18)
-
StartWhat is the Internet Computer (ICP)? (9:18)
-
StartRead me!
-
Start[Mac Users] Installation and Setup for Web3 Development (7:03)
-
Start[Windows Users] Installation and Setup for Web3 Development (12:45)
-
StartWhat you will build - DBANK (Inspired by Compound) (2:16)
-
StartIntroduction to the Motoko Language (12:36)
-
StartMotoko Functions and the Candid User Interface (16:00)
-
StartMotoko Conditionals and Type Annotations (5:34)
-
StartQuery vs. Update Methods (8:09)
-
StartOrthogonal Persistence (8:03)
-
StartTracking Time and Calculating Compound Interest (17:35)
-
StartMotoko Language Quiz
-
StartAdding HTML and CSS to Create the Frontend for DBANK (7:35)
-
StartConnecting the Motoko Backend to our JS Frontend (27:07)
-
StartWhat are Cycles and the ICP Token? (7:07)
-
StartNo Cycles, No Problems!
-
StartHow to Claim Free Cycles from Dfinity (5:21)
-
StartHow to Deploy to the ICP Network (3:05)
-
StartHow to Convert ICP into Cycles? (5:57)
-
Start[Optional] How to Deploy a Static Website onto the ICP Blockchain for Hosting (7:38)
-
StartTokens and Coins: What are they and how are they used? (9:17)
-
StartDownload and Configure the Skeleton Project (6:10)
-
StartUsing Motoko Hashmaps to Store Token Balances (19:34)
-
StartShowing the User's Token Balance on the Frontend (13:58)
-
StartCreating the Faucet Functionality Using the Shared Keyword (15:16)
-
StartCreating the Transfer Functionality (20:52)
-
StartUsing the Transfer Functionality in the Faucet (6:39)
-
StartPersisting Non-Stable Types Using the Pre- and Postupgrade Methods (15:43)
-
StartWhat is the Internet Identity? (5:30)
-
StartAuthenticating with the Internet Identity (7:56)
-
Start[Optional] Live Deployment to Test Internet Identity Authentication (18:27)
-
StartWhat You'll Build - A Website to Mint, Buy and Sell NFTs (10:23)
-
StartMinting NFTs (16:43)
-
StartViewing the NFT on the Frontend (20:02)
-
StartEnabling the Minting Functionality on the Frontend (30:38)
-
StartDisplaying Owned NFTs Using the React Router (36:39)
-
StartListing NFTs for Sale (33:48)
-
StartStyling the Listed NFTs (11:16)
-
StartCreating the "Discover" Page (22:37)
-
StartBuying NFTs (32:02)
-
StartJoin the $6 Million Dollar Supernova Hackathon
-
StartDesigner vs. Non-Designer Thinking (3:33)
-
StartUnderstanding the Mood of Your Colour Palette (6:02)
-
StartHow to Combine Colours to Create Colour Palettes (4:08)
-
StartTools for Designing with Colour (2:47)
-
StartIntroduction to Typography (0:44)
-
StartThe Serif Type Family - Origin and Use (4:40)
-
StartThe Sans-Serif Type Family - Origin and Use (1:38)
-
StartHow Typography Determines Readability (2:39)
-
StartHow to Combine Fonts Like a Pro (6:00)
-
StartWhat is User Interface (UI) Design? (0:42)
-
StartThe Tour Guide Appraoch to UI Design (3:11)
-
StartThe Importance of Alignment (2:50)
-
StartColour in User Interface Design (2:16)
-
StartWhat is Good Practice in Interaction Design (8:25)
-
StartThe Many Ways of Designing Text Overlays (3:22)
-
StartHow to Be an Attention Architect (4:46)