# kartikey-44/aaroharth architecture

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

- Interactive diagram: https://gitdiagram.com/kartikey-44/aaroharth
- Repository: https://github.com/kartikey-44/aaroharth

## Overview

Aaroh Arth is an offline-first Android personal-finance app: users authenticate, enter transactions and manage accounts and budgets, then review financial and carbon analytics. The documented MVVM/repository design places Room at the center of local reads and writes, with optional Firestore backup/synchronization. The graph preserves the documented feature areas, but several are represented at directory level because their implementation excerpts were not provided; connections are limited to README statements and visible source references.

Main entry points: [`app/src/main/java/ind/finance/aaroharth/repositories`](https://github.com/kartikey-44/aaroharth/tree/main/app/src/main/java/ind/finance/aaroharth/repositories) (Repositories), [`app/src/main/java/ind/finance/aaroharth/MainActivity.kt`](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/MainActivity.kt) (App navigation), [`app/src/main/java/ind/finance/aaroharth/HomeFragement.kt`](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/HomeFragement.kt) (Home), [`app/src/main/java/ind/finance/aaroharth/authFragments/SignIn.kt`](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/authFragments/SignIn.kt) (Authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App entry"]
  node_main["App navigation<br/>[MainActivity.kt]"]
  node_home["Home<br/>[HomeFragement.kt]"]
  node_app_runtime["App services<br/>[MyApplication.kt]"]
end

subgraph group_finance["Finance management"]
  node_txn_action["Transaction entry"]
  node_accounts["Account management"]
  node_budgets["Budget management"]
  node_ai["AI assistant<br/>[AI_Activity.kt]"]
end

subgraph group_insights["Analytics and carbon"]
  node_dashboard["Analytics dashboard"]
  node_category["Categories"]
  node_carbon["Carbon insights<br/>[CarbonFragment.kt]"]
end

subgraph group_data["Data and sync"]
  node_repos["Repositories"]
  node_room[("Room database<br/>[App_Database.kt]")]
  node_daos["Room DAOs"]
  node_txn_model["Transaction model"]
  node_firestore[("Firestore")]
end

subgraph group_identity["Identity and settings"]
  node_auth["Authentication<br/>[SignIn.kt]"]
  node_signup["Sign-up<br/>[SignUp.kt]"]
  node_profile["Profile settings<br/>[ProfileFragment.kt]"]
  node_notifications["Notification history"]
end

node_user(("User"))

node_user -->|"opens"| node_main
node_main -->|"routes to"| node_home
node_main -->|"routes to"| node_dashboard
node_main -->|"routes to"| node_carbon
node_main -->|"routes to"| node_category
node_main -->|"starts"| node_auth
node_main -->|"starts"| node_txn_action
node_home -->|"opens"| node_txn_action
node_home -->|"opens"| node_accounts
node_home -->|"opens"| node_budgets
node_home -->|"opens"| node_ai
node_txn_action -.->|"uses"| node_repos
node_accounts -.->|"uses"| node_repos
node_budgets -.->|"uses"| node_repos
node_repos -->|"calls"| node_daos
node_room -->|"exposes"| node_daos
node_repos -->|"syncs optionally"| node_firestore
node_repos -->|"reads and writes"| node_room
node_dashboard -.->|"observes data"| node_repos
node_carbon -.->|"observes data"| node_repos
node_auth -->|"opens"| node_signup
node_auth -->|"restores backup"| node_firestore
node_profile -->|"links account"| node_auth
node_app_runtime -->|"creates"| node_repos
node_notifications -->|"gets services"| node_app_runtime

click node_main "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/MainActivity.kt"
click node_home "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/HomeFragement.kt"
click node_txn_action "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/add_delete_edit_Fragments/Transaction_Action_Page.kt"
click node_accounts "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/managementFragments/AccountManagement.kt"
click node_budgets "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/managementFragments/BudgetManagement.kt"
click node_repos "https://github.com/kartikey-44/aaroharth/tree/main/app/src/main/java/ind/finance/aaroharth/repositories"
click node_room "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/data/local/App_Database.kt"
click node_daos "https://github.com/kartikey-44/aaroharth/tree/main/app/src/main/java/ind/finance/aaroharth/data/local"
click node_txn_model "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/data/model/Transaction_Info.kt"
click node_dashboard "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/dashboardFragments/DashboardFragment.kt"
click node_category "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/categoriesFragments/CategoriesFragment.kt"
click node_carbon "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/carbonFragments/CarbonFragment.kt"
click node_auth "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/authFragments/SignIn.kt"
click node_signup "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/authFragments/SignUp.kt"
click node_profile "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/ProfileFragment.kt"
click node_notifications "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/NotificationHistoryFragment.kt"
click node_app_runtime "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/MyApplication.kt"
click node_ai "https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/add_delete_edit_Fragments/AI_Activity.kt"

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_main,node_home,node_app_runtime,node_user toneBlue
class node_txn_action,node_accounts,node_budgets,node_ai toneAmber
class node_dashboard,node_category,node_carbon toneMint
class node_repos,node_room,node_daos,node_txn_model,node_firestore toneRose
class node_auth,node_signup,node_profile,node_notifications toneIndigo
```

## Components

### App entry

- [App navigation](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/MainActivity.kt): `app/src/main/java/ind/finance/aaroharth/MainActivity.kt`
- [Home](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/HomeFragement.kt): `app/src/main/java/ind/finance/aaroharth/HomeFragement.kt`
- [App services](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/MyApplication.kt): `app/src/main/java/ind/finance/aaroharth/MyApplication.kt`

### Finance management

- [Transaction entry](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/add_delete_edit_Fragments/Transaction_Action_Page.kt): `app/src/main/java/ind/finance/aaroharth/add_delete_edit_Fragments/Transaction_Action_Page.kt`
- [Account management](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/managementFragments/AccountManagement.kt): `app/src/main/java/ind/finance/aaroharth/managementFragments/AccountManagement.kt`
- [Budget management](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/managementFragments/BudgetManagement.kt): `app/src/main/java/ind/finance/aaroharth/managementFragments/BudgetManagement.kt`
- [AI assistant](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/add_delete_edit_Fragments/AI_Activity.kt): `app/src/main/java/ind/finance/aaroharth/add_delete_edit_Fragments/AI_Activity.kt`

### Analytics and carbon

- [Analytics dashboard](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/dashboardFragments/DashboardFragment.kt): `app/src/main/java/ind/finance/aaroharth/dashboardFragments/DashboardFragment.kt`
- [Categories](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/categoriesFragments/CategoriesFragment.kt): `app/src/main/java/ind/finance/aaroharth/categoriesFragments/CategoriesFragment.kt`
- [Carbon insights](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/carbonFragments/CarbonFragment.kt): `app/src/main/java/ind/finance/aaroharth/carbonFragments/CarbonFragment.kt`

### Data and sync

- [Repositories](https://github.com/kartikey-44/aaroharth/tree/main/app/src/main/java/ind/finance/aaroharth/repositories): `app/src/main/java/ind/finance/aaroharth/repositories`
- [Room database](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/data/local/App_Database.kt): `app/src/main/java/ind/finance/aaroharth/data/local/App_Database.kt`
- [Room DAOs](https://github.com/kartikey-44/aaroharth/tree/main/app/src/main/java/ind/finance/aaroharth/data/local): `app/src/main/java/ind/finance/aaroharth/data/local`
- [Transaction model](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/data/model/Transaction_Info.kt): `app/src/main/java/ind/finance/aaroharth/data/model/Transaction_Info.kt`
- **Firestore**

### Identity and settings

- [Authentication](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/authFragments/SignIn.kt): `app/src/main/java/ind/finance/aaroharth/authFragments/SignIn.kt`
- [Sign-up](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/authFragments/SignUp.kt): `app/src/main/java/ind/finance/aaroharth/authFragments/SignUp.kt`
- [Profile settings](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/ProfileFragment.kt): `app/src/main/java/ind/finance/aaroharth/ProfileFragment.kt`
- [Notification history](https://github.com/kartikey-44/aaroharth/blob/main/app/src/main/java/ind/finance/aaroharth/NotificationHistoryFragment.kt): `app/src/main/java/ind/finance/aaroharth/NotificationHistoryFragment.kt`

### Other components

- **User**

## Connections

- User → App navigation: opens (evidence: `README.md`)
- App navigation → Home: routes to (evidence: `app/src/main/java/ind/finance/aaroharth/MainActivity.kt`)
- App navigation → Analytics dashboard: routes to (evidence: `app/src/main/java/ind/finance/aaroharth/MainActivity.kt`)
- App navigation → Carbon insights: routes to (evidence: `app/src/main/java/ind/finance/aaroharth/MainActivity.kt`)
- App navigation → Categories: routes to (evidence: `app/src/main/java/ind/finance/aaroharth/MainActivity.kt`)
- App navigation → Authentication: starts (evidence: `app/src/main/java/ind/finance/aaroharth/MainActivity.kt`)
- App navigation → Transaction entry: starts (evidence: `app/src/main/java/ind/finance/aaroharth/MainActivity.kt`)
- Home → Transaction entry: opens (evidence: `app/src/main/java/ind/finance/aaroharth/HomeFragement.kt`)
- Home → Account management: opens (evidence: `app/src/main/java/ind/finance/aaroharth/HomeFragement.kt`)
- Home → Budget management: opens (evidence: `app/src/main/java/ind/finance/aaroharth/HomeFragement.kt`)
- Home → AI assistant: opens (evidence: `app/src/main/java/ind/finance/aaroharth/HomeFragement.kt`)
- Transaction entry → Repositories: uses
- Account management → Repositories: uses
- Budget management → Repositories: uses
- Repositories → Room DAOs: calls (evidence: `app/src/main/java/ind/finance/aaroharth/repositories/TransactionRepository.kt`)
- Room database → Room DAOs: exposes (evidence: `app/src/main/java/ind/finance/aaroharth/data/local/App_Database.kt`)
- Repositories → Firestore: syncs optionally (evidence: `app/src/main/java/ind/finance/aaroharth/repositories/TransactionRepository.kt`)
- Repositories → Room database: reads and writes (evidence: `README.md`)
- Analytics dashboard → Repositories: observes data
- Carbon insights → Repositories: observes data
- Authentication → Sign-up: opens (evidence: `app/src/main/java/ind/finance/aaroharth/authFragments/SignIn.kt`)
- Authentication → Firestore: restores backup
- Profile settings → Authentication: links account (evidence: `app/src/main/java/ind/finance/aaroharth/ProfileFragment.kt`)
- App services → Repositories: creates (evidence: `app/src/main/java/ind/finance/aaroharth/MyApplication.kt`)
- Notification history → App services: gets services (evidence: `app/src/main/java/ind/finance/aaroharth/NotificationHistoryFragment.kt`)
