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.