# adirizkyr/cashmind architecture

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

## Overview

CashMind is a privacy-focused personal finance application with separate user and platform-admin workspaces. The primary user workflow is to manage personal accounts and categories, record and review transactions, plan budgets with advisor recommendations, and use goals, reconciliation, and reports to understand finances. Authentication routes users to the appropriate role dashboard; admin features manage platform operations and metadata rather than inspecting personal financial records. Some subsystem links are based on README capabilities because their controller implementations were not sampled.

Main entry points: [`routes/web.php`](https://github.com/adirizkyr/cashmind/blob/main/routes/web.php) (Web routes), [`config/database.php`](https://github.com/adirizkyr/cashmind/blob/main/config/database.php) (Application database), [`routes/auth.php`](https://github.com/adirizkyr/cashmind/blob/main/routes/auth.php) (Auth routes), [`app/Http/Controllers/Auth/AuthenticatedSessionController.php`](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php) (Authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and routing"]
  node_web_routes["Web routes<br/>[web.php]"]
  node_auth_routes["Auth routes<br/>[auth.php]"]
  node_auth_controller["Authentication"]
  node_registration["Registration"]
  node_dashboard["Role dashboard"]
  node_user_model["User identity<br/>[User.php]"]
end

subgraph group_finance["Personal finance"]
  node_accounts["Accounts"]
  node_categories["Categories"]
  node_transactions["Transactions"]
  node_transaction_model["Transaction records<br/>[Transaction.php]"]
  node_profile["Financial profile"]
end

subgraph group_admin["Platform administration"]
  node_admin_dashboard["Admin console"]
  node_admin_users["User operations<br/>[UserController.php]"]
  node_master_data["Platform master data"]
  node_features["Feature flags"]
  node_audit["Security audit"]
end

subgraph group_insight["Planning and insights"]
  node_budget["Budget planning"]
  node_advisor["Budget advisor"]
  node_goals["Financial goals<br/>[GoalController.php]"]
  node_reconciliation["Cash reconciliation"]
  node_reports["Reports and export"]
end

node_user(("User"))
node_data_store[("Application database<br/>[database.php]")]

node_user -->|"makes requests"| node_web_routes
node_web_routes -->|"registers auth routes"| node_auth_routes
node_auth_routes -->|"dispatches"| node_auth_controller
node_auth_routes -->|"dispatches"| node_registration
node_auth_controller -->|"authenticates"| node_user_model
node_registration -->|"creates user"| node_user_model
node_auth_controller -->|"redirects by role"| node_dashboard
node_web_routes -->|"dispatches"| node_accounts
node_web_routes -->|"dispatches"| node_categories
node_web_routes -->|"dispatches"| node_transactions
node_transactions -->|"reads and writes"| node_transaction_model
node_web_routes -->|"dispatches"| node_budget
node_budget -->|"requests recommendations"| node_advisor
node_web_routes -->|"dispatches"| node_goals
node_web_routes -->|"dispatches"| node_reconciliation
node_web_routes -->|"dispatches"| node_reports
node_web_routes -->|"dispatches"| node_profile
node_web_routes -->|"dispatches"| node_admin_dashboard
node_web_routes -->|"dispatches"| node_admin_users
node_admin_users -->|"manages metadata"| node_user_model
node_admin_users -->|"records security events"| node_audit
node_web_routes -->|"dispatches"| node_master_data
node_master_data -->|"reads and writes"| node_data_store
node_web_routes -->|"dispatches"| node_features
node_web_routes -->|"dispatches"| node_audit
node_accounts -->|"persists account data"| node_data_store
node_categories -->|"persists categories"| node_data_store
node_transactions -->|"persists transactions"| node_data_store
node_budget -->|"persists budgets"| node_data_store
node_goals -->|"persists goals"| node_data_store
node_reconciliation -->|"persists reconciliations"| node_data_store
node_reports -->|"reads transactions"| node_data_store
node_profile -->|"persists profile"| node_data_store
node_admin_dashboard -->|"reads platform data"| node_data_store
node_features -->|"persists flags"| node_data_store
node_audit -->|"reads security logs"| node_data_store

click node_web_routes "https://github.com/adirizkyr/cashmind/blob/main/routes/web.php"
click node_auth_routes "https://github.com/adirizkyr/cashmind/blob/main/routes/auth.php"
click node_auth_controller "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_registration "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_dashboard "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/DashboardController.php"
click node_user_model "https://github.com/adirizkyr/cashmind/blob/main/app/Models/User.php"
click node_accounts "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/AccountController.php"
click node_categories "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/CategoryController.php"
click node_transactions "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/TransactionController.php"
click node_transaction_model "https://github.com/adirizkyr/cashmind/blob/main/app/Models/Transaction.php"
click node_budget "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/BudgetController.php"
click node_advisor "https://github.com/adirizkyr/cashmind/blob/main/app/Services/BudgetAdvisorService.php"
click node_goals "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/GoalController.php"
click node_reconciliation "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/ReconciliationController.php"
click node_reports "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/ReportController.php"
click node_profile "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/UserProfileController.php"
click node_admin_dashboard "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/AdminDashboardController.php"
click node_admin_users "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/UserController.php"
click node_master_data "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/MasterDataController.php"
click node_features "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/FeatureController.php"
click node_audit "https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/SecurityLogController.php"
click node_data_store "https://github.com/adirizkyr/cashmind/blob/main/config/database.php"

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_routes,node_auth_routes,node_auth_controller,node_registration,node_dashboard,node_user_model,node_user toneBlue
class node_accounts,node_categories,node_transactions,node_transaction_model,node_profile,node_data_store toneAmber
class node_admin_dashboard,node_admin_users,node_master_data,node_features,node_audit toneMint
class node_budget,node_advisor,node_goals,node_reconciliation,node_reports toneRose
```

## Components

### Access and routing

- [Web routes](https://github.com/adirizkyr/cashmind/blob/main/routes/web.php): `routes/web.php`
- [Auth routes](https://github.com/adirizkyr/cashmind/blob/main/routes/auth.php): `routes/auth.php`
- [Authentication](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [Registration](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [Role dashboard](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/DashboardController.php): `app/Http/Controllers/DashboardController.php`
- [User identity](https://github.com/adirizkyr/cashmind/blob/main/app/Models/User.php): `app/Models/User.php`

### Personal finance

- [Accounts](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/AccountController.php): `app/Http/Controllers/User/AccountController.php`
- [Categories](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/CategoryController.php): `app/Http/Controllers/User/CategoryController.php`
- [Transactions](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/TransactionController.php): `app/Http/Controllers/User/TransactionController.php`
- [Transaction records](https://github.com/adirizkyr/cashmind/blob/main/app/Models/Transaction.php): `app/Models/Transaction.php`
- [Financial profile](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/UserProfileController.php): `app/Http/Controllers/User/UserProfileController.php`

### Platform administration

- [Admin console](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/AdminDashboardController.php): `app/Http/Controllers/Admin/AdminDashboardController.php`
- [User operations](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/UserController.php): `app/Http/Controllers/Admin/UserController.php`
- [Platform master data](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/MasterDataController.php): `app/Http/Controllers/Admin/MasterDataController.php`
- [Feature flags](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/FeatureController.php): `app/Http/Controllers/Admin/FeatureController.php`
- [Security audit](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/Admin/SecurityLogController.php): `app/Http/Controllers/Admin/SecurityLogController.php`

### Planning and insights

- [Budget planning](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/BudgetController.php): `app/Http/Controllers/User/BudgetController.php`
- [Budget advisor](https://github.com/adirizkyr/cashmind/blob/main/app/Services/BudgetAdvisorService.php): `app/Services/BudgetAdvisorService.php`
- [Financial goals](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/GoalController.php): `app/Http/Controllers/User/GoalController.php`
- [Cash reconciliation](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/ReconciliationController.php): `app/Http/Controllers/User/ReconciliationController.php`
- [Reports and export](https://github.com/adirizkyr/cashmind/blob/main/app/Http/Controllers/User/ReportController.php): `app/Http/Controllers/User/ReportController.php`

### Other components

- **User**
- [Application database](https://github.com/adirizkyr/cashmind/blob/main/config/database.php): `config/database.php`

## Connections

- User → Web routes: makes requests
- Web routes → Auth routes: registers auth routes
- Auth routes → Authentication: dispatches
- Auth routes → Registration: dispatches
- Authentication → User identity: authenticates
- Registration → User identity: creates user
- Authentication → Role dashboard: redirects by role
- Web routes → Accounts: dispatches
- Web routes → Categories: dispatches
- Web routes → Transactions: dispatches
- Transactions → Transaction records: reads and writes
- Web routes → Budget planning: dispatches
- Budget planning → Budget advisor: requests recommendations
- Web routes → Financial goals: dispatches
- Web routes → Cash reconciliation: dispatches
- Web routes → Reports and export: dispatches
- Web routes → Financial profile: dispatches
- Web routes → Admin console: dispatches
- Web routes → User operations: dispatches
- User operations → User identity: manages metadata
- User operations → Security audit: records security events
- Web routes → Platform master data: dispatches
- Platform master data → Application database: reads and writes
- Web routes → Feature flags: dispatches
- Web routes → Security audit: dispatches
- Accounts → Application database: persists account data
- Categories → Application database: persists categories
- Transactions → Application database: persists transactions
- Budget planning → Application database: persists budgets
- Financial goals → Application database: persists goals
- Cash reconciliation → Application database: persists reconciliations
- Reports and export → Application database: reads transactions
- Financial profile → Application database: persists profile
- Admin console → Application database: reads platform data
- Feature flags → Application database: persists flags
- Security audit → Application database: reads security logs
