Module Project Description 
 
Boilerplate for Your Module Project 
 
Video: How to Write Boilerplate 
 
Lab: Build Some Boilerplate 
 
What Are Javascript Libraries 
 
How to Create a JS Library 
 
How to Incorporate External CSS - Simple.css 
 
Video: How to Create a JS Library 
 
JavaScript: Prefer Const Over Let 
 
Video: JavaScript Const vs Let 
 
What Does Hoisting Mean in JavaScript 
 
Video: What Does Hoisting Mean in JavaScript 
 
Project Video: Start to Code 
 
Refresher: JavaScript Arrow Functions 
 
Refresher: The JavaScript foreach Method 
 
Video: Arrow Functions and Array Methods 
 
Project: Build Out Sections 
 
Project: Write a Function to Create the Header 
 
Working With and Iterating Over Objects in JavaScript 
 
Video: How to Manipulate Objects - Useful JS Object Methods 
 
Project: Create More Sections 
 
Video: Project - Build Sections 
 
Lab: Building By Iterating 
 
Project: New File New Site 
 
Project: Set Up Contact Section 
 
Video: Integrate Sections in the Site 
 
Introduction to the HTML form for JavaScript Developers 
 
Project: Set Up the Form Function 
 
The JavaScript .preventDefault() Event Method 
 
How to Create and Trigger Input Validation Using JavaScript match 
 
Video: How to Handle the Submit Event 
 
Video: How to Create and Trigger Input Validation Using JavaScript match 
 
How to Access Form Input Values Using JavaScript 
 
Video: How to Access Input Values Using JavaScript DOM Methods 
 
JavaScript For Loop Variations - for...in and for...of Loop 
 
Video: For Loop Variations: for...in and for...of Loop 
 
Introduction to JavaScript Iteration Protocols 
 
Video: How to Create a JavaScript Generator 
 
JavaScript Accessing Form Values from FormData 
 
Video: How to Access Form Values With the JavaScript FormData Object 
 
Project: The JSON Structure for the Form Section 
 
Project: Create a JavaScript Function to Build a Form 
 
Project: Create JavaScript Form Elements 
 
Project: How to Add Form Validation 
 
Project: Submit Your Form Using JavaScript 
 
Project Video Demo: Form Building 
 
Recap: Dynamically Created Websites 
 
Project: How to Make it a Portfolio Project 
 
Lab: Dynamically Generated Site 
 
Feedback: Dynamically Generated Site 
 
Connect 4 Project Introduction 
 
Project: Boilerplate for Connect 4 
 
Project Design: Requirements and Architecture 
 
Project: Start to Implement the Architectural Layout 
 
Video: Boilerplate Connect 4 Game 
 
Lab: Architecture Thoughts 
 
Project: How to Create a Board Using a JS 2D Array 
 
Video: Array Pass By Reference 
 
Understanding Programming Paradigms in JavaScript 
 
Functional Programming and Immutability in JavaScript 
 
JavaScript Filter Array Method 
 
Video: JS Array Method - Filter 
 
JavaScript Map Array Method 
 
Video: JS Array Method - Map 
 
JavaScript Array Searches: Using find findIndex includes and indexOf 
 
Video: JS Array Searching Methods 
 
Understanding JavaScript .reduce() Method for Array Manipulation 
 
Video: JS Array Method - Reduce 
 
Video: How to Use JavaScript Method Chaining 
 
Project: Start Structuring the Game 
 
Project: Start Building the User Interface 
 
Video: Create the Board for Your Game 
 
Video: Reviewing JavaScript Events 
 
Project: Register Click Events on the Board 
 
Project: Exploring Event Delegation 
 
Project: How to Alternate Player Turns 
 
Project: How to Update the Game Board 
 
Project: How to Update the Board With a JavaScript Click Event 
 
Alternatives for Removing DOM Elements : remove() and replaceChildren() 
 
Project: Add Images to Your App 
 
Video: Add Interactivity to Your Game 
 
Lab: Make the Board Come Alive 
 
Project: Check Who Won Challenge 
 
Project: Check Who Won With JavaScript Iterations 
 
Can you Break Out of .forEach()? 
 
Understanding Destructuring Assignment in JavaScript 
 
Video: Understanding Destructuring Assignment in JavaScript 
 
Understanding JavaScript's Spread and Rest Syntax 
 
Video: Understanding JavaScript's Spread and Rest Syntax 
 
Project: Implement the Solution - Check Who Won With Iteration 
 
Project: Iterating Over Transformations 
 
Video: Checking the Winner 
 
Quiz: Loops and Destructuring Assignment 
 
How to Deep Copy an Array in JavaScript 
 
JSDoc for JavaScript Comments 
 
Project: Connect 4 Next Steps 
 
Lab: Building a Connect 4 Game 
 
Feedback for Connect 4 Module 
 
Dashboard Project: Introduction 
 
Project: From IP Address to Location Using APIs 
 
Project: Set Up Your Boilerplate 
 
Video: Boilerplate For Dashboard 
 
Chapter Introduction - JavaScript Promises 
 
Video: Review JavaScript Promises 
 
Video: Reviewing .then() and .catch() 
 
Using the Fetch API's Response Object 
 
Video: Exploring fetch() for the Dashboard Project 
 
Make a POST Request with JavaScript fetch() 
 
Video: How to Make a POST Request 
 
How to Handle Multiple Fetch Requests With JavaScript's Promise.all 
 
Video: How to Handle Multiple Fetch Requests With JavaScript's Promise.all 
 
Lab: Requests and Promises 
 
Quiz: Requests and Promises 
 
Project: Add Fetch Requests to Your Dashboard 
 
Project: Plan the Next Stages 
 
Project: Make Sure to Read the API Documentation 
 
OpenWeahterMap API Authenticated Queries 
 
Video: OpenWeahterMap API Authenticated Queries 
 
API Authentication in Client-Side JavaScript: How to Safeguard API Keys 
 
Some JavaScript Restrictions in the Browser 
 
Video: Some JavaScript Restrictions in the Browser 
 
Lab: Authentication and Security 
 
Quiz: Authentication and Security 
 
Chapter Introduction: Chaining the Dashboard Together 
 
Project: Make a Request to the REST Countries API 
 
Project: How to Connect IP to Country 
 
Project: How to Build an API Request to Fetch Weather and ISS Data 
 
Project: Filter the Data from the API Responses 
 
Project: Chain All Your Promises Together 
 
Project: Process Data Using Utility Functions 
 
Project: Build the Basic HTML Structure 
 
Project: Build the Welcome and Country Sections 
 
Project: Build the Weather and ISS Sections 
 
Project: Chain the Data and DOM Building Together 
 
Project: Add CSS to the Dashboard 
 
Video: Project Overview After Chaining 
 
Project: Colorizing the Dashboard Introduction 
 
Review: The JavaScript Date Object and Epoch Time 
 
Video: Reviewing the JavaScript Date Object and Epoch Time 
 
Video: Review Set and Get Methods for the JavaScript Date Object 
 
Introduction to Time Zones in JavaScript 
 
Video: Introduction to Time Zones in JavaScript 
 
Formatting Dates and Times in JavaScript Using Intl 
 
Video: Formatting Dates and Times in JavaScript Using Intl 
 
Project: Design the Time of Day Logic 
 
Project: Prepare the Time of Day Logic 
 
Project: Start Implementing Time of Day Logic 
 
Project: Finish Implementing Time of Day Logic 
 
Project: Colorize the Page 
 
Quiz: Dashboard Colorized 
 
Async Functions and JavaScript Internals Chapter Introduction 
 
Video: Review JavaScript Async Functions 
 
Video: The JavaScript Async Function Wraps Everything in a Promise 
 
How to Create a JavaScript Sleep Function 
 
Video: How to Create a JavaScript Sleep Function 
 
Basics of the JavaScript Runtime Environment in the Browser 
 
Video: JavaScript Runtime Environment in the Browser 
 
Review: Examples of Asynchronous Processes 
 
When to Use JavaScript Async Await Callbacks or Promises 
 
Project: Reviewing the Project and Refactoring 
 
Project: Refactor Promises to Async Functions 
 
Lab: Async Functions and JS Internals 
 
Quiz: Async Functions and JS Internals 
 
Lab: End of Dashboard Module Labs 
 
Introduction to the Canvas Module 
 
What Is the JavaScript Canvas API? 
 
Project: Set Up the Canvas 
 
Project: The JavaScript Canvas API Coordinate System 
 
Project: How to Draw a Rectangle on a JavaScript Canvas 
 
Video: How to Draw a Rectangle on a JavaScript Canvas 
 
Video: Drawing Rectangles in the Module Project 
 
Project: Creative Rectangle Drawings 
 
Video: Explore Canvas Drawing (Project) 
 
Drawing Lines on a Canvas with JavaScript 
 
Video: Drawing Lines on a Canvas with JavaScript 
 
Draw a Triangle on a Canvas with JavaScript 
 
Video: Draw a Triangle on a Canvas with JavaScript 
 
Default Parameters in JavaScript Functions 
 
Project: Draw Triangles With Default Parameters 
 
Video: JavaScript Default Parameters 
 
Video: Creative Drawing With Triangles 
 
Video: Overview of the Canvas Project So Far 
 
How to Draw an Arc and a Circle on a Canvas with JavaScript 
 
Video: How to Draw an Arc and a Circle on a Canvas with JavaScript 
 
Video: Incorporating Arcs Into the Canvas Project 
 
Introduction to JavaScript Classes 
 
Video: Basic Class Syntax 
 
Video: How to Create a JavaScript Class Method 
 
Video: Checking Instances of a Class 
 
How to Create a Basic JavaScript Linked List 
 
Video: Understanding What Classes Are 
 
Video: Understanding JavaScript Class Inheritance and the Super Keyword 
 
Understand the Different Behaviors of the JavaScript this Keyword 
 
Video: Understand the Different Behaviors of the JavaScript this Keyword 
 
Project: Preparing to Refactor With ES6 Modules and Classes 
 
Introduction to JavaScript ES Modules 
 
Project: Using ES Modules in the Canvas Project 
 
Video: Using ES Modules in the Canvas Project 
 
Project: Create a Drawing JavaScript Library With ES Modules 
 
Project: Use Your New Drawing Library 
 
Project: Include the Point Class 
 
Video: Using ES Modules in the Canvas Project 
 
Video: Incorporating the Draw Class in the Canvas Project 
 
Video: Incorporating the Point Class in the Canvas Project 
 
Quiz: Making a Draw and Point Class 
 
Project: Make a Bouncing Ball Animation on Canvas 
 
Project: Enhance Your Animation With requestAnimationFrame() 
 
Project: Canvas Animation - Implement Collisions 
 
Project: Bouncing Ball Animation With Classes 
 
Project: Create Loads of Bouncing Balls 
 
Labs: Drawing and Animating 
 
Video: Coding Collisions in the Canvas Project 
 
Video: Many Bouncing Balls in the Canvas Project 
 
Quiz: Drawing and Animating 
 
Introduction to Recursion with JavaScript 
 
Video: Visualizing Recursion 
 
Project: Square Recursive Tunnel 
 
Project: Line Method and Trigonometry 
 
Video: Drawing With Recursion 
 
Project: Connecting Four Recursive Check 
 
Video: Solving Connect Four With Recursion 
 
Lab: Canvas End of Module