# marcoyimyaem/esistb2y2025 architecture

> Architecture diagram of the GitHub repository marcoyimyaem/esistb2y2025, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/marcoyimyaem/esistb2y2025
- Repository: https://github.com/marcoyimyaem/esistb2y2025

## Overview

This is a set of standalone Java programming lessons, not a single application. The learner’s workflow is to explore concepts chapter by chapter and run examples that print results or, in one sampled lesson, read console input. The tree groups lessons from basic language concepts through object-oriented programming and exceptions. The README is empty, and only some source files were sampled, so links are limited to observed entry points, console interactions, and calls; other lesson files are included without speculative wiring.

Main entry points: [`otherFolder/SunFlower.java`](https://github.com/marcoyimyaem/esistb2y2025/blob/main/otherFolder/SunFlower.java) (Access across packages), [`chapter1/Main.java`](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/Main.java) (Objects and setup), [`chapter2/LoopsLesson.java`](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter2/LoopsLesson.java) (Loops and input), [`chapter4/VarArgsLesson.java`](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/VarArgsLesson.java) (Varargs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_basics["Chapter 1 Basics"]
  node_main["Objects and setup<br/>[Main.java]"]
  node_constructors["Constructors"]
  node_initialization["Instance initialization"]
  node_naming["Naming conflicts"]
  node_primitives["Primitive types"]
  node_references["References"]
  node_toy["Toy class<br/>[Toy.java]"]
end

subgraph group_flow["Chapter 2 Flow"]
  node_equality["Equality"]
  node_conditionals["Conditionals"]
  node_loops["Loops and input<br/>[LoopsLesson.java]"]
  node_operators["Operators"]
end

subgraph group_data["Chapter 3 Data"]
  node_arrays["Arrays<br/>[ArrayLesson.java]"]
  node_arraylists["Array lists"]
  node_dates["Dates and time"]
  node_strings["Strings<br/>[StringLesson.java]"]
end

subgraph group_methods["Chapter 4 Methods"]
  node_access["Access modifiers"]
  node_constructors4["Constructor lesson"]
  node_lambda["Lambdas and predicates<br/>[LambdaLesson.java]"]
  node_overloading["Overloading"]
  node_predicate["Predicate interface<br/>[Predicate.java]"]
  node_returntype["Return types<br/>[ReturnType.java]"]
  node_varargs["Varargs<br/>[VarArgsLesson.java]"]
end

subgraph group_objects["Chapters 5–6 OOP"]
  node_inheritance["Inheritance"]
  node_polymorphism["Polymorphism"]
  node_exceptions["Exceptions"]
  node_sunflower["Access across packages<br/>[SunFlower.java]"]
  node_makahiya["Package example<br/>[Makahiya.java]"]
end

node_learner(("Learner"))
node_stdout["Console output"]
node_stdin["Console input"]

node_learner -->|"runs"| node_main
node_learner -->|"runs"| node_conditionals
node_learner -->|"runs"| node_loops
node_learner -->|"runs"| node_arrays
node_learner -->|"runs"| node_dates
node_learner -->|"runs"| node_lambda
node_learner -->|"runs"| node_varargs
node_learner -->|"runs"| node_inheritance
node_learner -->|"runs"| node_polymorphism
node_learner -->|"runs"| node_exceptions
node_learner -->|"runs"| node_sunflower
node_main -->|"instantiates"| node_toy
node_main -->|"prints"| node_stdout
node_loops -->|"reads"| node_stdin
node_loops -->|"prints"| node_stdout
node_conditionals -->|"prints"| node_stdout
node_arrays -->|"prints"| node_stdout
node_dates -->|"prints"| node_stdout
node_lambda -->|"prints"| node_stdout
node_varargs -->|"prints"| node_stdout
node_inheritance -->|"prints"| node_stdout
node_polymorphism -->|"prints"| node_stdout
node_exceptions -->|"prints"| node_stdout
node_sunflower -->|"prints"| node_stdout
node_sunflower -->|"uses"| node_access
node_sunflower -->|"calls"| node_varargs

click node_main "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/Main.java"
click node_constructors "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/Constructor1Lesson.java"
click node_initialization "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/InstanceIniLesson.java"
click node_naming "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/NamingConflictLesson.java"
click node_primitives "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/PrimitivesLesson.java"
click node_references "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/ReferenceLesson.java"
click node_toy "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/Toy.java"
click node_equality "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter2/EqualityOperator.java"
click node_conditionals "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter2/IfSwitchStatementLesson.java"
click node_loops "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter2/LoopsLesson.java"
click node_operators "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter2/OperatorsLesson.java"
click node_arrays "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter3/ArrayLesson.java"
click node_arraylists "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter3/ArrayListLesson.java"
click node_dates "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter3/DatesAndTimeLesson.java"
click node_strings "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter3/StringLesson.java"
click node_access "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/AccessModifier.java"
click node_constructors4 "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/ConstructorLesson.java"
click node_lambda "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/LambdaLesson.java"
click node_overloading "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/OverLoadingLesson.java"
click node_predicate "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/Predicate.java"
click node_returntype "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/ReturnType.java"
click node_varargs "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/VarArgsLesson.java"
click node_inheritance "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter5/InheritanceLesson.java"
click node_polymorphism "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter5/PolyMorrphismLesson.java"
click node_exceptions "https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter6/ExceptionsLesson.java"
click node_sunflower "https://github.com/marcoyimyaem/esistb2y2025/blob/main/otherFolder/SunFlower.java"
click node_makahiya "https://github.com/marcoyimyaem/esistb2y2025/blob/main/otherFolder/a/Makahiya.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_constructors,node_initialization,node_naming,node_primitives,node_references,node_toy toneBlue
class node_equality,node_conditionals,node_loops,node_operators toneAmber
class node_arrays,node_arraylists,node_dates,node_strings toneMint
class node_access,node_constructors4,node_lambda,node_overloading,node_predicate,node_returntype,node_varargs toneRose
class node_inheritance,node_polymorphism,node_exceptions,node_sunflower,node_makahiya,node_learner,node_stdout,node_stdin toneIndigo
```

## Components

### Chapter 1 Basics

- [Objects and setup](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/Main.java): `chapter1/Main.java`
- [Constructors](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/Constructor1Lesson.java): `chapter1/Constructor1Lesson.java`
- [Instance initialization](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/InstanceIniLesson.java): `chapter1/InstanceIniLesson.java`
- [Naming conflicts](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/NamingConflictLesson.java): `chapter1/NamingConflictLesson.java`
- [Primitive types](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/PrimitivesLesson.java): `chapter1/PrimitivesLesson.java`
- [References](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/ReferenceLesson.java): `chapter1/ReferenceLesson.java`
- [Toy class](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter1/Toy.java): `chapter1/Toy.java`

### Chapter 2 Flow

- [Equality](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter2/EqualityOperator.java): `chapter2/EqualityOperator.java`
- [Conditionals](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter2/IfSwitchStatementLesson.java): `chapter2/IfSwitchStatementLesson.java`
- [Loops and input](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter2/LoopsLesson.java): `chapter2/LoopsLesson.java`
- [Operators](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter2/OperatorsLesson.java): `chapter2/OperatorsLesson.java`

### Chapter 3 Data

- [Arrays](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter3/ArrayLesson.java): `chapter3/ArrayLesson.java`
- [Array lists](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter3/ArrayListLesson.java): `chapter3/ArrayListLesson.java`
- [Dates and time](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter3/DatesAndTimeLesson.java): `chapter3/DatesAndTimeLesson.java`
- [Strings](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter3/StringLesson.java): `chapter3/StringLesson.java`

### Chapter 4 Methods

- [Access modifiers](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/AccessModifier.java): `chapter4/AccessModifier.java`
- [Constructor lesson](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/ConstructorLesson.java): `chapter4/ConstructorLesson.java`
- [Lambdas and predicates](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/LambdaLesson.java): `chapter4/LambdaLesson.java`
- [Overloading](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/OverLoadingLesson.java): `chapter4/OverLoadingLesson.java`
- [Predicate interface](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/Predicate.java): `chapter4/Predicate.java`
- [Return types](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/ReturnType.java): `chapter4/ReturnType.java`
- [Varargs](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter4/VarArgsLesson.java): `chapter4/VarArgsLesson.java`

### Chapters 5–6 OOP

- [Inheritance](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter5/InheritanceLesson.java): `chapter5/InheritanceLesson.java`
- [Polymorphism](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter5/PolyMorrphismLesson.java): `chapter5/PolyMorrphismLesson.java`
- [Exceptions](https://github.com/marcoyimyaem/esistb2y2025/blob/main/chapter6/ExceptionsLesson.java): `chapter6/ExceptionsLesson.java`
- [Access across packages](https://github.com/marcoyimyaem/esistb2y2025/blob/main/otherFolder/SunFlower.java): `otherFolder/SunFlower.java`
- [Package example](https://github.com/marcoyimyaem/esistb2y2025/blob/main/otherFolder/a/Makahiya.java): `otherFolder/a/Makahiya.java`

### Other components

- **Learner**
- **Console output**
- **Console input**

## Connections

- Learner → Objects and setup: runs
- Learner → Conditionals: runs
- Learner → Loops and input: runs
- Learner → Arrays: runs
- Learner → Dates and time: runs
- Learner → Lambdas and predicates: runs
- Learner → Varargs: runs
- Learner → Inheritance: runs
- Learner → Polymorphism: runs
- Learner → Exceptions: runs
- Learner → Access across packages: runs
- Objects and setup → Toy class: instantiates
- Objects and setup → Console output: prints
- Loops and input → Console input: reads
- Loops and input → Console output: prints
- Conditionals → Console output: prints
- Arrays → Console output: prints
- Dates and time → Console output: prints
- Lambdas and predicates → Console output: prints
- Varargs → Console output: prints
- Inheritance → Console output: prints
- Polymorphism → Console output: prints
- Exceptions → Console output: prints
- Access across packages → Console output: prints
- Access across packages → Access modifiers: uses
- Access across packages → Varargs: calls
