Tech Stacks - Web Application Development COM518
Topics 1 & 2
Will introduce the module and look at a few additional JavaScript topics that you may not have covered in Level 4.
This will include JavaScript arrays and look at JavaScript objects, both of which are critical for understanding JSON, which will be very important throughout the module. In addition, we will revise event-handling and look at ECMAScript 6 arrow functions and look at JavaScript classes.
Topic 3
Will be introduced to server-side JavaScript, making use of Node.js. We will look at the general concept of HTTP web servers, and how to create a simple web server in Node.js. Having done that we will then look at Express, which is one of the leading frameworks form Node.js server development. We will also examine web APIs (which are very easy to create with Express) and start looking at how we can represent data in a structured way with JSON. We will also look at HTTP requests and the different HTTP methods, such as GET, POST, PUT and DELETE, allowing us to develop APIs making use of the REST architecture.
Topic 4
Will extend our examination of Express by considering how we can interact with an SQL database. You will see how a web server can act as an intermediate between a client (front-end) and a database, reading in data from the client and sending it on to a database as an SQL query - as well as formatting database results in JSON to send back to the client.
Topic 5
Having considered the basics of Node and Express, we will move back to the front-end and consider how we can interact with a Node/Express web API from client-side JavaScript. Specifically, we will look at the development technique of AJAX, which allows client-side, front-end JavaScript to send requests to web servers and process the response sent back from the server. Our examination of AJAX will consider how to send requests to a server (using the fetch API), concepts such as promises and async/await, and how to parse (interpret) the JSON sent back from the server and present it to the user in a user-friendly way.
Topic 6
Will extend our look at AJAX applications by considering how we can dynamically create content in an AJAX front-end (for example, if a set of songs in a music application is sent back from a server, how can we create ‘Download’ buttons for each song?) This will involve examining the Document Object Model (DOM).
Topic 7
As an interactive and engaging example of AJAX clients, we will look at web mapping and consider how we can embed an interactive map, with markers, on an AJAX-front end. We will also look at how a mapping application can communicate with a server and convert the JSON returned from the server into map markers. This will make use of the Leaflet library and OpenStreetMap.
Topic 8
Will look at some further Node/Express concepts and look at how we can develop a well-designed Node and Express application making use of routes, controllers and middleware.
Topic 9
Will look at how we can add authentication to an Express web server and develop a login system. This will make use of the express-session module. Depending on how you are progressing, we will then extend our look at login systems by considering the Passport authentication framework, a more advanced but also flexible approach to authentication which can be adapted to work with third-party authentication providers such as Google or Facebook.