IFCD0021-1-25 Product Backlog
ifcd0021
backlog
Product Backlog by Month
September 2025
September 2025
| 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 - - 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 - ++ SCRUM: intro |
- Maven Create Project - Git - Git & gh basic commands - Repo rentingCar |
|
| 02 | 05 | 22/09/2025 | - Planning Sprint#02 - - 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) (3) (4) (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 |
|
| 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 - - 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 ![]() |
|
| 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
| 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) (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 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 |
- 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 - ++ 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) (6) checkAvailability (7) @ElementCollection for Map - - 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) (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 - |
- 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) (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 (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 (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 (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
| 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 - (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) (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 - (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 (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 | - - 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 | - - 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 |
































