# fikirtegt/splitterbuddy architecture

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

## Overview

Splitterbuddy appears to be a Flutter app for shared-expense workspaces, with features for recording and splitting expenses, tracking balances and settlements, and reviewing spending. The tree identifies the main screens, controllers, repositories, and calculation services, but the README is only the Flutter starter text and the sampled source contains platform launchers rather than Dart feature code. The graph therefore maps the product capabilities without asserting unverified calls or data flow between them.

Main entry points: [`lib/main.dart`](https://github.com/fikirtegt/splitterbuddy/blob/main/lib/main.dart) (App entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App and workspace"]
  node_entry["App entry<br/>[main.dart]"]
  node_auth["Authentication"]
  node_workspace["Workspace management"]
  node_dashboard["Dashboard"]
end

subgraph group_expenses["Expenses and splitting"]
  node_expense_ui["Expense management"]
  node_expense_data[("Expense records")]
  node_receipt["Receipt handling"]
  node_split["Expense splitting<br/>[split_engine.dart]"]
end

subgraph group_finance["Financial tools"]
  node_balance["Balance calculation"]
  node_settlement["Settlements"]
  node_budgets["Budgets"]
  node_recurring["Recurring expenses"]
  node_analytics["Spending analytics"]
end

subgraph group_support["Activity and support"]
  node_export["Data export"]
  node_history["Activity history"]
  node_notifications["Notifications"]
end

node_user(("App user"))

node_user -->|"opens"| node_entry

click node_entry "https://github.com/fikirtegt/splitterbuddy/blob/main/lib/main.dart"
click node_auth "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/authentication/presentation"
click node_workspace "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/workspace/presentation"
click node_dashboard "https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/dashboard/presentation/screens/dashboard_screen.dart"
click node_expense_ui "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/expenses/presentation"
click node_expense_data "https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/expenses/data/repositories/expense_repository.dart"
click node_receipt "https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/expenses/services/receipt_service.dart"
click node_split "https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/balance/services/split_engine.dart"
click node_balance "https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/balance/services/balance_engine.dart"
click node_settlement "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/settlement"
click node_budgets "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/budgets"
click node_recurring "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/recurring"
click node_analytics "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/analytics"
click node_export "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/export"
click node_history "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/history"
click node_notifications "https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/notifications"

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_entry,node_auth,node_workspace,node_dashboard,node_user toneBlue
class node_expense_ui,node_expense_data,node_receipt,node_split toneAmber
class node_balance,node_settlement,node_budgets,node_recurring,node_analytics toneMint
class node_export,node_history,node_notifications toneRose
```

## Components

### App and workspace

- [App entry](https://github.com/fikirtegt/splitterbuddy/blob/main/lib/main.dart): `lib/main.dart`
- [Authentication](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/authentication/presentation): `lib/features/authentication/presentation`
- [Workspace management](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/workspace/presentation): `lib/features/workspace/presentation`
- [Dashboard](https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/dashboard/presentation/screens/dashboard_screen.dart): `lib/features/dashboard/presentation/screens/dashboard_screen.dart`

### Expenses and splitting

- [Expense management](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/expenses/presentation): `lib/features/expenses/presentation`
- [Expense records](https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/expenses/data/repositories/expense_repository.dart): `lib/features/expenses/data/repositories/expense_repository.dart`
- [Receipt handling](https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/expenses/services/receipt_service.dart): `lib/features/expenses/services/receipt_service.dart`
- [Expense splitting](https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/balance/services/split_engine.dart): `lib/features/balance/services/split_engine.dart`

### Financial tools

- [Balance calculation](https://github.com/fikirtegt/splitterbuddy/blob/main/lib/features/balance/services/balance_engine.dart): `lib/features/balance/services/balance_engine.dart`
- [Settlements](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/settlement): `lib/features/settlement`
- [Budgets](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/budgets): `lib/features/budgets`
- [Recurring expenses](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/recurring): `lib/features/recurring`
- [Spending analytics](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/analytics): `lib/features/analytics`

### Activity and support

- [Data export](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/export): `lib/features/export`
- [Activity history](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/history): `lib/features/history`
- [Notifications](https://github.com/fikirtegt/splitterbuddy/tree/main/lib/features/notifications): `lib/features/notifications`

### Other components

- **App user**

## Connections

- App user → App entry: opens
