IFCD0021-26 Product Backlog

ifcd0021
backlog

Backlog course

Backlog course

Product Backlog by Month

September 2026

September 2026
Backlog course September 2026 table
Sprint Day Date Topics Details Topics
#01 01 14/09/26 - Kick-off Java FullStack 2026:
(1) albertprofe.dev / albertprofe@gmail.com
(2) What is a roadmap and why is so important?
(3) Planning #11 weeks course
(4) IFCD021-24 / 25

- Architecture: Request-Response Cycle

++ New project: discover your own profile as a programmer
++ What do we need to start a project? Architecture, feature, data model

++ Backend: Spring Boot, Java, Maven, MVC, Spring Init to create package
- Summary IFCD021-24 pdf / Summary IFCD021-25 pdf

- Request-Response Cycle
- Developer 2025
- MOOC Helsinki


- Roadmap
02 15/09/26 - Spring Boot Project:
(1) Create a Spring Boot Project by Spring Initializer
(2) Download and Run the Spring Boot Project
(3) Explore the Spring Boot Project Structure and add Controller and View (Thymeleaf)
(4) Git: create local an remote repositories
(5) Documentation: markdown

- Tools to use in class

- Students introduction
- Architecture: Request-Response Cycle

++ Git: version control, time and space, Sync AlberProfe repo
- Create a Spring Boot Project TH / Create a Spring Boot Project
- Meet Jit si

- Request-Response Cycle

- compassMap project: aac116
03 17/09/26 - compassMap project:
(1) feature/mockup, architecture/tech stack, data model
(2) create project: Spring Init, documentation
(3) view & controller
(4) create local and remote repositories, git/gh
(5) deploy Render

- MVC, Spring Boot, request-response Cycle, Maven

- Students introduction

++ Intro React: state
- compassMap project: a0f95c

- Render
- Render deploy: books
- Spring Boot with Docker

- Create local and remote repo from everywhere



- Docker / React / Netlify / NextJS / Thymeleaf / GitHub / Render / Vite
- Web Application Java Basic Architectures
04 18/09/26 - compassMap project:
(1) feature/mockup, architecture, data model
(2) create project: Spring Init, documentation
(3) view & controller
(4) create local and remote repositories, git/gh
(5) deploy Render

- Create React Project: Vite / Axios intro
++ Intro to API Rest: What is an API?, How does it work?, Why is so relevant?
++ Examples: TMB, New York Times, Numbero, NASA
++ Publisher and Consumer pattern

++ Architecture vs Pattern
- compassMap project: bc92492

- Lab#RE01-1: API Rest Axios
- API rest


#02 05 21/09/26 - Plan Sprint#2

- compassMap project:
(1) feature/mockup, architecture, data model
(2) create project: Spring Init, documentation
(3) view & controller & model
(4) create local and remote repositories, git/gh
(5) deploy Render & life cycle development
(6) H2, JPA, application.properties, Repository
(7) JUnit Test

- Why planning is so relevant? Or not?
- compassMap project: 68b0e0

- Create a Spring Boot Project TH / Create a Spring Boot Project
- Create local and remote repo from everywhere



- JPA / H2
06 22/09/26 - compassMap project:
(1) feature/mockup, architecture, data model
(2) create project: Spring Init, documentation
(3) view & controller & model
(4) create local and remote repositories, git/gh
(5) deploy Render & life cycle development
(6) H2, JPA, application.properties, Repository
(7) Service
(8) JUnit Test

- Java class and object: primitive types and reference types
- Java is:
(1) typed,
(2) blocking and
(3) mutable language (known for performance power)

- Manage Project: Project > UML/DDD > PseudoCode > Type it!
- compassMap project: e4c4453

- Java Class


- People-Car algorithm
07 25/09/26 - compassMap project:
(1) feature/mockup, architecture, data model
(2) create project: Spring Init, documentation
(3) view & controller & model
(4) create local and remote repositories, git/gh
(5) deploy Render
(6) H2, JPA, application.properties, Repository
(7) Service: create, read, findBy, delete
(8) JUnit Test: create, read, findBy, delete

- documentation:
(1) commandLineRunner and Java faker for synthetic data
(2) Spring Init
(3) Product and Sprint goal
(4) Repository

++ Mapping & Parsing
++ Front, Network, Back, DB are different environments
++ Data: text, JSON, Java Object, Register

++ application.properties: datasource, login, security, th, logs and errors, port, profile, apis, cloud
- compassMap project: 88bc7a

- application.properties: DDL
- Lab#SB08-4: JPA

- WebStackParsing
#03 08 28/09/26 - Plan Sprint#03

- Synthetic data for compassMap:
(1) why realistic test data is useful
(2) distinguish synthetic, seed and production data
(3) define the minimum dataset for the map domain

- Java Faker: dependency, locale and reproducible generation
- Keep fake-data creation outside controllers:
(1) utils/service/helper

++ MVC evolution
++ DDD: our domains definition
++ How to learn which questions are the good ones to discard approaches in real-time
- compassMap project: 613dd4

- Java Faker / Lab: testFaker
- RestaurantManager: Java Faker
- Synthetic Data Generation
- 6 approaches

- Assembly

09 29/09/26 - Java Faker: Utils layer & runner:
(1) inject Faker into a generator service/utils
(2) generate customer entities
(3) use CommandLineRunner or ApplicationRunner for controlled seed data
(4) builder: lombok dependency
(5) check it

- Review constructors, object references and dependency injection

++ 3 ways to use Spring Boot
(1) Native: as a server request/response cycle with controller
(2) Test: JUnit with @Test
(3) runner: using CommandLineRunner at Main

++ Menu at runner to use with the IDE run console
- compassMap project: faa1b69

- Java Faker at utils / Java Faker examples

- Spring dependency injection / DDD & Coupling

- Lombok

10 01/10/26 - CompassMap JPA model and persistence:
(1) map the domain classes with @Entity
(2) choose identifiers and generated values
(3) define columns, constraints and validation
(4) model relationships and ownership with @ManyToOne / @OneToMany
(5) create JpaRepository interfaces
(6) persist synthetic data without duplicate seed records


- H2 schema generation and application.properties
- Request-response cycle: controller, service, repository and database

++ Menu at runner to use with the IDE run console
++ Refactor main loop to BackOffice utils
++ Implement customer loop

++ How to code?
(0) Mini-plan: understand the feature
(2) Name it: method, class, variables, bad-names first
(2) Skeleton & pseudocode: SRP, readable, de-coupled
(3) From where to call and where to place new feature
(4) Arguments, parameters, class connection: @Autowired, static, etc ..

++ Execution Flow: populate customer
- compassMap project: 4bce67

- JPA concepts
/ JPA relationships / Spring Data JPA
- Java Persistence
- H2 Database

- static modifier
-Single-responsibility principle

- Flow of Execution: CLI → DB Population via Spring Boot

11 02/10/26 - Verification and review:
(1) JUnit tests for Faker-generated data and service rules
(2) repository integration tests with H2
(3) verify stable IDs, valid coordinates and relationship persistence
(4) test the CompassMap API with seeded data
(5) review Sprint#03, document impediments and plan the next increment

- Refactor: separate seed configuration from business logic


- PersonCarDog project
- Java Faker lab: testFaker
- RestaurantManager: JUnit and repository examples
- JUnit 5
- CompassMap project

- SCRUM concepts and retrospective

- PersonCarDog project: 909b61
- Mermaid
- UML
- PersonCarDog project: masterDoc v1

- Flow of Execution: CLI → DB Population via Spring Boot

October 2026

October 2026
Backlog course October 2026 table
Sprint Day Date Topics Details Topics
#04 12 05/10/26 - Plan Sprint#04

- PersonCarDog project:
(1) Exercise: Implement the Repository class#1
(2) Exercise: Create fake-objects and populate Repository#2

- Git:
(1) is Version Control tool
(2) memory: time/space
(3) targeting B, from A with a why

- Detached HEAD, what is HEAD
- git init, config, add, commit, checkout, branch, switch
- compassMap project: 613dd4

- Java Faker / Lab: testFaker
- RestaurantManager: Java Faker
- Synthetic Data Generation
- 6 approaches

- PersonCarDog project: 909b61
- Mermaid
- UML
- PersonCarDog project: masterDoc v1

- Exercise: Implement the Repository class#1
- Exercise: Create fake-objects and populate Repository#2

13 06/10/26 - Git:
(1) is Version Control tool
(2) memory: time/space
(3) targeting B, from A with a why

- GitHub
(1) a remote hub repo for local git
(2) gh cli: gh auth login
(3) gh repo create "remote-repo"
(4) push/pull/fetch/fork/clone…

- Pull request:
(1) what is it?
(2) why is so relevent?
(3) how does it work?

- GitHub tools: pages, wiki, issues, projects, pull requests, etc ..
- Git / Git-GitHub CLI / gh auth login / - Altassian Git / Git Official

- Gist: Git-basics
- Gist: createRepo
- Gist: Detached HEAD
- Gist: pull-request



14 08/10/26 - PersonCarDog project:
(1) create the CRUD service for Person, Car, Dog
(2) create the service READ for CarTransaction
(3) create the UI CLI for the model CRUD

++ Pull-request solve conflict via GitHub Web Editor
++ Jose PR: Implementado DataSeeder con 10 objetos totales usando Java Faker
++ Fixing a PR Conflict creates 2 commits: fix & merge
- PersonCarDog project: 4674b8
- PersonCarDog project: masterDoc_v2

- Exercise#3 / issue#4


- PersonCarDog project: 0be4f62
- Jose PR
- Gist: conflict pr
- Gist: sync
15 09/10/26 - PersonCarDog project:
(1) create the CRUD service for Person, Car, Dog
(2) create the service READ for CarTransaction
(3) create the UI CLI for the model CRUD
(4) CRUD Service: updatePerson method business logic

- Feature: person adopts dog

++ Create branch: approach-return-update
++ Add return-value object to updatePerson
++ Class ResultUpdateOperation to return data from operations
++ Object class
++ Controller UI-CLI while-menu printing resultUpdateOperation
- PersonCarDog project: a45d2f
- PersonCarDog project: branch-fbc2546
- ResultUpdateOperation.java
- updatePerson with resultUpdateOperation
- controller UI-CLI printing resultUpdateOperation


#05 16 13/10/26 - Plan Sprint#05

- PersonCarDog project:
(1) Test implemented features: buyCar, CRUD
(2) Review Code
(3) PR seeder & result wrapper
(4) Migration to Srping Boot

++ Communication: foundation + skills

++ Java Classes: Person type vs Service type (Entity vs static methods Collection)
- PersonCarDog project: 457aa9 / 1e6dc8
- PersonCarDog project: masterDoc:v3 / v4
- PersonCarDog: test

- Gist: git

- Migration to SBoot:doc
- Migration to SBoot: diagram

- Communication / 2 / SCRUM: Week#3
17 15/10/26 - CompassMap JPA model and persistence:
(1) map the domain classes with @Entity
(2) choose identifiers and generated values
(3) define columns, constraints and validation
(4) model relationships and ownership with @ManyToOne / @OneToMany
(5) create JpaRepository interfaces
(6) persist synthetic data without duplicate seed records

- H2 schema generation and application.properties
- Request-response cycle: controller, service, repository and database

++ Review Homework: Java SE to maven Spring Boot:
(1) entry-point: main and @SpringBootApplication
(2) CommandLineRunner, Server, Tomcat, etc..
(3) Scope, annotations
(4) static methods vs DI
(5) pom.xml

- PersonCarDog project, new feature: adopt a dog
- compassMap project: e71043
- PersonCarDog project: 8d609f

- Exercise: Adopt a Dog / issue#11



- Java Pyramid / Java SE > boot
18 16/10/26 - CompassMap JPA model and persistence:
(1) map the domain classes with @Entity
(2) choose identifiers and generated values
(3) define columns, constraints and validation
(4) model relationships and ownership with @ManyToOne / @OneToMany
(5) create JpaRepository interfaces
(6) persist synthetic data without duplicate seed records

- H2 schema generation and application.properties
- Request-response cycle: controller, service, repository and database

- PersonCarDog: custody dog feature (manytomany)
- API Rest: Spring Boot @RestController

++ JSON Persistence for PersonCarDog
++ what-is-serialize and how do we use in JSON Persistence feature
++ PersonCarDog: request-response-flow diagram with 4 use-cases
- compassMap project: e71043

- API Rest
- Spring Boot Data
- JPA Relationships

- Issue #14: custody dog

Branches

- json-persistence-diagram
- what-is-serialize
- request-response-flow
#6 19 19/10/26 - Plan Sprint#6

- CompassMap project:
(1) map the domain classes with @Entity & Lombok
(2) choose identifiers and generated values: @Id
(3) define columns, constraints and validation: defensive programming
(4) model relationships and ownership with @ManyToOne / @OneToMany
(5) create JpaRepository interfaces
(6) persist synthetic data without duplicate seed records: BackOffice
(7) API Rest: @RestController

- H2 schema generation and application.properties
- Request-response cycle: controller, service, repository and database

- API Rest:
(1) What is it?
(2) customer rest controller implemented

- CompassMap data model draft
- compassMap project: e71043

- API Rest
- Spring Boot Data
- JPA Relationships

- request-response-flow

- Postman DOCS: ../customer


20 20/10/26 - CompassMap project:
(1) map the domain classes with @Entity
(2) choose identifiers and generated values: @Id
(3) define columns, constraints and validation: defensive programming
(4) model relationships and ownership with @ManyToOne / @OneToMany
(5) create JpaRepository interfaces
(6) persist synthetic data without duplicate seed records
(7) API Rest: @RestController

- CompassMap data model draft

- Lombok: Java library generates boilerplate code at build time via annotations
- compassMap masterDoc_v1: 30b4786 / Project

- dataModel: approaches
21 22/10/26 - CompassMap project:
(1) map the domain classes with @Entity
(2) choose identifiers and generated values: @Id
(3) define columns, constraints and validation: defensive programming
(4) model relationships and ownership with @ManyToOne / @OneToMany
(5) create JpaRepository interfaces
(6) persist synthetic data without duplicate seed records
(7) API Rest: @RestController

- CompassMap data model: v1

- UML: inheritance & interfaces
- Mermaid.ai
-compassMap: 058aa4
- compassMap: a46f35

- UML
- Interface
- Inheritance


- dataModel folder: a46f354
22 23/10/26 - CompassMap project:
(1) map the domain classes with @Entity
(2) choose identifiers and generated values: @Id
(3) define columns, constraints and validation: defensive programming
(4) model relationships and ownership with @ManyToOne / @OneToMany
(5) create JpaRepository interfaces
(6) persist synthetic data without duplicate seed records
(7) API Rest: @RestController

- CompassMap data model: v1 pre-jpa

- UML: inheritance & interfaces
- Mermaid.ai
- compassMap: 30b478


- dataModel-v1
- masterDoc_v1: 62cdc0ce

- Postman DOCS: compassMap
- compassMap: 386d24

November 2026

November 2026
Backlog course November 2026 table
Sprint Day Date Topics Details Topics
Back to top