JWT Schemas
JWT Schemas

Joi Schemas for the Authenticate Route

Hapi/JWT API
Hapi/JWT API

HAPI Authentication API using JWT

Why Svelte?
Why Svelte?

Comparing front end frameworks by download size, source lines & speed

Chart Component
Chart Component

Including Frappe charts donation-svelte

Typescript
Typescript

Typescript for Javascript programmers

Donate API
Donate API

Implement the Donate API

Donation Locations
Donation Locations

Include Lat/Lng into donation model + API

Mongoose Seeding
Mongoose Seeding

Seeding the database can simplify exploratory development, prepopulating the database with simple test data during development.

Svelte Authentication
Svelte Authentication

Incorporate authentication into Svelte application

Deploy Front End Apps
Deploy Front End Apps

Deploying donation-svelte to Netlify & Vercel services

Donate in Svelte
Donate in Svelte

Impenent the Donate front end feature

Introduction
Introduction

Introducing the Advanced Full Stack Web Development module

Course Webs
Course Webs

course · topic · video · slides · lab

Node Context
 Node Context

What is node? What is its role in modern development? We look at some key characteristics of the platform

The Hapi Framework
 The Hapi Framework

Introduce Hapi, positioning it within the spectrum for Node Frameworks. Identify Hapis' unique features.

Hapi Building Blocks
 Hapi Building Blocks

Enumerate the core building blocks of hapi and explain how these are assembled into a simple application.

Code Quality Tools
 Code Quality Tools

ESLine, AirBnB and Prettier code quality tools

Model View Controller in HAPI
Model View Controller in HAPI

Structure MVC in a Hapi Application

Node Components & Evolution
  Node Components & Evolution

A look at the components of node, its evolution and key advantages

Programming Node
 Programming Node

Examine synchronous and asynchronous programming in node

Templates
Templates

Extend the static view with more dynamic capabilities with the vision plugin and the handlebars templating engine.

Model / Views
Model / Views

Implement the About view + the track model

Sessions in Hapi
Sessions in Hapi

The @hapi/cookie plugin provides cookie management for Hapi applications

Arrow Functions
Arrow Functions

Arrow Functions in JS

JS Callbacks, Promises & Async/Await
JS Callbacks, Promises & Async/Await

Worked example of callback, promises & async/await

Joi Validation
Joi Validation

Joi is a node validation module providing general purpose schema based validation.

Hapi Validation with Joi
Hapi Validation with Joi

Hapi & Joi can work together to deliver easy to configure declarative validation for handlers.

Model Updates
Model Updates

Delete playlist & track implementations

Environment
Environment

Loading variables from .env files

TDD Introduction
TDD Introduction

The fundamentals of Test Driven Development

First Tests
First Tests

Writing simple xUnit tests

Joi
Joi

More Joi Schemas

JSON Store
JSON Store

Introduce a JSON based store for users

TDD Store
TDD Store

Introduce tests for the Stores

Introducing NoSql DBs
Introducing NoSql DBs

A review of the NoSQL movement and some of its key characteristics

Setting Up Mongo
Setting Up Mongo

Installing, connecting to and initialising Mongoose/MOngo db from a node application.

Accessing Mongo
Accessing Mongo

Creating and using Objects in Mongo, using its promise based API

Stack Example
Stack Example

A worked example exploring the tests for a stack

Mongo Store
Mongo Store

Mongo implementations of users, playlists & tracks

Video Player Example
Video Player Example

Another worked example, this time a simple video player manager class.

Relationships between Mongo Documents
Relationships between Mongo Documents

Creating and maintaining relatopnships between mongo documents enable powerful models to be constructed and queried.

APIs
APIs

An Application Programmer Interface is the published set of http endpoints and messages that a service can support. API design and implementation is a rich field of study - here we take a general overview.

Endpoints
Endpoints

Expose access to the Candidates model as a REST endpoint. This involved defining new routes and handlers, which respond simple JSON representations.

Testing Endpoints
Testing Endpoints

Tools like Postman and Insomnia usefully exercise endpoints. However, we can also exercise them problematically, which offers some significant advantages.

Right BICEP
Right BICEP

Guidelines for Tests · Right · Boundary · Inverse · Cross-check · Errors · Performance

Nodemon
Nodemon

Wrapper for node launch command

HTTP Protocol
HTTP Protocol

A review of the HTTP protocol

Playtime API Dev
Playtime API Dev

Building the API using TDD

Playtime Architeture
Playtime Architeture

Architectural models of Playtime

C.O.R.R.E.C.T
C.O.R.R.E.C.T

More TDD guidelines · Conformance · Ordering · Range · Reference · Existing · Cardinality · Time

Semantic Versioning
Semantic Versioning

Version numbering in the node ecosystem

Open API
Open API

Introducing the OpenAPI Standard

OpenWeatherMap API
OpenWeatherMap API

Swagger/OpenAPI example specification

Playtime Swagger
Playtime Swagger

Integrating Swagger into Playtime

FIRST Principles
FIRST Principles

More TDD Guidelines: Fast · Isolate · Repeatable · Self-Validating · Timely

Joi Schema Inheritance
Joi Schema Inheritance

Enhancing the Swagger/OpenAPI documentaion

JWT
JWT

Json Web Tokens is a prominent authentication mechanism securing APIs.

JWT in HAPI
JWT in HAPI

Integrating JWT into a HAPI API

TDD JWT
TDD JWT

Testing the JWT secured endpoints

Naming Conventions & Comments
Naming Conventions & Comments

Javascript Style Guide from AirBnB

Whitespace, Commas & Semicolons
Whitespace, Commas & Semicolons

Javascript Style Guide from AirBnB

AirBnB Style Guide
AirBnB Style Guide

Javascript Style Guide from AirBnB

AirBnB Style Guide
AirBnB Style Guide

Javascript Style Guide from AirBnB

The Browser Environment
The Browser Environment

The Web Browser Programming Model

Todo DOM
Todo DOM

Manipulating the DOM to implement TODO features

Svelte Introduction
Svelte Introduction

A review of the fundamental features of the Svelte framework.

AirBnB Style Guide
AirBnB Style Guide

Javascript Style Guide from AirBnB

Svelte First Steps
Svelte First Steps

Building your first Svelte Application

Modules
Modules

Using npm mpdules in Svelte

Svelte Core Concepts
Svelte Core Concepts

Essential features of the Svelte Framework

Svelte Components
Svelte Components

Creating and assembling Svelte Components

Donation Applications
Donation Applications

Overview of Donation Applications - Hapi & Svelte

Donation Hapi V1
Donation Hapi V1

Hapi Application modules, components & structure

Routing
Routing

Hash based routing in Svelte

Pages & Components
Pages & Components

Creating and assembling Svelte Components

Leaflet Maps
Leaflet Maps

Introducing to using Leaflet maps in Svelte applications

Events & Binding
Events & Binding

Exploring events and component binding