1: Introduction

Introducing the module, assessment and schedule.
2: JavaScript Review

Re-introduction to Javascript. Review language structure and usage.
3: DOM & JQuery

Review the nature & structure of the DOM. Basics of JQuery library
4: Ajax & APIs

Learn how to invoke REST services in JQuery using ajax features. Explore github and fouresquare APIs in this context.
5: Hapi Applications

Introduction to node development, framing the origins of node and its role in modern applications. Explore some simple node code and identify its unique features
6: Views

Explore the role of the HAPI application framework. Examine routing, connections, handlers and views within HAPI. Explore HAPI views in depthReview the DRY principle and the role of layouts. Employ the handlebars templating engine, incorporating partials and other constructs.
7: Sessions

Review the role of Sessions in web applications. Incorporate the hapi-auth-cookie plugin into HAPI application to manage sessions. Review session strategies, protected and unprotected routes, cookie passwords, timeouts and other configuration options.
8: Models

Introduce Persistence layer technology, specifically via a NoSQL databases. Explore the role of an ODM in this context and review the fundamental modeling techniques.
09: Validation

Detecting incorrect or invalid input, and alerting the user as to the nature of the errors, is essential to a modern web application. Validation components are focused on this, and HAPI has an elegant and useful component called joi to provide a robust and efficient approach to this.
10: Deployment

Moving the application from a local development machine to a public servers is called deployment. There are a range of options available. We will focus on heroku and zeit.
11: Model Seeding

As models increase in complexity, seeding the database with an object graph is a useful technique, enhancing developer productivity. It facilitates exploratory development + early validation of model decisions.
12: APIs

Exposing a programmatic interface to a service can facilitate more diverse client. These can include test clients to exercises the application, a mobile application or alternative front ends.
13: Introduction to Security

Security context: threats and attacks. First encryption exercise
14: Foundations of security

Standard security services; Cryptography: data encryption
15: Authentication & TLS

Authentication and digital signatures. Certificates and TLS.
16: TDD

Test Driven Development is a keystone technique in modern application development. It comprises of a range of techniques, anchored but the XUint range of libraries and tools.
17: Web app threats and vulnerabilities

Web Application Vulnerabilities (OWASP Top Ten); Threat Modelling
18: REST

APIs are said to be Restful if the adhere to a set principles encompassing url patterns, payload and general structure.
19: Web app authentication

Web application authentication and related topics
20: Java Rest Client

Explore the Retorfit library, and use it to build java clients of our REST API
21: Aurelia Introduction

Explore the basics of SPA applications, and build a simple SPA using Aurelia
22: Penetration Testing

Also known as Ethical Hacking
23: Aurelia View Models

Compose aurelia applications using independent view models. Establish shared state via EventAggregators
24: Aurelia Routers

Client side routing is a feature of most SPA frameworks. It facilitates a more flexible and consistent user and developer experience.
25: Aurelia Rest Client

Explore how to connect an aurelia app to a rest API.
26: Aurelia/Hapi JWT

Securing APIs requires different approach from session based strategies, as we may not have browser on the client. Json Web Tokens is a well established authentication mechanism for APIs.