Enterprise Web Development

Eamonn de Leastar. Creative Commons License
0: Assignments

Calendar and specifications for the assessments on the course

1: HTML Templates

Review the fundamental structure of html5 documents, including templating techniques. Explore the basics of CSS + how to incorporate a CSS framework to simplify and enhance web site styling.

2: CSS Frameworks

Explore a CSS Framework in detail, leveraging it capabilities to delivers rich UI experience.

3: JavaScript & DOM

Re-introdution to Javascript. Review language structure and usage in the context of JQuery and client side script fragment. Explore google maps API in this context.

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: 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.

14: REST

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

15: Aurelia Introduction

Explore the basics of SPA applications, and build a simple SPA using Aurelia

16: Aurelia View Models

Compose aurelia applications using independent view models. Establish shared state via EventAggregators

17: Aurelia Routers

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

18: Aurelia Rest Client

Explore how to connect an aurelia app to a rest API.

19: JWT Auth

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.

20: Aurelia & JWT

Incororate API/JWT authentication mechanisms into an Aurelia app.

21: Java Rest Client

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

22: Android Rest Client

Using the java classes already built using retrofit, enable the donation android app with the facility to access the donation web API.

23: Secure Android Rest Client

Explore how our JWT security mechansim can be incorporated into the android client