← Teaching

Course material

Server-side web development

Building a complete backend with Java and Spring Boot: from HTTP and the first endpoints to PostgreSQL, REST APIs, security, integrations, testing and Angular connection.

2026/2027~156 hours

By the end of the module

What you will be able to do.

  • Explain what happens between an HTTP request and response, and diagnose it with browser tools and an HTTP client.
  • Build and verify HTTP backends with controllers, JSON, DTOs, validation, errors and session state.
  • Organise a Spring application into controller, service, repository, model and DTO layers.
  • Persist a relational domain model safely with JPA and PostgreSQL.
  • Design, validate, document and consume resource-oriented REST APIs.
  • Apply authentication, authorisation and common web-security controls with Spring Security.
  • Integrate external services and handle files, timeouts and partial failures.
  • Connect a browser client, and finally Angular, to the finished API without making backend verification depend on the interface.
  • Test, debug, document and defend a complete backend application.
About the course

One student-chosen CRUD project grows throughout the module, with enough domain complexity for relationships, business rules, transactions and testing. Two three-hour workshops per week: 25 minutes of explanation and demonstration, 140 minutes of project work and 15 minutes of verification. The existing 156-hour plan keeps 28 sessions (84 hours) in the first term and 24 (72 hours) in the second, subject to the centre calendar. The first term delivers a persistent backend in production; the second adds authentication, permissions, advanced APIs, integrations and Angular. The same repository and version are used in Intermodular Project: this module assesses the backend, while Intermodular assesses workflow, reviews, CI and deployment. The project manager in the notes is a worked example, not a mandatory topic.

  • HTTP and Spring Boot
  • Requests, responses and in-memory CRUD
  • REST design, DTOs, validation and errors
  • Layered architecture
  • JPA and PostgreSQL
  • Advanced REST APIs
  • Browser clients and CORS
  • Spring Security
  • External integrations
  • Testing, quality and documentation

Material last updated on 9 September 2026.

Course documents

General material.

Contents

Material by section.

This module is taught in Spanish and its material is published in Spanish. The section titles below are translated for reference.

UD1

From Java to the Web: HTTP and Spring Boot

Choose the course project and build its first in-memory CRUD, understanding HTTP and each Spring component. Four three-hour workshops.

UD2

Requests, responses and in-memory CRUD

How Spring turns HTTP into Java and back: request bodies, write operations, response control and repeatable checks.

UD3

REST APIs: resources, DTOs, validation and errors

The design rules that turn a pile of endpoints into a defensible API, taught before the application grows enough to make a redesign expensive.

UD4

Layered architecture

Refactoring a monolithic controller into clear layers with dependency injection, business rules and the first automated tests.

UD5

Persistence with JPA and PostgreSQL

A real relational database, entity relationships, queries, transactions, repository tests and introductory performance analysis.

UD6

First-term project

Close, review and defend the persistent, deployed version of the project chosen in the first session. Two sessions; the project continues throughout the term.

UD7
UD8

The project client: browser and CORS

Build the first browser client, diagnose CORS, and verify the integration before publishing it in Intermodular and adding authentication.

UD9

Session, authentication and Spring Security

From why HTTP forgets you to a protected API with persistent users, roles, permissions, sessions, tokens and CSRF.

UD10
UD11

Quality, observability and documentation

Consolidating into a strategy what has been tested since UD4, plus logging, debugging, OpenAPI and peer review.

UD12

Complete backend project

Complete and defend the evolution of the same product: specification, modelling, implementation, Angular integration, tests and documentation.