Web Application Development
Professor: Pedro M. H. S. Félix
Year:
3
Semester:
5
ECTS: 6
Goals
Students who successfully complete this course unit be able to:
- Design, implement and test Web APIs that expose an information system functionality subset, addressing aspects such as API evolvability, ease of use by multiple client types (e.g. native mobile applications) and security.
- Design, implement and test, over the browser platform, medium to high complexity applications, using Web APIs and Single Page Application (SPA) frameworks.
- Deploy and operate Web applications and APIs, including horizontal scalability and load balancing aspects.
- Identify and solve performance issues in Web applications and APIs.
- Create technical documentation about the developed systems.
Syllabus
- Web API design, including the HTTP protocol, selection and creation of media-types, and the use of hypermedia controls.
- Study of a library or framework for the development of Web APIs (e.g. ASP.NET, Spring, or similar).
- Design and implementation of applications over the browser platform, namely using the Single Page Application (SPA) model.
- HTML 5 APIs as a platform for the development of browser based rich Web applications.
- Bidirectional communication techniques between client and server.
- Code transpilation, module composition, and asset minimization.
- Reliability and optimization techniques based on horizontal scaling and load balancing.
- Unitary, integration and performance testing.
- Application logging production and analysis.
Outcomes
This course unit complements and consolidates the “Introduction to Internet Programming” unit goals, providing learning outcomes in three areas of Web application development: Web Application Programing Interfaces (API) development, rich browser-based application development, and deploy and operation over cloud-based platforms.
Bibliography
G. Block, P. Cibraro, P. Felix, H. Dierking, D. Miller, Designing Evolvable Web APIs with ASP.NET, O’Reilly, 2014. ISBN 9781449337919.
Links to multiple public information, dependent on the adopted frameworks, available at the public course repository.