COMP07180 2018 Web Programming 2
Students will develop a full stack web application using JavaScript frameworks on both the server and client side. They will document and implement a ReST API. The application will include authentication and best practices to ensure application security.
Learning Outcomes
On completion of this module the learner will/should be able to;
Design and create n-tier applications using modern JavaScript frameworks and libraries.
Explain authorisation, authentication, and security and apply to a web application
Construct and make use of RESTful APIs.
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. Flipped learning will be employed as required. Screencasting by learners of project work will be used to develop presentation skills.
Virtual Machines will be used to allow flexibility and enhance learning.
Module Assessment Strategies
100% continuous assessment. Assessment for of and as learning will be carried out. Students participate in a project (70%) and have to complete lab work and 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 to cover all learning outcomes.
Indicative Syllabus
Design and create n-tier applications using modern JavaScript frameworks and libraries.
- Use a JavaScript framework to build n-tier applications.
- Examine the various language features employed in the framework.
- Evaluate the web server options used to host the application.
- Consider how unit testing is carried on the framework.
Explain authorisation, authentication, and security and apply to a web application
- Examine authorisation and authentications and the roles they both play
- Examine authentication options from self-developed to serverless alternatives such as Firebase
- Implement authorisation and authentication in the application.
- Implement appropriate levels of security.
- Examine HTTPS and the role of certificates
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 Assessment
Title | Type | Form | Percent | Week | Learning Outcomes Assessed | |
---|---|---|---|---|---|---|
1 | Quizzes and Lab Work | Coursework Assessment | Assessment | 30 % | OnGoing | 1,2,3,4 |
2 | Project - Implement a fully functional n tier application | Project | Project | 70 % | OnGoing | 1,2,3,4 |
Full Time Mode Workload
Type | Location | Description | Hours | Frequency | Avg Workload |
---|---|---|---|---|---|
Lecture | Lecture Theatre | Theory | 1 | Weekly | 1.00 |
Practical / Laboratory | Computer Laboratory | Practical exercises | 3 | Weekly | 3.00 |
Independent Learning | Not Specified | Independent learning | 3 | Weekly | 3.00 |
Required & Recommended Book List
2016-03-12 Modern Web Development: Understanding domains, technologies, and user experience (Developer Reference) Microsoft Press
ISBN 1509300015 ISBN-13 9781509300013
Master powerful new approaches to web architecture, design, and user experience
This book presents a pragmatic, problem-driven, user-focused approach to planning, designing, and building dynamic web solutions. Youll learn how to gain maximum value from Domain-Driven Design (DDD), define optimal supporting architecture, and succeed with modern UX-first design approaches. The author guides you through choosing and implementing specific technologies and addresses key user-experience topics, including mobile-friendly and responsive design. Youll learn how to gain more value from existing Microsoft technologies such as ASP.NET MVC and SignalR by using them alongside other technologies such as Bootstrap, AJAX, JSON, and JQuery. By using these techniques and understanding the new ASP.NET Core 1.0, you can quickly build advanced web solutions that solve todays problems and deliver an outstanding user experience.
Microsoft MVP Dino Esposito shows you how to:
- Plan websites and web apps to mirror real-world social and business processes
- Use DDD to dissect and master the complexity of business domains
- Use UX-Driven Design to reduce costs and give customers what they want
- Realistically compare server-side and client-side web paradigms
- Get started with the new ASP.NET Core 1.0
- Simplify modern visual webpage construction with Bootstrap
- Master practical, efficient techniques for running ASP.NET MVC projects
- Consider new options for implementing persistence and working with data models
- Understand Responsive Web Designs pros, cons, and tradeoffs
- Build truly mobile-friendly, mobile-optimized websites
About This Book
- For experienced developers and solution architects who want to plan and develop web solutions more effectively
- Assumes basic familiarity with the Microsoft web development stack
2016-12-30 Angular 2 Development with TypeScript Manning Publications
ISBN 1617293121 ISBN-13 9781617293122
Summary
Angular 2 Development with Typescript teaches you what you need to start using Angular, while you also learn TypeScript and how to take advantage of its benefits.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the Technology
Whether you're building web clients or full-featured SPAs, using the Angular 2 web framework is a liberating experience. Its declarative style makes it easy to define and add features without a lot of manually written boilerplate, and the fully integrated TypeScript language gives you the benefits of a statically typed language within the JavaScript ecosystem. Not to mention that adding Angular 2 and TypeScript to your skill set makes you a hot commodity.
About the Book
Angular 2 Development with Typescript introduces Angular 2 to developers comfortable using AngularJS v1 or other web frameworks. You'll start by exploring how Angular 2 works in an online auction application. Along the way, you'll learn to use TypeScript to write type-aware classes, interfaces, and generics. This is a practical book that covers real-world development concerns like data and views, user interaction with forms, and communicating with servers, as well as testing and deploying your Angular 2 applications.
What's Inside
- Design and build modular applications
- Transpile TypeScript into today's JavaScript
- Use modern JavaScript workflow tools like npm, Karma, and Webpack
About the Reader
This book is for intermediate web developers with a working knowledge of JavaScript. No TypeScript or AngularJS experience needed.
About the Author
Yakov Fain and Anton Moiseev are experienced web application developers. Yakov has written several books on software development.
Table of Contents
- Introducing Angular 2
- Getting started with Angular
- Navigation with the Angular router
- Dependency injection
- Bindings, observables, and pipes
- Implementing component communications
- Working with forms
- Interacting with servers using HTTP and WebSockets
- Unit-testing Angular applications
- Bundling and deploying applications with Webpack
2017-09-28 Learning Angular: A Hands-On Guide to Angular 2 and Angular 4 Addison Wesley
ISBN 0134576977 ISBN-13 9780134576978
2017-04-27 ng-book: The Complete Guide to Angular 4 CreateSpace Independent Publishing Platform
ISBN 1546376232 ISBN-13 9781546376231
Module Resources
https://angular.io/
https://getbootstrap.com/
https://material.angular.io/
http://www.restapitutorial.com/index.html
IT Sligo Virtual Machines
None