# vedant-kerulkar07/fin-view architecture

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

- Interactive diagram: https://gitdiagram.com/vedant-kerulkar07/fin-view
- Repository: https://github.com/vedant-kerulkar07/fin-view

## Overview

FinView lets users create an account, set up budgets, record or import transactions, and review their finances in a dashboard and analytics views. Its React client calls an Express API, which uses MongoDB-backed models; the chatbot also consults financial data and calls Groq. The graph combines the README’s feature overview with the sampled source and SOURCE INDEX. Some client-to-API details and several feature implementations were not shown, so those links are documented at a high level rather than inferred from names.

Main entry points: [`api/index.js`](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/index.js) (Express API), [`client/src/App.jsx`](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/App.jsx) (App routing), [`api/controllers/chat.controller.js`](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/chat.controller.js) (AI assistant), [`client/src/pages/AccountSetup.jsx`](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/AccountSetup.jsx) (Budget setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Finance client"]
  node_app["App routing<br/>[App.jsx]"]
  node_authui["Account access<br/>[SignIn.jsx]"]
  node_setup["Budget setup<br/>[AccountSetup.jsx]"]
  node_dashboard["Finance dashboard<br/>[Dashboard.jsx]"]
  node_transactionsui["Transaction history<br/>[Transaction.jsx]"]
  node_analytics["Financial analytics<br/>[Analytics.jsx]"]
  node_forecast["Smart forecasting"]
  node_profile["User profile<br/>[Profile.jsx]"]
  node_notifications["Notifications<br/>[Notification.jsx]"]
  node_chatui["Chat interface<br/>[Chatbot.jsx]"]
end

subgraph group_api["API services"]
  node_server["Express API<br/>[index.js]"]
  node_auth["Authentication<br/>[Auth.controller.js]"]
  node_budget["Budget management"]
  node_transaction["Transaction import"]
  node_chat["AI assistant<br/>[chat.controller.js]"]
  node_location["Location service"]
end

subgraph group_data["Finance records"]
  node_userrecords[("User records<br/>[user.model.js]")]
  node_budgetrecords[("Budget records<br/>[budget.model.js]")]
  node_transactionrecords[("Transaction records")]
  node_chatrecords[("Chat history")]
  node_locationrecords[("Location records<br/>[location.model.js]")]
end

subgraph group_integrations["External services"]
  node_groq["Groq API"]
  node_mongodb[("MongoDB")]
end

node_user(("User"))

node_user -->|"uses"| node_app
node_app -->|"routes to"| node_authui
node_app -->|"routes to"| node_setup
node_app -->|"routes to"| node_dashboard
node_app -->|"routes to"| node_transactionsui
node_app -->|"routes to"| node_analytics
node_app -->|"routes to"| node_profile
node_app -->|"routes to"| node_notifications
node_user -.->|"sets budget"| node_setup
node_user -.->|"reviews finances"| node_dashboard
node_user -.->|"asks questions"| node_chatui
node_app -->|"routes disabled"| node_forecast
node_authui -.->|"API requests"| node_server
node_setup -.->|"API requests"| node_server
node_dashboard -.->|"API requests"| node_server
node_transactionsui -.->|"API requests"| node_server
node_analytics -.->|"API requests"| node_server
node_chatui -.->|"API requests"| node_server
node_server -->|"mounts auth routes"| node_auth
node_server -->|"mounts budget routes"| node_budget
node_server -->|"mounts transaction routes"| node_transaction
node_server -->|"mounts chat routes"| node_chat
node_server -->|"mounts location routes"| node_location
node_auth -->|"reads and writes"| node_userrecords
node_budget -->|"reads and writes"| node_budgetrecords
node_transaction -->|"reads and writes"| node_transactionrecords
node_chat -->|"reads profile"| node_userrecords
node_chat -->|"reads budgets"| node_budgetrecords
node_chat -->|"reads transactions"| node_transactionrecords
node_chat -->|"loads and saves"| node_chatrecords
node_chat -->|"requests response"| node_groq
node_location -->|"uses records"| node_locationrecords
node_server -->|"connects"| node_mongodb

click node_app "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/App.jsx"
click node_authui "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/SignIn.jsx"
click node_setup "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/AccountSetup.jsx"
click node_dashboard "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/Dashboard.jsx"
click node_transactionsui "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/components/Transaction.jsx"
click node_analytics "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/Analytics.jsx"
click node_forecast "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/smartforcasting.jsx"
click node_profile "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/Profile.jsx"
click node_notifications "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/Notification/Notification.jsx"
click node_chatui "https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/components/Chatbot.jsx"
click node_server "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/index.js"
click node_auth "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/Auth.controller.js"
click node_budget "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/budget.controller.js"
click node_transaction "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/Transaction.controller.js"
click node_chat "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/chat.controller.js"
click node_location "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/Location.controller.js"
click node_userrecords "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/user.model.js"
click node_budgetrecords "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/budget.model.js"
click node_transactionrecords "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/transaction.model.js"
click node_chatrecords "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/chatHistory.model.js"
click node_locationrecords "https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/location.model.js"

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_app,node_authui,node_setup,node_dashboard,node_transactionsui,node_analytics,node_forecast,node_profile,node_notifications,node_chatui,node_user toneBlue
class node_server,node_auth,node_budget,node_transaction,node_chat,node_location toneAmber
class node_userrecords,node_budgetrecords,node_transactionrecords,node_chatrecords,node_locationrecords toneMint
class node_groq,node_mongodb toneRose
```

## Components

### Finance client

- [App routing](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/App.jsx): `client/src/App.jsx`
- [Account access](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/SignIn.jsx): `client/src/pages/SignIn.jsx`
- [Budget setup](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/AccountSetup.jsx): `client/src/pages/AccountSetup.jsx`
- [Finance dashboard](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/Dashboard.jsx): `client/src/pages/Dashboard.jsx`
- [Transaction history](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/components/Transaction.jsx): `client/src/components/Transaction.jsx`
- [Financial analytics](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/Analytics.jsx): `client/src/pages/Analytics.jsx`
- [Smart forecasting](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/smartforcasting.jsx): `client/src/pages/smartforcasting.jsx`
- [User profile](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/pages/Profile.jsx): `client/src/pages/Profile.jsx`
- [Notifications](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/Notification/Notification.jsx): `client/src/Notification/Notification.jsx`
- [Chat interface](https://github.com/vedant-kerulkar07/fin-view/blob/main/client/src/components/Chatbot.jsx): `client/src/components/Chatbot.jsx`

### API services

- [Express API](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/index.js): `api/index.js`
- [Authentication](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/Auth.controller.js): `api/controllers/Auth.controller.js`
- [Budget management](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/budget.controller.js): `api/controllers/budget.controller.js`
- [Transaction import](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/Transaction.controller.js): `api/controllers/Transaction.controller.js`
- [AI assistant](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/chat.controller.js): `api/controllers/chat.controller.js`
- [Location service](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/controllers/Location.controller.js): `api/controllers/Location.controller.js`

### Finance records

- [User records](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/user.model.js): `api/models/user.model.js`
- [Budget records](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/budget.model.js): `api/models/budget.model.js`
- [Transaction records](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/transaction.model.js): `api/models/transaction.model.js`
- [Chat history](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/chatHistory.model.js): `api/models/chatHistory.model.js`
- [Location records](https://github.com/vedant-kerulkar07/fin-view/blob/main/api/models/location.model.js): `api/models/location.model.js`

### External services

- **Groq API**
- **MongoDB**

### Other components

- **User**

## Connections

- User → App routing: uses (evidence: `client/src/App.jsx`)
- App routing → Account access: routes to (evidence: `client/src/App.jsx`)
- App routing → Budget setup: routes to (evidence: `client/src/App.jsx`)
- App routing → Finance dashboard: routes to (evidence: `client/src/App.jsx`)
- App routing → Transaction history: routes to (evidence: `client/src/App.jsx`)
- App routing → Financial analytics: routes to (evidence: `client/src/App.jsx`)
- App routing → User profile: routes to (evidence: `client/src/App.jsx`)
- App routing → Notifications: routes to (evidence: `client/src/App.jsx`)
- User → Budget setup: sets budget (evidence: `README.md`)
- User → Finance dashboard: reviews finances (evidence: `README.md`)
- User → Chat interface: asks questions (evidence: `README.md`)
- App routing → Smart forecasting: routes disabled (evidence: `client/src/App.jsx`)
- Account access → Express API: API requests (evidence: `README.md`)
- Budget setup → Express API: API requests (evidence: `README.md`)
- Finance dashboard → Express API: API requests (evidence: `README.md`)
- Transaction history → Express API: API requests (evidence: `README.md`)
- Financial analytics → Express API: API requests (evidence: `README.md`)
- Chat interface → Express API: API requests (evidence: `README.md`)
- Express API → Authentication: mounts auth routes (evidence: `api/index.js`)
- Express API → Budget management: mounts budget routes (evidence: `api/index.js`)
- Express API → Transaction import: mounts transaction routes (evidence: `api/index.js`)
- Express API → AI assistant: mounts chat routes (evidence: `api/index.js`)
- Express API → Location service: mounts location routes (evidence: `api/index.js`)
- Authentication → User records: reads and writes (evidence: `api/controllers/Auth.controller.js`)
- Budget management → Budget records: reads and writes (evidence: `api/controllers/budget.controller.js`)
- Transaction import → Transaction records: reads and writes (evidence: `api/controllers/Transaction.controller.js`)
- AI assistant → User records: reads profile (evidence: `api/controllers/chat.controller.js`)
- AI assistant → Budget records: reads budgets (evidence: `api/controllers/chat.controller.js`)
- AI assistant → Transaction records: reads transactions (evidence: `api/controllers/chat.controller.js`)
- AI assistant → Chat history: loads and saves (evidence: `api/controllers/chat.controller.js`)
- AI assistant → Groq API: requests response (evidence: `api/controllers/chat.controller.js`)
- Location service → Location records: uses records (evidence: `api/controllers/Location.controller.js`)
- Express API → MongoDB: connects (evidence: `api/index.js`)
