COMP08147 2018 Open Stack Development 401

General Details

Full Title
Open Stack Development 401
Transcript Title
Open Stack Development 401
Code
COMP08147
Attendance
N/A %
Subject Area
COMP - Computing
Department
COMP - Computing & Creative Practices
Level
08 - NFQ Level 8
Credit
05 - 05 Credits
Duration
Semester
Fee
Start Term
2018 - Full Academic Year 2018-19
End Term
9999 - The End of Time
Author(s)
Colm Davey, Aine Mitchell, Shane Banks
Programme Membership
SG_KAPPL_H08 201900 Bachelor of Arts (Honours) in Computing in Application Design and User Experience
Description

In this module, students will be required to develop a fully functional n-tier application using JavaScript frameworks and libraries, Open Source technologies and will make use of RESTful APIs. Authentication, authorisation, and security are key elements. The student will evaluate and apply relevant design patterns within the application.

Learning Outcomes

On completion of this module the learner will/should be able to;

1.

Design and create n‑tier applications using modern JavaScript frameworks and libraries

2.

Critique and integrate authorisation, authentication, and security into the application.

3.

Construct and make use of RESTful APIs.

4.

Evaluate and apply appropriate design patterns.

Teaching and Learning Strategies

A practical approach to teaching and learning will be used. Problem-based learning will be used where possible. The one hour lecture will be used to introduce core concepts. The lab practicals will be used to learn key concepts by developing web applications.

Virtual Machines will be used to allow flexibility and enhance learning.

Module Assessment Strategies

100% continuous assessment. Assessment for and of learning will be carried out. Students participate in a project (70%) and have to complete a number of formative and summative activities such as quizzes and lab work (30%). The in-class summative quizzes will take place in weeks 3, 6 and 9. Students will be required to peer review and provide feedback to each other.

Repeat Assessments

Repeat project covering all learning outcomes.

Indicative Syllabus

Design and create n‑tier applications using modern JavaScript frameworks and libraries

  • Development environment setup using VS Code and NodeJS. 
  • Use of NPM to install and manage packages
  • Examine the different JavaScript frameworks available
  • Introduce many of the framework concepts and coding conventions 
  • Create responsive web pages using libraries and frameworks
  • Use a JavaScript framework to build n-tier applications.

Critique and integrate authorisation, authentication, and security into the application.

  • Examine authorisation and authentications and the roles they both play
  • Consider the various authentication options such as Firebase and be able to critique the various options
  • Examine how security is implemented in serverless applications

Construct and make use of RESTful APIs.

  • Know how to build an API in JavaScript using Express for the REST operations of GET/POST/PUT/DELETE 
  • Consider API design strategies to determine what data is exposed and how best to expose the data
  • Determine how to access a SQL/NoSQL database from a REST API

Evaluate and apply appropriate design patterns.

  • Examine the RxJS library and how it implements the Observable pattern
  • Know MVC and MV* and the role they play
  • Examine Redux for state management

Coursework & Assessment Breakdown

Coursework & Continuous Assessment
100 %

Coursework Assessment

Title Type Form Percent Week Learning Outcomes Assessed
1 Quizzes and Lab Work Continuous Assessment Multiple Choice 30 % OnGoing 1,2,3,4
2 Project Implement a fully functional n tier application Project Project 70 % End of Term 1,2,3,4
             

Full Time Mode Workload


Type Location Description Hours Frequency Avg Workload
Lecture Computer Laboratory Lecture 1 Weekly 1.00
Laboratory Practical Computer Laboratory Lab practicals 2 Weekly 2.00
Independent Learning Not Specified Independent Learning 3 Weekly 3.00
Total Full Time Average Weekly Learner Contact Time 3.00 Hours

Online Learning Mode Workload


Type Location Description Hours Frequency Avg Workload
Lecture Online Lecture 2 Weekly 2.00
Directed Learning Online Directed Learning 1 Weekly 1.00
Independent Learning Not Specified Independent Study 4 Weekly 4.00
Total Online Learning Average Weekly Learner Contact Time 3.00 Hours

Required & Recommended Book List

Recommended Reading
2017-09-28 Learning Angular: A Hands-On Guide to Angular 2 and Angular 4 Addison Wesley
ISBN 0134576977 ISBN-13 9780134576978
Recommended Reading
2017-04-27 ng-book: The Complete Guide to Angular 4 CreateSpace Independent Publishing Platform
ISBN 1546376232 ISBN-13 9781546376231
Recommended Reading
2016-05-26 RESTful Web API Design with Node.js - Second Edition Packt Publishing

Key Features

  • Create a fully featured RESTful API solution from scratch.
  • Learn how to leverage Node.JS, Express, MongoDB and NoSQL datastores to give an extra edge to your REST API design.
  • Use this practical guide to integrate MongoDB in your Node.js application.

Book Description

In this era of cloud computing, every data provisioning solution is built in a scalable and fail-safe way. Thus, when building RESTful services, the right choice for the underlying platform is vital. Node.js, with its asynchronous, event-driven architecture, is exactly the right choice to build RESTful APIs.

This book will help you enrich your development skills to create scalable, server-side, RESTful applications based on the Node.js platform.

Starting with the fundamentals of REST, you will understand why RESTful web services are better data provisioning solution than other technologies. You will start setting up a development environment by installing Node.js, Express.js, and other modules. Next, you will write a simple HTTP request handler and create and test Node.js modules using automated tests and mock objects. You will then have to choose the most appropriate data storage type, having options between a key/value or document data store, and also you will implement automated tests for it. This module will evolve chapter by chapter until it turns into a full-fledged and secure Restful service.

What you will learn

  • Install, develop, and test your own Node.js user modules
  • Comprehend the differences between an HTTP and a RESTful application
  • Optimize RESTful service URI routing with best practices
  • Eliminate third-party dependencies in your tests with mocking
  • Learn about NoSQL data stores and integrate MongoDB in your Node.js application with Mongoose
  • Secure your services with NoSQL database integration within Node.js applications
  • Enrich your development skills to create scalable, server-side, RESTful applications based on the Node.js platform

About the Author

Valentin Bojinov studied computer programming at the Technological School of Electronic Systems in Sofia, Bulgaria, a college within the Technical University of Sofia. He was introduced to programming there and realized that his career would be in research and development. He holds a BSc in telecommunication and information engineering. Then, his interest in data transmission grew, and he ventured into B2B (business-to-business) communication. He is currently pursuing his MSc in software development. Valentin is an expert in Java, SOAP, RESTful web services, and B2B integration.

A few years after he started his career as a .NET developer, he realized that B2B and SOA were his passion. He then moved to SAP, where he contributed to the development of the web services stack of the SAP JEE platform. He currently works as a senior Java developer for the Bulgarian branch of Seeburger AG, a leader in the B2B and MFT solutions market. There, he develops and maintains several B2B communication adapters, including web services and SAP adapters.

Table of Contents

  1. REST What You Did Not Know
  2. Getting Started with Node.js
  3. Building a Typical Web API
  4. Using NoSQL Databases
  5. Implementing a Fully-Fledged RESTful Service
  6. Keeping the Bad Guys Out

Recommended Reading
2018-08-17 Practical Node.js: Building Real-World Scalable Web Apps Apress
ISBN 1484230388 ISBN-13 9781484230381

Module Resources

URL Resources

https://angular.io/

https://getbootstrap.com/

https://material.angular.io/

http://www.restapitutorial.com/index.html

https://nodejs.org/en/

 

 

Other Resources

IT Sligo Virtual Machines