# rlg0013/memory-driven-personal-financial-tracker-hackathon- architecture

> Architecture diagram of the GitHub repository rlg0013/memory-driven-personal-financial-tracker-hackathon-, 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/rlg0013/memory-driven-personal-financial-tracker-hackathon-
- Repository: https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-

## Overview

HisaabAI is a memory-driven personal-finance assistant: SMS alerts and user goals/events become structured financial memories, which support reports, pattern/overspending analysis, savings guidance, and conversational answers. The sampled backend shows the API dispatching these workflows to parsing, memory, and agent modules; the README documents Mem-Brain’s graph role. The frontend excerpt confirms dashboard requests and graph exploration, but React page/component files were unsampled, so the graph uses the existing frontend entry point and omits uncertain UI wiring.

Main entry points: [`backend/main.py`](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py) (FastAPI service), [`backend/memory_graph.py`](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/memory_graph.py) (Memory graph), [`backend/agent.py`](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/agent.py) (Finance agent), [`backend/sms_parser.py`](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/sms_parser.py) (SMS parser)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["User interface"]
  node_web["Finance dashboard<br/>[app.js]"]
  node_graph_view["Memory graph explorer<br/>[app.js]"]
end

subgraph group_api["API workflows"]
  node_api["FastAPI service<br/>[main.py]"]
  node_ingestion["Transaction ingestion<br/>[main.py]"]
  node_goals["Goals and events<br/>[main.py]"]
  node_report["Monthly reporting<br/>[main.py]"]
  node_patterns["Pattern analysis<br/>[main.py]"]
  node_overspending["Overspending analysis<br/>[main.py]"]
  node_planning["Savings planning<br/>[main.py]"]
  node_reasoning["Goal reasoning<br/>[main.py]"]
  node_chat["Finance chat<br/>[main.py]"]
  node_search["Memory search<br/>[main.py]"]
end

subgraph group_intelligence["Finance intelligence"]
  node_sms["SMS parser<br/>[sms_parser.py]"]
  node_agent["Finance agent<br/>[agent.py]"]
end

subgraph group_memory["Memory and providers"]
  node_memory[("Memory graph<br/>[memory_graph.py]")]
  node_membrain[("Mem-Brain")]
  node_llm{{"OpenRouter model"}}
  node_claude{{"Claude parser model"}}
end

node_person(("Finance user"))

node_person -->|"uses"| node_web
node_web -->|"HTTP requests"| node_api
node_api -->|"dispatches"| node_ingestion
node_ingestion -->|"parses messages"| node_sms
node_ingestion -->|"stores transactions"| node_memory
node_sms -->|"looks up categories"| node_memory
node_sms -.->|"enriches as needed"| node_claude
node_memory -->|"reads and writes"| node_membrain
node_api -->|"dispatches"| node_goals
node_goals -->|"stores goals/events"| node_memory
node_api -->|"dispatches"| node_report
node_report -->|"generates report"| node_agent
node_api -->|"dispatches"| node_patterns
node_patterns -->|"detects and explains"| node_agent
node_api -->|"dispatches"| node_overspending
node_overspending -->|"analyzes spending"| node_memory
node_api -->|"dispatches"| node_planning
node_planning -->|"creates plan"| node_agent
node_api -->|"dispatches"| node_reasoning
node_reasoning -->|"retrieves goal context"| node_memory
node_api -->|"dispatches"| node_chat
node_chat -->|"asks question"| node_agent
node_agent -->|"retrieves context"| node_memory
node_agent -->|"requests answer"| node_llm
node_api -->|"serves graph data"| node_graph_view
node_graph_view -->|"requests graph"| node_api
node_api -->|"dispatches"| node_search
node_search -->|"searches memories"| node_memory

click node_web "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/frontend/app.js"
click node_api "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py"
click node_sms "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/sms_parser.py"
click node_agent "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/agent.py"
click node_memory "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/memory_graph.py"
click node_ingestion "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py"
click node_goals "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py"
click node_report "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py"
click node_patterns "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py"
click node_overspending "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py"
click node_planning "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py"
click node_reasoning "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py"
click node_chat "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py"
click node_graph_view "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/frontend/app.js"
click node_search "https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.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_web,node_graph_view,node_person toneBlue
class node_api,node_ingestion,node_goals,node_report,node_patterns,node_overspending,node_planning,node_reasoning,node_chat,node_search toneAmber
class node_sms,node_agent toneMint
class node_memory,node_membrain,node_llm,node_claude toneRose
```

## Components

### User interface

- [Finance dashboard](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/frontend/app.js): `frontend/app.js`
- [Memory graph explorer](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/frontend/app.js): `frontend/app.js`

### API workflows

- [FastAPI service](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`
- [Transaction ingestion](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`
- [Goals and events](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`
- [Monthly reporting](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`
- [Pattern analysis](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`
- [Overspending analysis](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`
- [Savings planning](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`
- [Goal reasoning](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`
- [Finance chat](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`
- [Memory search](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/main.py): `backend/main.py`

### Finance intelligence

- [SMS parser](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/sms_parser.py): `backend/sms_parser.py`
- [Finance agent](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/agent.py): `backend/agent.py`

### Memory and providers

- [Memory graph](https://github.com/rlg0013/memory-driven-personal-financial-tracker-hackathon-/blob/main/backend/memory_graph.py): `backend/memory_graph.py`
- **Mem-Brain**
- **OpenRouter model**
- **Claude parser model**

### Other components

- **Finance user**

## Connections

- Finance user → Finance dashboard: uses
- Finance dashboard → FastAPI service: HTTP requests
- FastAPI service → Transaction ingestion: dispatches
- Transaction ingestion → SMS parser: parses messages
- Transaction ingestion → Memory graph: stores transactions
- SMS parser → Memory graph: looks up categories
- SMS parser → Claude parser model: enriches as needed
- Memory graph → Mem-Brain: reads and writes
- FastAPI service → Goals and events: dispatches
- Goals and events → Memory graph: stores goals/events
- FastAPI service → Monthly reporting: dispatches
- Monthly reporting → Finance agent: generates report
- FastAPI service → Pattern analysis: dispatches
- Pattern analysis → Finance agent: detects and explains
- FastAPI service → Overspending analysis: dispatches
- Overspending analysis → Memory graph: analyzes spending
- FastAPI service → Savings planning: dispatches
- Savings planning → Finance agent: creates plan
- FastAPI service → Goal reasoning: dispatches
- Goal reasoning → Memory graph: retrieves goal context
- FastAPI service → Finance chat: dispatches
- Finance chat → Finance agent: asks question
- Finance agent → Memory graph: retrieves context
- Finance agent → OpenRouter model: requests answer
- FastAPI service → Memory graph explorer: serves graph data
- Memory graph explorer → FastAPI service: requests graph
- FastAPI service → Memory search: dispatches
- Memory search → Memory graph: searches memories
