IFCD0021-1-25 Product Backlog

ifcd0021
backlog

Backlog course

Backlog course

Product Backlog by Month

September 2025

September 2025
Backlog course September 2025 table
Sprint Day Date Topics Details Topics
01 01 15/09/2025 - Kick-off Java FullStack 2025:
(1) albertprofe.dev
(2) What is a roadmap and why is so important?
(3) Planning #11 weeks course

- Architecture: Request-Response Cycle
- Request-Response Cycle
- Developer 2025
- MOOC Helsinki


- Unveiling the Technological Marvels behind Netflix’s Seamless Experience
02 16/09/2025 - Contact: albertprofe@gmail.com
- Lateralization: learning
- Spring Boot: intro
- Pet Projecct: UML & data model
- Vocabulary: API, Framework, etc..
- Tech Stack
- Git/gh
- git basics
- gh auth login
- UML
- Maven Create Project
- Push to git
- UML Mermaid
03 18/09/2025 - How to plan
- Create a Spring Boot Project: debugg
- MVC: how it works
- Spring Boot as a Restaurant
- Java SE: scope
- Thymeleaf: what is a template engine
- Spring Boot Create Project
- Maven Create Project
- Java Version Switch
04 19/09/2029 - Git: version control
- Project Maven Renting Car:
(0) Project in 4 steps: Project > DDD > UML > Code
(1) UML: Booking has Car & Client
(2) Maven Project
(3) Entity classes
(4) Execution flow Apache-Maven-quickstart

- static vs. non-static
++ SCRUM: intro
- Maven Create Project
- Git
- Git & gh basic commands
- Repo rentingCar
02 05 22/09/2025 - Planning Sprint#02
- Linux: basics
- Java SE: static vs non-static

- Project: rentingCar:
(1) UML: class, execution flow, seq. diagram
(2) booking object
(3) docs
- linux: Basics
- UML Mermaid
- Mermaid docs
- static
- UML
- Repo rentingCar: da0e3f
06 23/09/2025 - Java: JUnit

- Project: rentingCar:
(1) UML, booking object
(2) UI: cli interaction
(3) Class Repository: HashMap vs. List
(4) Main Loop: scanner
(5) UML: model, data store, view, business logic

++ How to program: Project > DDD > UML > Code
- JUnit and TDD
- Repo rentingCar: c7c49c88
07 25/09/2025 - Git

++ Java Classes, for what? Entities and model, object management, helpers and utilities
- Project: rentingCar:
(1) UML, booking object & myDataStore object
(2) UI: cli interaction
(3) Class Repository: HashMap vs. List
(4) Main Loop: scanner
(5) ++ Fake Data DB populator

++ Time data in Java: object, string or long epoch
- Coupling
- Git
- Git & gh basic commands
- gh auth login

- Repo rentingCar: ad580c5
- epoch

08 26/09/2029 - Project: rentingCar:
(1) UML, booking object
(2) UI: cli interaction
(3) Class Repository: HashMap vs. List
(4) Main Loop: scanner
- UML Mermaid
- UML
- Repo rentingCar
09 29/09/2025 Class postponed
03 09 30/09/2025 - Project: rentingCar:
(1) UML, booking object
(2) UI: cli interaction
(3) Class Manager: CarManager
(4) Main Loop: scanner
(5) UML: model, data store, view, business logic

++ How to team: A + B is A or B, almost never C; think and then code: develop, code and then think: sandbox; do not digress, be concrete
- Repo rentingCar: 3144476
10 02/10/2025 - Project: rentingCar:
(1) UML, booking object & myDataStore object
(2) UI: cli interaction
(3) Class Manager: Car, Client and Booking
(4) Main Loop: scanner, now Disptacher
(5) Fake Data DB populator Client
(6) Implement CreateBooking, draft Login
(7) add field loggedClient, type Client to datastore

- Time data in Java: object, string or long epoch

- What does it mean to be a programmer and not a coder?
(1) Ask yourself every line: is t his core? do I know how to code it quickly? does it involves a lot of decision-making?
(2) Do not overcomplicate the process

- DDD: domain-driven design & coupling; keywords for rentingCar domains
- Repo rentingCar: b7aa3539
- DDD and coupling


by Sonia
11 03/10/2029 - Project: rentingCar:
(1) UML, booking object & myDataStore object
(2) UI: cli interaction
(3) Class Manager: Car, Client and Booking
(4) Main Loop: scanner, now Disptacher
(5) Fake Data DB populator Client
(6) Implement CreateBooking
(7) add field loggedClient, type Client to datastore
(8) Impplement Login decoupled: LoginView, LoginValidate

- SPA vs. Multi-page
- Git: fork and sync

- Retrospective
- Repo rentingCar: d2d29d56


October 2025

October 2025
Backlog course October 2025 table
Sprint Day Date Topics Details Topics
04 12 06/10//2025 - Plan Sprint#04

- Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Class @Service: CarService & ClientService
(4) Class @Controller: Thymeleaf and Api Rest

(5) Repository: JPA & H2 DB
(6) POM and dependencies
(7) Root project

++ Microservices vs. Monolith
- Repo rentingCar-Boot: 2a29d27
- Spring Boot create
13 07/10/2025 - Request/Response Cycle: mapping

- Project: rentingCarBoot:
(1) UML, Car & Client object, CarExtras
(2) UI: no UI, just JUnit tests
(3) Class @Service: CarService & ClientService
(4) Class @Controller: Thymeleaf and Api Rest
(5) Repository: JPA & H2 DB
(6) Create local H2 db

++ JPA: @oneToMany and @MenyToOne
- Repo rentingCar-Boot: eb3217d0
- JPA: relationships

JPA: relationships

- JPA vs Hibernate
14 09/10/2025 - Project: rentingCarBoot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Class @Service: CarService & ClientService
(4) JPA: Java Persistence Api
(5) Repository: JPA & H2 DB
(6) Create local H2 db

- Git: fork and sync
- Repo rentingCar-Boot: ab214ca
- DDD and coupling

15 10/15/2025 - Project: rentingCarBoot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Class @Service: CarService & ClientService
(4) CJPA: Java Persistence Api
(5) Repository: JPA & H2 DB
(6) InsuranceCia n:1 with Car

- SPA vs. Multi-page
- Managing time in Java: epoch, object, String
- Repo rentingCar-Boot: a771773


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

- Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) Many-To-Many: two approaches, bridge and @JoinTable
(5) Booking domain
(6) Implement @Booking as a bridge
(7) LAZY & EAGER; @Transactioanl

++ TH: view for Cars with its entities
- Repo rentingCar-Boot: 62b5c18
- Spring Boot create

17 14/10/2025 - Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) @ManyToMany
(5) Booking domain: populate at /utils



++ Booking populate faker
++ @ElementCollection for List
- Repo rentingCar-Boot: bf2f0dc
- JPA: relationships



18 16/10/2025 - Project: rentingCarBoot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Booking feature: service draft
(4) @ManyToMany: Unidirectional or bidirectional
(5) Course @Entity @joinTable m:n with Booking
(6) generateUUID to /utils

++ Populate DrivingCourse: nested loop with for and if-else is the best option?
- Repo rentingCar-Boot: 463c84268
- DDD and coupling


- JPA - Using @JoinTable
- Library3: API Rest Library Book @ManyToMany @OneToOne CRUD with Swagger
19 17/15/2025 - Project: rentingCarBoot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Booking feature

- Client <> Addreses: @ElementCollection

- Populate DrivingCourse: nested loop with for and if-else is the best option?
- Repo rentingCar-Boot: 355302

06 20 20/10//2025 - Plan Sprint#06
- Why is so important having Context? Right/Left hemispheres, planning and decision-making
- How to plan sandbox-projects: UNL, hours/week, very clear product-goal, roadmap projects 1-year

- Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) Feature, car availability by date: data model and listing
(5) Updating data-model: where and how

- JUnit: asserts
++ HashMaps: intro
- WebApp: APIs
- Repo rentingCar-Boot: f6d8ad4
- Spring Boot create

- APIs

21 21/10/2025 - Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) Feature: car availability by date: booking and updating availability
(5) Booking updates availability, last step
(6) checkAvailability
(7) @ElementCollection for Map

- JUnit: asserts

- 4 approaches to available dstes for booking car:
(1) List of BookingDates
(2) HashMap of Integer/Boolean
(3) List of unavailable Dates
(4) Booking query

++ Wrappers and Containers
++ Implement feature: model and populate, checkAvailability, generateBooking, update Car Map
- Repo rentingCar-Boot: 1e60887f
- JPA: relationships



22 23/10/2025 - Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) Listing Boooking/Car
(5) GenerateBooking
- Implement feature: model and populate, checkAvailability, generateBooking, update Car Map
++ Orchestrator: GenerateBooking
++ testUnixTimestampAvailability_Fail
++ formatAvailabilityRanges

- PRA#01, PRA#02, PRA#03: MF01, MF02, MF03

- Git: clone, fork and pull request
- Repo rentingCar-Boot: 972a0f153
- DDD and coupling

- PRA01-02-03 v3

23 24/10/2025 - Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) Listing Boooking/Car
(5) generateBooking: string Builder

- Why API Rest is a standard de facto?

++ Why Agile projects? Metrics (learning, tools, mooc, ..), Management (Iteration), Mindset
++ Vocabulary: Container, Builder, Wrapper, Helper/Util, Pattern
++ Intro JPQL, JPA queries
++ Interface: intro
- String Builder


- JPA Queries
- Soft lifeCycle
07 24 27/10//2025 - Plan Sprint#07

- Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) Feature, car availability by date and booking: test
(5) Queries
(6) Interfaces

- JUnit: asserts: mock tests
(1) when
(2) assertTrue
++ public interface ModifyBookingService: just draft class, not implemented
- Repo rentingCar-Boot: 1d69fc4
- Java Interface
- Interface example


25 28/10/2025 - Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) Feature, car availability by date and booking: test
(5) Queries: derivate from name method
(6) Interface

- JUnit: asserts:
(1) @MockBean / @MockitoBean instead of @Autowired
(2) AAA Strategy
(3) testFindByBookingDateLessThan
- Repo rentingCar-Boot: cb8dd61e6
- JPA: relationships
- AlbertProfe/rentingCarTest · GitHub
- JPA Query Methods :: Spring Data JPA
- Spring Boot: JPA Queries – albertprofe wiki
26 30/10/2025 - Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) Queries: different types
(5) View: migrating to Vaadin

- Vaadin Flow & Hilla: intro full-stack
- Vaadin Playground
- Vaadin Atmosphere
- Repo rentingCar-Boot: cd78a53
- Spring Boot: JPA Queries – albertprofe wiki

- Vaadin
- Vaadin playground
- Vaadin Flow
- Vaadin Hilla
- Atmosphere


27 31/10/2025 - Project: rentingCar-Boot:
(1) UML, Car & Client object
(2) UI: no UI, just JUnit tests
(3) Repository: JPA & H2 DB
(4) Queries
(5) Circular Reference: car
carExtras
(6) @RestController & Postman

- API: Rest, Websocket, GraphQL, Webhooks
- Communication: Super-tech, Formal, Student, 5 year-old

++ Rest call for /api/cars: 9MB & 350.000 lines!
- Repo rentingCar-Boot: 2b0ccd6
- Repo rentingCar-Boot: f5131ea
- Postman


November 2025

November 2025
Backlog course November 2025 table
Sprint Day Date Topics Details Topics
08 24 03/11//2025 - Sprint#8: plan 4-week React

- Java: circular reference
- @JsonIgnore
- @JsonManagedReference and @JsonBackReference.
- @JsonProperty

- React: intro
- React MOOC: React Lean
- Describing the UI: .jsx and what is a compoent
- Repo rentingCar-Boot: 053dca7b

- React Principles
- Create React App
- Describing the UI

- CodeSandbox: Gregorio
25 04/11//2025 - React: intro
- React.dev: React Lean, Describing the UI
- React.dev: PROPS
- Material CSS

++ Render cycle and immutability
- Describing the UI
- Passing Props

- CodeSandbox: Gregorio
- Gregorio render
- Gregorio Repo GH

- React Principles
- React is JSX
- What is props



- Context engineering

26 06/11//2025 - Vaadin-Hilla
- Project: rentingCar-vaadin:
(1) Create project Vaadin: playground
(2) Define UI: mockup
(3) Import Model & Business Logig Boot
(4) Build project: Npm, Maven, Typescript interfaces, App.tsx, Vite
(5) React Components
(6) Vaadin Components
(7) Vaadin Controller and Endpoints


- React.dev:
(1) Data List: map
(2) Conditional render
(3) React UI is a components tree

- CSS Frameworks
- React Roadmap

++ Low Fidelity Wireframe for rentingCar
++ React paradigm vs. Java paradigm
- Gregorio Repo GH
- Describing the UI
- Passing Props
- Conditional render
- Rendering lists

- Semantic / Material / Tailwind / Shadcn-ui
- Open Stack Course
- React Roadmap web
- React Roadmap pdf
- Vite / nvm






- Java vs React
27 07/11//2025 - Vaadin-Hilla
- Project: rentingCar-vaadin:
(1) Create project Vaadin: playground
(2) Define UI: mockup
(3) Import Model & Business Logig Boot
(4) Build project: Npm, Maven, Typescript interfaces, App.tsx, Vite
(5) React Components
(6) Vaadin Components
(7) Vaadin Controller and Endpoints

- React.dev:
(1) Data List: map
(2) Conditional render
(3) React UI is a components tree

- APIs: REST, Websockets, GraphQL , etc
- Retrospective 4-week plan

++ Literal Object in JS is NOT a JSON
++ Parsing
- Describing the UI
- Passing Props
- Conditional render
- Rendering lists


- Literal Object
- Parsing
09 28 10/11//2025 - Plan Sprint#9

- Why does planning mean exactly?
- Divide tasks to match energy: learning, context and drilling
- Sometimes, we undersitmate context, right brain

- React.dev: Hooks
(1) State management
(2) Flow between render html and business logc and data
(3) Understand the render cycle
(4) Adding interactivity
(5) State as snapshot: immutability
- State as snapshot
29 11/11//2025 - React.dev: Hooks
(1) State management
(2) Flow between render html and business logc and data
(3) Understand the render cycle
(4) Adding interactivity
(5) State as snapshot: immutability

- Improving the React definiton: render Cycle, state. POC
- Handlers: passing vs. calling
- ReactJS: useState

- State as snapshot
- Responding to Events
- State: A Component’s Memory

- Sculptures lab

30 13/11//2025 - rentingCar-vaadin Hilla (2)

- Sculptures Sandbox:
(1) App: navigate different views
(2) Switch case: conditional render
(3) …spread operator
(4) Updating Objects in State
- Sculptures Wiki
- Sculptures CodeSandBox



- Updating Objects in State
31 14/11//2025 - rentingCar-vaadin Hilla (2)

- Sculptures Sandbox:
(1) App: navigate different views
(2) Switch case: conditional render
(3) …spread operator
(4) Updating Arrays in State

- useEffect: intro
- Sculptures Wiki
- Sculptures CodeSandBox


- Updating Arrays in State
- useEffect
Back to top