# rhyneulan/s.e.t-system-student-expense-tracker architecture

> Architecture diagram of the GitHub repository rhyneulan/s.e.t-system-student-expense-tracker, 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/rhyneulan/s.e.t-system-student-expense-tracker
- Repository: https://github.com/rhyneulan/s.e.t-system-student-expense-tracker

## Overview

S.E.T. is a terminal-based student expense tracker. The user selects menu actions to inspect balance, add funds, record categorized expenses, review or clear transaction logs, adjust a spending limit, or reset spending. `main.py` coordinates these actions and updates persistent text-file state through the balance, warning, and logs modules; category selection is a separate step in expense entry. The graph reflects the supplied source: `expense.py` has no demonstrated connection to the application, and the README is empty.

Main entry points: [`main.py`](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/main.py) (Menu Controller), [`warning.py`](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/warning.py) (Spending Tracking), [`balance.py`](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/balance.py) (Balance Management), [`logs.py`](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/logs.py) (Transaction Logs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Menu Interface"]
  node_app["Menu Controller<br/>[main.py]"]
  node_console["Console Clearing<br/>[cleaner.py]"]
end

subgraph group_finance["Expense Tracking"]
  node_category["Category Selection<br/>[category.py]"]
  node_balance["Balance Management<br/>[balance.py]"]
  node_limits["Spending Tracking<br/>[warning.py]"]
end

subgraph group_records["Persistent Records"]
  node_logs["Transaction Logs<br/>[logs.py]"]
  node_moneyfile[("Balance File")]
  node_warningfile[("Limit File")]
  node_spendingfile[("Spending File")]
  node_logsfile[("Logs File")]
end

node_student(("Student"))
node_terminal["Terminal"]

node_student -->|"uses"| node_terminal
node_terminal -->|"menu input"| node_app
node_app -->|"displays results"| node_terminal
node_app -->|"clears screen"| node_console
node_app -->|"loads and saves balance"| node_balance
node_app -->|"chooses category"| node_category
node_app -->|"tracks spending and limit"| node_limits
node_app -->|"reads and records transactions"| node_logs
node_balance -->|"reads and writes"| node_moneyfile
node_limits -->|"reads and writes"| node_warningfile
node_limits -->|"reads and writes"| node_spendingfile
node_logs -->|"reads and writes"| node_logsfile

click node_app "https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/main.py"
click node_console "https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/cleaner.py"
click node_category "https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/category.py"
click node_balance "https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/balance.py"
click node_limits "https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/warning.py"
click node_logs "https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/logs.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_app,node_console toneBlue
class node_category,node_balance,node_limits toneAmber
class node_logs,node_moneyfile,node_warningfile,node_spendingfile,node_logsfile toneMint
class node_student,node_terminal toneIndigo
```

## Components

### Menu Interface

- [Menu Controller](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/main.py): `main.py`
- [Console Clearing](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/cleaner.py): `cleaner.py`

### Expense Tracking

- [Category Selection](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/category.py): `category.py`
- [Balance Management](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/balance.py): `balance.py`
- [Spending Tracking](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/warning.py): `warning.py`

### Persistent Records

- [Transaction Logs](https://github.com/rhyneulan/s.e.t-system-student-expense-tracker/blob/main/logs.py): `logs.py`
- **Balance File**
- **Limit File**
- **Spending File**
- **Logs File**

### Other components

- **Student**
- **Terminal**

## Connections

- Student → Terminal: uses
- Terminal → Menu Controller: menu input
- Menu Controller → Terminal: displays results
- Menu Controller → Console Clearing: clears screen
- Menu Controller → Balance Management: loads and saves balance
- Menu Controller → Category Selection: chooses category
- Menu Controller → Spending Tracking: tracks spending and limit
- Menu Controller → Transaction Logs: reads and records transactions
- Balance Management → Balance File: reads and writes
- Spending Tracking → Limit File: reads and writes
- Spending Tracking → Spending File: reads and writes
- Transaction Logs → Logs File: reads and writes
