# harieswarreddygelli/python-mini-projects architecture

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

- Interactive diagram: https://gitdiagram.com/harieswarreddygelli/python-mini-projects
- Repository: https://github.com/harieswarreddygelli/python-mini-projects

## Overview

This repository is a collection of small interactive Python applications: a calculator, an expense tracker, and a typing-speed tester. The calculator accepts menu-driven operations and keeps session history. The expense tracker loads transactions, presents a dashboard, and supports adding, viewing, analyzing, and deleting transactions backed by JSON. The typing tester is documented, but its implementation was not sampled, so its internal flow is not shown.

Main entry points: [`ExpensesTracker/expensetracker.py`](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py) (Expense menu), [`caluclator.py`](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/caluclator.py) (Calculator menu), [`ExpensesTracker/expenses.json`](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expenses.json) (Transactions), [`Typing speed tester`](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/Typing%20speed%20tester) (Typing speed tester)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_calculator["Calculator"]
  node_calculator_app["Calculator menu<br/>[caluclator.py]"]
  node_math_ops["Math operations<br/>[caluclator.py]"]
  node_calc_history["Session history<br/>[caluclator.py]"]
end

subgraph group_expenses["Expense tracker"]
  node_expense_main["Expense menu<br/>[expensetracker.py]"]
  node_expense_file_ops["Data loading and saving<br/>[expensetracker.py]"]
  node_transactions[("Transactions<br/>[expenses.json]")]
  node_dashboard["Financial dashboard<br/>[expensetracker.py]"]
  node_summary["Income and balance<br/>[expensetracker.py]"]
  node_add_transaction["Add transaction<br/>[expensetracker.py]"]
  node_view_transactions["Transaction history<br/>[expensetracker.py]"]
  node_expense_analysis["Category analysis<br/>[expensetracker.py]"]
  node_delete_transaction["Delete transaction<br/>[expensetracker.py]"]
  node_rich_ui["Rich terminal UI"]
end

subgraph group_typing["Typing tester"]
  node_typing_app["Typing speed tester"]
end

node_user(("User"))

node_user -->|"uses"| node_calculator_app
node_calculator_app -->|"calls"| node_math_ops
node_calculator_app -->|"updates and displays"| node_calc_history
node_user -->|"uses"| node_expense_main
node_expense_main -->|"loads and saves"| node_expense_file_ops
node_expense_file_ops -->|"reads and writes"| node_transactions
node_expense_main -->|"renders"| node_dashboard
node_dashboard -->|"calculates"| node_summary
node_expense_main -->|"dispatches"| node_add_transaction
node_expense_main -->|"dispatches"| node_view_transactions
node_expense_main -->|"dispatches"| node_expense_analysis
node_expense_main -->|"dispatches"| node_delete_transaction
node_add_transaction -->|"saves"| node_expense_file_ops
node_delete_transaction -->|"displays"| node_view_transactions
node_delete_transaction -->|"saves"| node_expense_file_ops
node_expense_main -.->|"prompts and renders"| node_rich_ui
node_dashboard -.->|"renders"| node_rich_ui
node_add_transaction -.->|"prompts and renders"| node_rich_ui
node_view_transactions -.->|"renders"| node_rich_ui
node_expense_analysis -.->|"renders"| node_rich_ui
node_delete_transaction -.->|"prompts and renders"| node_rich_ui
node_user -->|"uses"| node_typing_app

click node_calculator_app "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/caluclator.py"
click node_math_ops "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/caluclator.py"
click node_calc_history "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/caluclator.py"
click node_typing_app "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/Typing%20speed%20tester"
click node_expense_main "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py"
click node_expense_file_ops "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py"
click node_transactions "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expenses.json"
click node_dashboard "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py"
click node_summary "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py"
click node_add_transaction "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py"
click node_view_transactions "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py"
click node_expense_analysis "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py"
click node_delete_transaction "https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.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_calculator_app,node_math_ops,node_calc_history,node_user toneBlue
class node_expense_main,node_expense_file_ops,node_transactions,node_dashboard,node_summary,node_add_transaction,node_view_transactions,node_expense_analysis,node_delete_transaction,node_rich_ui toneAmber
class node_typing_app toneMint
```

## Components

### Calculator

- [Calculator menu](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/caluclator.py): `caluclator.py`
- [Math operations](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/caluclator.py): `caluclator.py`
- [Session history](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/caluclator.py): `caluclator.py`

### Expense tracker

- [Expense menu](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py): `ExpensesTracker/expensetracker.py`
- [Data loading and saving](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py): `ExpensesTracker/expensetracker.py`
- [Transactions](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expenses.json): `ExpensesTracker/expenses.json`
- [Financial dashboard](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py): `ExpensesTracker/expensetracker.py`
- [Income and balance](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py): `ExpensesTracker/expensetracker.py`
- [Add transaction](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py): `ExpensesTracker/expensetracker.py`
- [Transaction history](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py): `ExpensesTracker/expensetracker.py`
- [Category analysis](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py): `ExpensesTracker/expensetracker.py`
- [Delete transaction](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/ExpensesTracker/expensetracker.py): `ExpensesTracker/expensetracker.py`
- **Rich terminal UI**

### Typing tester

- [Typing speed tester](https://github.com/harieswarreddygelli/python-mini-projects/blob/main/Typing%20speed%20tester): `Typing speed tester`

### Other components

- **User**

## Connections

- User → Calculator menu: uses
- Calculator menu → Math operations: calls
- Calculator menu → Session history: updates and displays
- User → Expense menu: uses
- Expense menu → Data loading and saving: loads and saves
- Data loading and saving → Transactions: reads and writes
- Expense menu → Financial dashboard: renders
- Financial dashboard → Income and balance: calculates
- Expense menu → Add transaction: dispatches
- Expense menu → Transaction history: dispatches
- Expense menu → Category analysis: dispatches
- Expense menu → Delete transaction: dispatches
- Add transaction → Data loading and saving: saves
- Delete transaction → Transaction history: displays
- Delete transaction → Data loading and saving: saves
- Expense menu → Rich terminal UI: prompts and renders
- Financial dashboard → Rich terminal UI: renders
- Add transaction → Rich terminal UI: prompts and renders
- Transaction history → Rich terminal UI: renders
- Category analysis → Rich terminal UI: renders
- Delete transaction → Rich terminal UI: prompts and renders
- User → Typing speed tester: uses
