# codeddharma/splizo architecture

> Architecture diagram of the GitHub repository codeddharma/splizo, 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/codeddharma/splizo
- Repository: https://github.com/codeddharma/splizo

## Overview

Splizo is a household-finance ledger: users maintain household reference data, enter or import transactions, review and categorize them, then inspect spending and loan balances. Household people, homes, accounts, categories, and rules give transactions context; invitations support shared access. The graph includes documented dashboard breakdowns and review behavior, plus the import and loan capabilities indicated by the tree. Source excerpts were limited, so action-to-storage and page-to-query wiring is shown only where supported; other links are omitted rather than inferred.

Main entry points: [`src/lib/prisma.ts`](https://github.com/codeddharma/splizo/blob/main/src/lib/prisma.ts) (Application database), [`src/lib/auth.ts`](https://github.com/codeddharma/splizo/blob/main/src/lib/auth.ts) (Credentials auth), [`src/lib/actions/transaction-actions.ts`](https://github.com/codeddharma/splizo/blob/main/src/lib/actions/transaction-actions.ts) (Transaction actions), [`src/app/(app)/import/page.tsx`](https://github.com/codeddharma/splizo/blob/main/src/app/(app)/import/page.tsx) (Import transactions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access &amp; household"]
  node_signin["Sign in<br/>[page.tsx]"]
  node_auth["Credentials auth<br/>[auth.ts]"]
  node_session["Session guard<br/>[session.ts]"]
  node_household["People &amp; invites<br/>[page.tsx]"]
  node_references["Accounts &amp; categories<br/>[page.tsx]"]
  node_refactions["Reference actions"]
end

subgraph group_ledger["Ledger &amp; imports"]
  node_transactionui["Transaction ledger<br/>[page.tsx]"]
  node_transactionactions["Transaction actions"]
  node_shares["Share resolution<br/>[resolve-shares.ts]"]
  node_importui["Import transactions<br/>[page.tsx]"]
  node_csv["CSV parsing<br/>[parse-bank-csv.ts]"]
  node_pdf["PDF statements"]
  node_importactions["Import actions<br/>[import-actions.ts]"]
  node_pdfactions["PDF import actions"]
  node_review["Review transactions<br/>[page.tsx]"]
  node_categorization["Rule categorization"]
end

subgraph group_insights["Finance insights"]
  node_dashboard["Dashboard<br/>[page.tsx]"]
  node_dashboardqueries["Dashboard queries<br/>[dashboard.ts]"]
  node_loans["Loans ledger<br/>[page.tsx]"]
  node_loanactions["Loan actions<br/>[loan-actions.ts]"]
end

subgraph group_persistence["Persistence"]
  node_db[("Application database<br/>[prisma.ts]")]
end

node_user(("Household user"))

node_user -->|"signs in"| node_signin
node_signin -->|"submits credentials"| node_auth
node_auth -->|"looks up user"| node_db
node_auth -->|"creates session"| node_session
node_user -->|"manages members"| node_household
node_user -->|"configures ledger"| node_references
node_references -->|"submits changes"| node_refactions
node_refactions -->|"writes reference data"| node_db
node_user -->|"records transactions"| node_transactionui
node_transactionui -->|"submits transaction"| node_transactionactions
node_transactionactions -->|"resolves shares"| node_shares
node_transactionactions -->|"writes transactions"| node_db
node_user -->|"uploads statement"| node_importui
node_importui -->|"submits CSV"| node_importactions
node_importactions -->|"parses rows"| node_csv
node_importactions -->|"imports transactions"| node_db
node_importui -->|"submits PDF"| node_pdfactions
node_pdfactions -->|"extracts and parses"| node_pdf
node_pdfactions -->|"imports transactions"| node_db
node_user -->|"reviews uncertain items"| node_review
node_review -->|"categorizes transactions"| node_categorization
node_categorization -->|"reads rules"| node_db
node_user -->|"views finances"| node_dashboard
node_dashboard -->|"requests summaries"| node_dashboardqueries
node_dashboardqueries -->|"reads transactions"| node_db
node_user -->|"tracks lending"| node_loans
node_loans -->|"manages loans"| node_loanactions
node_loanactions -->|"writes loan data"| node_db

click node_signin "https://github.com/codeddharma/splizo/blob/main/src/app/login/page.tsx"
click node_auth "https://github.com/codeddharma/splizo/blob/main/src/lib/auth.ts"
click node_session "https://github.com/codeddharma/splizo/blob/main/src/lib/session.ts"
click node_household "https://github.com/codeddharma/splizo/blob/main/src/app/(app)/people/page.tsx"
click node_references "https://github.com/codeddharma/splizo/blob/main/src/app/(app)/accounts/page.tsx"
click node_refactions "https://github.com/codeddharma/splizo/blob/main/src/lib/actions/reference-data-actions.ts"
click node_transactionui "https://github.com/codeddharma/splizo/blob/main/src/app/(app)/transactions/page.tsx"
click node_transactionactions "https://github.com/codeddharma/splizo/blob/main/src/lib/actions/transaction-actions.ts"
click node_shares "https://github.com/codeddharma/splizo/blob/main/src/lib/transactions/resolve-shares.ts"
click node_importui "https://github.com/codeddharma/splizo/blob/main/src/app/(app)/import/page.tsx"
click node_csv "https://github.com/codeddharma/splizo/blob/main/src/lib/csv/parse-bank-csv.ts"
click node_pdf "https://github.com/codeddharma/splizo/tree/main/src/lib/pdf-import"
click node_importactions "https://github.com/codeddharma/splizo/blob/main/src/lib/actions/import-actions.ts"
click node_pdfactions "https://github.com/codeddharma/splizo/blob/main/src/lib/actions/pdf-import-actions.ts"
click node_review "https://github.com/codeddharma/splizo/blob/main/src/app/(app)/transactions/review/page.tsx"
click node_categorization "https://github.com/codeddharma/splizo/blob/main/src/lib/categorization/apply-categorization.ts"
click node_dashboard "https://github.com/codeddharma/splizo/blob/main/src/app/(app)/dashboard/page.tsx"
click node_dashboardqueries "https://github.com/codeddharma/splizo/blob/main/src/lib/queries/dashboard.ts"
click node_loans "https://github.com/codeddharma/splizo/blob/main/src/app/(app)/loans/page.tsx"
click node_loanactions "https://github.com/codeddharma/splizo/blob/main/src/lib/actions/loan-actions.ts"
click node_db "https://github.com/codeddharma/splizo/blob/main/src/lib/prisma.ts"

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_signin,node_auth,node_session,node_household,node_references,node_refactions,node_user toneBlue
class node_transactionui,node_transactionactions,node_shares,node_importui,node_csv,node_pdf,node_importactions,node_pdfactions,node_review,node_categorization toneAmber
class node_dashboard,node_dashboardqueries,node_loans,node_loanactions toneMint
class node_db toneRose
```

## Components

### Access & household

- [Sign in](https://github.com/codeddharma/splizo/blob/main/src/app/login/page.tsx): `src/app/login/page.tsx`
- [Credentials auth](https://github.com/codeddharma/splizo/blob/main/src/lib/auth.ts): `src/lib/auth.ts`
- [Session guard](https://github.com/codeddharma/splizo/blob/main/src/lib/session.ts): `src/lib/session.ts`
- [People & invites](https://github.com/codeddharma/splizo/blob/main/src/app/(app)/people/page.tsx): `src/app/(app)/people/page.tsx`
- [Accounts & categories](https://github.com/codeddharma/splizo/blob/main/src/app/(app)/accounts/page.tsx): `src/app/(app)/accounts/page.tsx`
- [Reference actions](https://github.com/codeddharma/splizo/blob/main/src/lib/actions/reference-data-actions.ts): `src/lib/actions/reference-data-actions.ts`

### Ledger & imports

- [Transaction ledger](https://github.com/codeddharma/splizo/blob/main/src/app/(app)/transactions/page.tsx): `src/app/(app)/transactions/page.tsx`
- [Transaction actions](https://github.com/codeddharma/splizo/blob/main/src/lib/actions/transaction-actions.ts): `src/lib/actions/transaction-actions.ts`
- [Share resolution](https://github.com/codeddharma/splizo/blob/main/src/lib/transactions/resolve-shares.ts): `src/lib/transactions/resolve-shares.ts`
- [Import transactions](https://github.com/codeddharma/splizo/blob/main/src/app/(app)/import/page.tsx): `src/app/(app)/import/page.tsx`
- [CSV parsing](https://github.com/codeddharma/splizo/blob/main/src/lib/csv/parse-bank-csv.ts): `src/lib/csv/parse-bank-csv.ts`
- [PDF statements](https://github.com/codeddharma/splizo/tree/main/src/lib/pdf-import): `src/lib/pdf-import`
- [Import actions](https://github.com/codeddharma/splizo/blob/main/src/lib/actions/import-actions.ts): `src/lib/actions/import-actions.ts`
- [PDF import actions](https://github.com/codeddharma/splizo/blob/main/src/lib/actions/pdf-import-actions.ts): `src/lib/actions/pdf-import-actions.ts`
- [Review transactions](https://github.com/codeddharma/splizo/blob/main/src/app/(app)/transactions/review/page.tsx): `src/app/(app)/transactions/review/page.tsx`
- [Rule categorization](https://github.com/codeddharma/splizo/blob/main/src/lib/categorization/apply-categorization.ts): `src/lib/categorization/apply-categorization.ts`

### Finance insights

- [Dashboard](https://github.com/codeddharma/splizo/blob/main/src/app/(app)/dashboard/page.tsx): `src/app/(app)/dashboard/page.tsx`
- [Dashboard queries](https://github.com/codeddharma/splizo/blob/main/src/lib/queries/dashboard.ts): `src/lib/queries/dashboard.ts`
- [Loans ledger](https://github.com/codeddharma/splizo/blob/main/src/app/(app)/loans/page.tsx): `src/app/(app)/loans/page.tsx`
- [Loan actions](https://github.com/codeddharma/splizo/blob/main/src/lib/actions/loan-actions.ts): `src/lib/actions/loan-actions.ts`

### Persistence

- [Application database](https://github.com/codeddharma/splizo/blob/main/src/lib/prisma.ts): `src/lib/prisma.ts`

### Other components

- **Household user**

## Connections

- Household user → Sign in: signs in
- Sign in → Credentials auth: submits credentials
- Credentials auth → Application database: looks up user
- Credentials auth → Session guard: creates session
- Household user → People & invites: manages members
- Household user → Accounts & categories: configures ledger
- Accounts & categories → Reference actions: submits changes
- Reference actions → Application database: writes reference data
- Household user → Transaction ledger: records transactions
- Transaction ledger → Transaction actions: submits transaction
- Transaction actions → Share resolution: resolves shares
- Transaction actions → Application database: writes transactions
- Household user → Import transactions: uploads statement
- Import transactions → Import actions: submits CSV
- Import actions → CSV parsing: parses rows
- Import actions → Application database: imports transactions
- Import transactions → PDF import actions: submits PDF
- PDF import actions → PDF statements: extracts and parses
- PDF import actions → Application database: imports transactions
- Household user → Review transactions: reviews uncertain items
- Review transactions → Rule categorization: categorizes transactions
- Rule categorization → Application database: reads rules
- Household user → Dashboard: views finances
- Dashboard → Dashboard queries: requests summaries
- Dashboard queries → Application database: reads transactions
- Household user → Loans ledger: tracks lending
- Loans ledger → Loan actions: manages loans
- Loan actions → Application database: writes loan data
