# modood/administrative-divisions-of-china architecture

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

- Interactive diagram: https://gitdiagram.com/modood/administrative-divisions-of-china
- Repository: https://github.com/modood/administrative-divisions-of-china

## Overview

This repository distributes China’s five-level administrative-division data and provides a workflow to refresh it from the National Bureau of Statistics, store it in SQLite, and format hierarchical selector datasets. Consumers load the packaged JSON exports; the README also documents CSV and SQLite downloads. The sampled source supports the fetch and JSON-formatting paths; CSV generation details are not shown, so those outputs are represented without inferred processing links.

Main entry points: [`lib/sqlite.js`](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/sqlite.js) (Division models), [`lib/build.js`](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/build.js) (Format entry), [`lib/worker.js`](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/worker.js) (Fetch orchestration), [`lib/export.js`](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/export.js) (Export interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_acquisition["Data acquisition"]
  node_fetch_entry["Fetch entry<br/>[fetch.js]"]
  node_worker["Fetch orchestration<br/>[worker.js]"]
  node_crawler["Page crawler<br/>[crawler.js]"]
end

subgraph group_storage["Relational store"]
  node_sqlite_models["Division models<br/>[sqlite.js]"]
  node_sqlite_store[("SQLite dataset<br/>[data.sqlite]")]
end

subgraph group_exports["Published data"]
  node_build_entry["Format entry<br/>[build.js]"]
  node_formatter["Hierarchy formatter<br/>[format.js]"]
  node_tier_exports["Five-tier files"]
  node_linked_exports["Linked selectors"]
  node_csv_exports["CSV tables"]
end

subgraph group_access["Consumer access"]
  node_api["Export interface<br/>[export.js]"]
end

node_consumer(("Package consumer"))
node_stats_site{{"Statistics site"}}

node_consumer -->|"loads"| node_api
node_api -->|"loads JSON"| node_tier_exports
node_api -->|"loads JSON"| node_linked_exports
node_fetch_entry -->|"initializes"| node_sqlite_models
node_fetch_entry -->|"runs fetch"| node_worker
node_worker -->|"requests divisions"| node_crawler
node_crawler -->|"fetches pages"| node_stats_site
node_worker -->|"reads and writes"| node_sqlite_models
node_sqlite_models -->|"persists records"| node_sqlite_store
node_build_entry -->|"initializes"| node_sqlite_models
node_build_entry -->|"formats tiers"| node_formatter
node_formatter -->|"queries hierarchy"| node_sqlite_models
node_build_entry -->|"writes JSON"| node_linked_exports

click node_fetch_entry "https://github.com/modood/administrative-divisions-of-china/blob/master/lib/fetch.js"
click node_worker "https://github.com/modood/administrative-divisions-of-china/blob/master/lib/worker.js"
click node_crawler "https://github.com/modood/administrative-divisions-of-china/blob/master/lib/crawler.js"
click node_sqlite_models "https://github.com/modood/administrative-divisions-of-china/blob/master/lib/sqlite.js"
click node_sqlite_store "https://github.com/modood/administrative-divisions-of-china/blob/master/dist/data.sqlite"
click node_build_entry "https://github.com/modood/administrative-divisions-of-china/blob/master/lib/build.js"
click node_formatter "https://github.com/modood/administrative-divisions-of-china/blob/master/lib/format.js"
click node_tier_exports "https://github.com/modood/administrative-divisions-of-china/tree/master/dist"
click node_linked_exports "https://github.com/modood/administrative-divisions-of-china/tree/master/dist"
click node_csv_exports "https://github.com/modood/administrative-divisions-of-china/tree/master/dist"
click node_api "https://github.com/modood/administrative-divisions-of-china/blob/master/lib/export.js"

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_fetch_entry,node_worker,node_crawler toneBlue
class node_sqlite_models,node_sqlite_store toneAmber
class node_build_entry,node_formatter,node_tier_exports,node_linked_exports,node_csv_exports toneMint
class node_api toneRose
class node_consumer,node_stats_site toneIndigo
```

## Components

### Data acquisition

- [Fetch entry](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/fetch.js): `lib/fetch.js`
- [Fetch orchestration](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/worker.js): `lib/worker.js`
- [Page crawler](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/crawler.js): `lib/crawler.js`

### Relational store

- [Division models](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/sqlite.js): `lib/sqlite.js`
- [SQLite dataset](https://github.com/modood/administrative-divisions-of-china/blob/master/dist/data.sqlite): `dist/data.sqlite`

### Published data

- [Format entry](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/build.js): `lib/build.js`
- [Hierarchy formatter](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/format.js): `lib/format.js`
- [Five-tier files](https://github.com/modood/administrative-divisions-of-china/tree/master/dist): `dist`
- [Linked selectors](https://github.com/modood/administrative-divisions-of-china/tree/master/dist): `dist`
- [CSV tables](https://github.com/modood/administrative-divisions-of-china/tree/master/dist): `dist`

### Consumer access

- [Export interface](https://github.com/modood/administrative-divisions-of-china/blob/master/lib/export.js): `lib/export.js`

### Other components

- **Package consumer**
- **Statistics site**

## Connections

- Package consumer → Export interface: loads
- Export interface → Five-tier files: loads JSON
- Export interface → Linked selectors: loads JSON
- Fetch entry → Division models: initializes
- Fetch entry → Fetch orchestration: runs fetch
- Fetch orchestration → Page crawler: requests divisions
- Page crawler → Statistics site: fetches pages
- Fetch orchestration → Division models: reads and writes
- Division models → SQLite dataset: persists records
- Format entry → Division models: initializes
- Format entry → Hierarchy formatter: formats tiers
- Hierarchy formatter → Division models: queries hierarchy
- Format entry → Linked selectors: writes JSON
