Asha
Web Development 2.0 Course
| 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. |

