# nicolascent03-cpu/wdc-data-analysis-project-seminar architecture

> Architecture diagram of the GitHub repository nicolascent03-cpu/wdc-data-analysis-project-seminar, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nicolascent03-cpu/wdc-data-analysis-project-seminar
- Repository: https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar

## Overview

This is a research-data project examining how democracy changes during and after armed conflict, including the role of arms imports. Its documented workflow prepares UCDP/PRIO, V-Dem and SIPRI data, merges them for analysis and charting, then presents results in a Streamlit app. The app excerpt currently loads cleaned CSVs and sets up page selection; its chart-panel files are mostly documented stubs. Notebook relationships below follow the README’s stated order and responsibilities, not inspected notebook code.

Main entry points: [`app/streamlit_app.py`](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/streamlit_app.py) (Streamlit pages), [`notebooks/07_charts.ipynb`](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/07_charts.ipynb) (Chart development), [`notebooks/05_merge.ipynb`](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/05_merge.ipynb) (Panel merge), [`app/panels_arms.py`](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/panels_arms.py) (Arms charts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_prep["Data preparation"]
  node_setup["Setup check"]
  node_crosswalk["Country crosswalk<br/>[01_crosswalk.ipynb]"]
  node_ucdp["Conflict preparation<br/>[02_ucdp.ipynb]"]
  node_vdem["Democracy preparation<br/>[03_vdem.ipynb]"]
  node_sipri["Arms preparation<br/>[04_sipri.ipynb]"]
  node_merge["Panel merge<br/>[05_merge.ipynb]"]
end

subgraph group_data["Research data"]
  node_panel[("Country-year panel<br/>[panel.csv]")]
  node_events[("Event-time data<br/>[event_time.csv]")]
  node_clean_data[("Cleaned CSV inputs")]
end

subgraph group_analysis["Analysis and charts"]
  node_analysis_nb["Research analysis<br/>[06_analysis.ipynb]"]
  node_charts_nb["Chart development<br/>[07_charts.ipynb]"]
  node_conflict_charts["Regime and conflict charts<br/>[panels_conflict.py]"]
  node_arms_charts["Arms charts<br/>[panels_arms.py]"]
  node_result_charts["Democracy and result charts<br/>[panels_analysis.py]"]
end

subgraph group_app["Streamlit app"]
  node_app_entry["Streamlit pages<br/>[streamlit_app.py]"]
  node_country_view["Country timelines<br/>[streamlit_app.py]"]
  node_overview["Overview page<br/>[streamlit_app.py]"]
  node_analysis_view["Analysis page<br/>[streamlit_app.py]"]
end

node_researcher(("Researcher"))

node_researcher -->|"checks setup"| node_setup
node_setup -->|"precedes"| node_crosswalk
node_crosswalk -->|"precedes"| node_ucdp
node_ucdp -->|"precedes"| node_vdem
node_vdem -->|"precedes"| node_sipri
node_sipri -->|"precedes"| node_merge
node_merge -->|"writes"| node_panel
node_merge -->|"writes"| node_events
node_analysis_nb -.->|"analyzes"| node_events
node_analysis_nb -->|"precedes"| node_charts_nb
node_researcher -->|"opens"| node_app_entry
node_app_entry -->|"reads CSVs"| node_clean_data
node_app_entry -->|"imports"| node_conflict_charts
node_app_entry -.->|"routes by page"| node_country_view
node_app_entry -.->|"routes by page"| node_overview
node_app_entry -.->|"routes by page"| node_analysis_view
node_charts_nb -.->|"informs functions"| node_conflict_charts
node_charts_nb -.->|"informs functions"| node_arms_charts
node_charts_nb -.->|"informs functions"| node_result_charts
node_country_view -.->|"uses charts"| node_arms_charts
node_country_view -.->|"uses charts"| node_result_charts
node_overview -.->|"uses trends"| node_arms_charts
node_analysis_view -.->|"uses result chart"| node_result_charts

click node_setup "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/00_setup_check.ipynb"
click node_crosswalk "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/01_crosswalk.ipynb"
click node_ucdp "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/02_ucdp.ipynb"
click node_vdem "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/03_vdem.ipynb"
click node_sipri "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/04_sipri.ipynb"
click node_merge "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/05_merge.ipynb"
click node_panel "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/data/clean/panel.csv"
click node_events "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/data/clean/event_time.csv"
click node_analysis_nb "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/06_analysis.ipynb"
click node_charts_nb "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/07_charts.ipynb"
click node_conflict_charts "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/panels_conflict.py"
click node_arms_charts "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/panels_arms.py"
click node_result_charts "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/panels_analysis.py"
click node_app_entry "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/streamlit_app.py"
click node_clean_data "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/tree/main/data/clean"
click node_country_view "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/streamlit_app.py"
click node_overview "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/streamlit_app.py"
click node_analysis_view "https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/streamlit_app.py"

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_setup,node_crosswalk,node_ucdp,node_vdem,node_sipri,node_merge toneBlue
class node_panel,node_events,node_clean_data toneAmber
class node_analysis_nb,node_charts_nb,node_conflict_charts,node_arms_charts,node_result_charts toneMint
class node_app_entry,node_country_view,node_overview,node_analysis_view toneRose
class node_researcher toneIndigo
```

## Components

### Data preparation

- [Setup check](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/00_setup_check.ipynb): `notebooks/00_setup_check.ipynb`
- [Country crosswalk](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/01_crosswalk.ipynb): `notebooks/01_crosswalk.ipynb`
- [Conflict preparation](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/02_ucdp.ipynb): `notebooks/02_ucdp.ipynb`
- [Democracy preparation](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/03_vdem.ipynb): `notebooks/03_vdem.ipynb`
- [Arms preparation](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/04_sipri.ipynb): `notebooks/04_sipri.ipynb`
- [Panel merge](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/05_merge.ipynb): `notebooks/05_merge.ipynb`

### Research data

- [Country-year panel](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/data/clean/panel.csv): `data/clean/panel.csv`
- [Event-time data](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/data/clean/event_time.csv): `data/clean/event_time.csv`
- [Cleaned CSV inputs](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/tree/main/data/clean): `data/clean`

### Analysis and charts

- [Research analysis](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/06_analysis.ipynb): `notebooks/06_analysis.ipynb`
- [Chart development](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/notebooks/07_charts.ipynb): `notebooks/07_charts.ipynb`
- [Regime and conflict charts](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/panels_conflict.py): `app/panels_conflict.py`
- [Arms charts](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/panels_arms.py): `app/panels_arms.py`
- [Democracy and result charts](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/panels_analysis.py): `app/panels_analysis.py`

### Streamlit app

- [Streamlit pages](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/streamlit_app.py): `app/streamlit_app.py`
- [Country timelines](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/streamlit_app.py): `app/streamlit_app.py`
- [Overview page](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/streamlit_app.py): `app/streamlit_app.py`
- [Analysis page](https://github.com/nicolascent03-cpu/wdc-data-analysis-project-seminar/blob/main/app/streamlit_app.py): `app/streamlit_app.py`

### Other components

- **Researcher**

## Connections

- Researcher → Setup check: checks setup (evidence: `README.md`)
- Setup check → Country crosswalk: precedes (evidence: `README.md`)
- Country crosswalk → Conflict preparation: precedes (evidence: `README.md`)
- Conflict preparation → Democracy preparation: precedes (evidence: `README.md`)
- Democracy preparation → Arms preparation: precedes (evidence: `README.md`)
- Arms preparation → Panel merge: precedes (evidence: `README.md`)
- Panel merge → Country-year panel: writes (evidence: `README.md`)
- Panel merge → Event-time data: writes (evidence: `README.md`)
- Research analysis → Event-time data: analyzes (evidence: `README.md`)
- Research analysis → Chart development: precedes (evidence: `README.md`)
- Researcher → Streamlit pages: opens (evidence: `README.md`)
- Streamlit pages → Cleaned CSV inputs: reads CSVs (evidence: `app/streamlit_app.py`)
- Streamlit pages → Regime and conflict charts: imports (evidence: `app/streamlit_app.py`)
- Streamlit pages → Country timelines: routes by page (evidence: `app/streamlit_app.py`)
- Streamlit pages → Overview page: routes by page (evidence: `app/streamlit_app.py`)
- Streamlit pages → Analysis page: routes by page (evidence: `app/streamlit_app.py`)
- Chart development → Regime and conflict charts: informs functions
- Chart development → Arms charts: informs functions
- Chart development → Democracy and result charts: informs functions
- Country timelines → Arms charts: uses charts
- Country timelines → Democracy and result charts: uses charts
- Overview page → Arms charts: uses trends
- Analysis page → Democracy and result charts: uses result chart
