Asha

Web Development 2.0 Course

This Web Development 2.0 course is a hands-on introduction to full stack web development. Across sixteen lessons and a closing project, learners move from HTML, CSS and Bootstrap through JavaScript, Node.js, Express and EJS to MySQL, sessions, authentication and AJAX. Each lesson builds on the application created in the previous one, so every new concept is applied to work the students have built themselves.
Lesson No Title Description
1 Web Development - Fundamentals Introduction to full stack development and the roles of the frontend, backend and database, with a recap of HTML document structure and CSS styling through building a web page with a navigation bar, a data table and buttons.
2 Styling with CSS and Bootstrap Introduction to CSS frameworks, adding Bootstrap to a page through a CDN, the Bootstrap grid system, and restyling an existing page using Bootstrap classes for navigation, layout, tables and buttons.
3 JavaScript Basics - Variables, Objects and Data Types Recap of JavaScript fundamentals covering variables, data types, objects and object properties, and the use of functions to build page content dynamically.
4 JavaScript Arrays and Array methods Recap of arrays and arrays of objects, with practical use of the forEach() and sort() array methods to display and order data.
5 Filters in a webpage Implementation of a filter feature using function parameters and arguments, event listeners, and array methods to display data based on user selection.
6 Server Setup - Node.js and Express Introduction to web servers and the client-server request cycle, covering Node.js, npm and node modules, and the creation of a simple Express server with static files, basic routing and port numbers.
7 Introduction to EJS Introduction to template engines and dynamic pages, configuring EJS as the view engine in Express, EJS template syntax, and passing data from the server into a view.
8 Rendering a Page in EJS Server-side routing and rendering, covering route definition and GET handlers, and generating repeated page content from a data set held on the server.
9 Introduction to Databases (MySQL) Introduction to relational databases and MySQL, covering tables, column datatypes and primary keys, inserting records, and retrieving them using SELECT queries with WHERE conditions.
10 Integrating a database with Express Connecting a Node application to MySQL using the mysql2 module, querying from within a route, passing query results into a template, and the difference between in-memory and persistent data.
11 Handling URL Requests and Form Data HTTP requests and form handling, covering GET and POST routes, HTML form submission, Express body-parsing middleware, and inserting submitted data into a database.
12 Foreign Keys and Joining Tables Relational database design, covering foreign keys and table relationships, JOIN queries across multiple tables, altering schemas, adding constraints, deleting records and nested SELECT queries.
13 Integrating Related Data from Multiple Tables Integration of SQL joins with server-side rendering through a multi-table query inside an application route, passing the relational results into a template for display.
14 Implementing User Sessions and Authentication Authentication and session management, covering session middleware, login and logout handling, protecting routes from unauthenticated access, and displaying data specific to the logged-in user.
15 Role-Based Access Control and Session Management Authorisation and the session lifecycle, covering user roles, role-based rendering and URL protection, clearing sessions, session duration and session persistence.
16 Using AJAX and the Fetch API to Dynamically Update Web Pages Asynchronous requests and AJAX using the Fetch API, JSON responses, routes with URL parameters, HTTP methods beyond GET and POST, and updating page content without a full page refresh.
17 Project A full stack application built by the students - designing the web pages, structuring the project data into database tables, and wiring the requests and responses on the server.