# badrutdin/family-budget architecture

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

- Interactive diagram: https://gitdiagram.com/badrutdin/family-budget
- Repository: https://github.com/badrutdin/family-budget

## Overview

This is a personal/family budget tracker: users maintain expense and budget data, regenerate the embedded dashboard and period journal, then review spending, limits, envelopes, and recommendations. The sampled Python code confirms the data-to-report generation path. The dashboard implementation was not sampled, and the README is empty, so its internal behavior and any additional integrations are not represented.

Main entry points: [`update_dashboard.py`](https://github.com/badrutdin/family-budget/blob/main/update_dashboard.py) (Update generator), [`journal_md.py`](https://github.com/badrutdin/family-budget/blob/main/journal_md.py) (Journal builder), [`data.json`](https://github.com/badrutdin/family-budget/blob/main/data.json) (Budget and expenses), [`dashboard.html`](https://github.com/badrutdin/family-budget/blob/main/dashboard.html) (Budget dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_budget["Budget data"]
  node_data[("Budget and expenses<br/>[data.json]")]
end

subgraph group_generation["Report generation"]
  node_generator["Update generator"]
  node_journal["Journal builder<br/>[journal_md.py]"]
end

subgraph group_outputs["User-facing views"]
  node_dashboard["Budget dashboard<br/>[dashboard.html]"]
  node_period["Period journal"]
  node_pages["Published dashboard page<br/>[index.html]"]
end

node_user(("Budget maintainer"))

node_user -->|"maintains"| node_data
node_user -->|"reviews"| node_dashboard
node_user -->|"reviews"| node_period
node_generator -->|"reads"| node_data
node_generator -->|"updates embedded data"| node_dashboard
node_generator -->|"calls"| node_journal
node_journal -->|"writes"| node_period
node_generator -->|"writes"| node_pages

click node_data "https://github.com/badrutdin/family-budget/blob/main/data.json"
click node_dashboard "https://github.com/badrutdin/family-budget/blob/main/dashboard.html"
click node_generator "https://github.com/badrutdin/family-budget/blob/main/update_dashboard.py"
click node_journal "https://github.com/badrutdin/family-budget/blob/main/journal_md.py"
click node_period "https://github.com/badrutdin/family-budget/blob/main/2026-09-25_2026-10-31.md"
click node_pages "https://github.com/badrutdin/family-budget/blob/main/docs/index.html"

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_data toneBlue
class node_generator,node_journal toneAmber
class node_dashboard,node_period,node_pages toneMint
class node_user toneIndigo
```

## Components

### Budget data

- [Budget and expenses](https://github.com/badrutdin/family-budget/blob/main/data.json): `data.json`

### Report generation

- [Update generator](https://github.com/badrutdin/family-budget/blob/main/update_dashboard.py): `update_dashboard.py`
- [Journal builder](https://github.com/badrutdin/family-budget/blob/main/journal_md.py): `journal_md.py`

### User-facing views

- [Budget dashboard](https://github.com/badrutdin/family-budget/blob/main/dashboard.html): `dashboard.html`
- [Period journal](https://github.com/badrutdin/family-budget/blob/main/2026-09-25_2026-10-31.md): `2026-09-25_2026-10-31.md`
- [Published dashboard page](https://github.com/badrutdin/family-budget/blob/main/docs/index.html): `docs/index.html`

### Other components

- **Budget maintainer**

## Connections

- Budget maintainer → Budget and expenses: maintains
- Budget maintainer → Budget dashboard: reviews
- Budget maintainer → Period journal: reviews
- Update generator → Budget and expenses: reads
- Update generator → Budget dashboard: updates embedded data
- Update generator → Journal builder: calls
- Journal builder → Period journal: writes
- Update generator → Published dashboard page: writes
