IFCD0021-26 Product Backlog
ifcd0021
backlog
Product Backlog by Month
September 2026
September 2026
| 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 - ++ 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 - - 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, (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 & (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 & (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 & (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 | - (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 | - (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 |
- - 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
| 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) (4) CRUD Service: updatePerson method business logic - ++ 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 | - (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 |
- - PersonCarDog project: 8d609f - Exercise: Adopt a Dog / issue#11 ![]() - Java Pyramid / Java SE > boot |
|
| 18 | 16/10/26 | - 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) - @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 |
- - 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 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 - inheritance & interfaces - Mermaid.ai |
- compassMap: 30b478 - dataModel-v1 - masterDoc_v1: 62cdc0ce - Postman DOCS: compassMap - compassMap: 386d24 |
November 2026
November 2026
| Sprint | Day | Date | Topics | Details Topics |
|---|






























