# calixte-williams/set08803_gw architecture

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

- Interactive diagram: https://gitdiagram.com/calixte-williams/set08803_gw
- Repository: https://github.com/calixte-williams/set08803_gw

## Overview

This is a Java console application for querying the World database and reporting population statistics. Its principal workflow is to start the application, connect to the database, run population queries, and produce reports. The README documents country, city, capital-city, population-distribution, and language-speaker reports; the sampled App.java excerpt shows SQL execution and result mapping, but not the full report/output flow. Report capability nodes therefore reflect documented features, not separately verified modules.

Main entry points: [`src/main/java/com/napier/sem/App.java`](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java) (Console application), [`src/main/java/com/napier/sem/Country.java`](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/Country.java) (Country records), [`src/main/java/com/napier/sem/City.java`](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/City.java) (City records), [`src/main/java/com/napier/sem/CapitalCity.java`](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/CapitalCity.java) (Capital records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Application runtime"]
  node_app["Console application<br/>[App.java]"]
end

subgraph group_reports["Population reports"]
  node_country_reports["Country reports<br/>[App.java]"]
  node_city_reports["City reports<br/>[App.java]"]
  node_capital_reports["Capital reports<br/>[App.java]"]
  node_population_reports["Population reports<br/>[App.java]"]
  node_language_reports["Language speakers<br/>[App.java]"]
end

subgraph group_data["Data layer"]
  node_country_model["Country records<br/>[Country.java]"]
  node_city_model["City records<br/>[City.java]"]
  node_capital_model["Capital records<br/>[CapitalCity.java]"]
  node_population_model["Population records<br/>[Population.java]"]
  node_language_model["Language records<br/>[Language.java]"]
end

subgraph group_worlddb["World data"]
  node_world_db[("World database<br/>[world.sql]")]
end

node_user(("Report user"))

node_user -->|"starts"| node_app
node_app -->|"queries"| node_world_db
node_app -->|"maps results"| node_country_model
node_app -->|"maps results"| node_city_model
node_app -->|"maps results"| node_capital_model
node_app -->|"uses records"| node_population_model
node_app -->|"uses records"| node_language_model
node_app -->|"provides"| node_country_reports
node_app -->|"provides"| node_city_reports
node_app -->|"provides"| node_capital_reports
node_app -->|"provides"| node_population_reports
node_app -->|"provides"| node_language_reports

click node_app "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java"
click node_country_reports "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java"
click node_city_reports "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java"
click node_capital_reports "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java"
click node_population_reports "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java"
click node_language_reports "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java"
click node_country_model "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/Country.java"
click node_city_model "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/City.java"
click node_capital_model "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/CapitalCity.java"
click node_population_model "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/Population.java"
click node_language_model "https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/Language.java"
click node_world_db "https://github.com/calixte-williams/set08803_gw/blob/master/db/world/world.sql"

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_app,node_user toneBlue
class node_country_reports,node_city_reports,node_capital_reports,node_population_reports,node_language_reports toneAmber
class node_country_model,node_city_model,node_capital_model,node_population_model,node_language_model toneMint
class node_world_db toneRose
```

## Components

### Application runtime

- [Console application](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java): `src/main/java/com/napier/sem/App.java`

### Population reports

- [Country reports](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java): `src/main/java/com/napier/sem/App.java`
- [City reports](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java): `src/main/java/com/napier/sem/App.java`
- [Capital reports](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java): `src/main/java/com/napier/sem/App.java`
- [Population reports](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java): `src/main/java/com/napier/sem/App.java`
- [Language speakers](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/App.java): `src/main/java/com/napier/sem/App.java`

### Data layer

- [Country records](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/Country.java): `src/main/java/com/napier/sem/Country.java`
- [City records](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/City.java): `src/main/java/com/napier/sem/City.java`
- [Capital records](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/CapitalCity.java): `src/main/java/com/napier/sem/CapitalCity.java`
- [Population records](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/Population.java): `src/main/java/com/napier/sem/Population.java`
- [Language records](https://github.com/calixte-williams/set08803_gw/blob/master/src/main/java/com/napier/sem/Language.java): `src/main/java/com/napier/sem/Language.java`

### World data

- [World database](https://github.com/calixte-williams/set08803_gw/blob/master/db/world/world.sql): `db/world/world.sql`

### Other components

- **Report user**

## Connections

- Report user → Console application: starts (evidence: `src/main/java/com/napier/sem/App.java`)
- Console application → World database: queries (evidence: `src/main/java/com/napier/sem/App.java`)
- Console application → Country records: maps results (evidence: `src/main/java/com/napier/sem/App.java`)
- Console application → City records: maps results (evidence: `src/main/java/com/napier/sem/App.java`)
- Console application → Capital records: maps results (evidence: `src/main/java/com/napier/sem/App.java`)
- Console application → Population records: uses records (evidence: `src/main/java/com/napier/sem/App.java`)
- Console application → Language records: uses records (evidence: `src/main/java/com/napier/sem/App.java`)
- Console application → Country reports: provides (evidence: `README.md`)
- Console application → City reports: provides (evidence: `README.md`)
- Console application → Capital reports: provides (evidence: `README.md`)
- Console application → Population reports: provides (evidence: `README.md`)
- Console application → Language speakers: provides (evidence: `README.md`)
