# yashaswinimullalli/banking-system architecture

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

- Interactive diagram: https://gitdiagram.com/yashaswinimullalli/banking-system
- Repository: https://github.com/yashaswinimullalli/banking-system

## Overview

UNIQUE Bank is a React frontend demo, not a real banking service: signup and login are client-side, and account activity uses fictional data with browser-local persistence. The user journey runs from signup/login into a routed dashboard, then branches into account management, banking services, plans, and lifestyle offers. Dashboard and domain views consume shared banking state; the sampled context persists selected values in localStorage. The graph reflects documented capabilities and indexed imports, but unsampled modules and their internal calls are not verified.

Main entry points: [`src/context/BankingContext.jsx`](https://github.com/yashaswinimullalli/banking-system/blob/main/src/context/BankingContext.jsx) (Banking state), [`src/pages/DashboardPage.jsx`](https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/DashboardPage.jsx) (Dashboard page), [`src/App.jsx`](https://github.com/yashaswinimullalli/banking-system/blob/main/src/App.jsx) (Route application), [`src/components/dashboard/Header.jsx`](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/Header.jsx) (Navigation header)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and identity"]
  node_routes["Route application<br/>[App.jsx]"]
  node_signup["Signup and login<br/>[SignupPage.jsx]"]
  node_signupform["Signup form<br/>[SignupForm.jsx]"]
  node_loginform["Login form<br/>[LoginForm.jsx]"]
end

subgraph group_dashboard["Dashboard experience"]
  node_dashboardpage["Dashboard page<br/>[DashboardPage.jsx]"]
  node_header["Navigation header<br/>[Header.jsx]"]
  node_sidebar["Dashboard navigation<br/>[Sidebar.jsx]"]
  node_dashboardwidgets["Dashboard widgets"]
  node_transactions["Transaction history"]
end

subgraph group_banking["Banking features"]
  node_account["Account management<br/>[AccountPage.jsx]"]
  node_payments["Payment methods<br/>[PaymentMethods.jsx]"]
  node_pin["PIN verification"]
  node_upimodals["UPI dialogs<br/>[UpiModals.jsx]"]
  node_services["Banking services<br/>[ServiceViews.jsx]"]
  node_plans["Plans and tiers<br/>[PlansPage.jsx]"]
  node_lifestyle["Lifestyle offers<br/>[LifestylePage.jsx]"]
end

subgraph group_state["Demo state and data"]
  node_context["Banking state<br/>[BankingContext.jsx]"]
  node_mockdata["Fictional banking data<br/>[mockData.js]"]
  node_userutil["User name helpers<br/>[user.js]"]
end

node_user(("Bank customer"))
node_localstorage[("Browser local storage")]

node_user -->|"opens app"| node_routes
node_routes -->|"routes to"| node_signup
node_routes -->|"routes to"| node_dashboardpage
node_routes -->|"routes to"| node_account
node_routes -->|"routes to"| node_plans
node_routes -->|"routes to"| node_lifestyle
node_routes -->|"provides state"| node_context
node_signup -->|"renders"| node_signupform
node_signup -->|"renders"| node_loginform
node_signupform -->|"navigates after signup"| node_dashboardpage
node_signupform -->|"validates locally"| node_user
node_loginform -->|"accepts login input"| node_user
node_dashboardpage -->|"renders"| node_header
node_dashboardpage -->|"renders"| node_sidebar
node_dashboardpage -->|"renders"| node_dashboardwidgets
node_dashboardpage -->|"renders"| node_transactions
node_dashboardpage -->|"reads state"| node_context
node_header -->|"formats user"| node_userutil
node_header -->|"reads state"| node_context
node_account -->|"renders"| node_header
node_account -->|"reads and updates"| node_context
node_account -->|"opens dialogs"| node_upimodals
node_payments -->|"opens verification"| node_pin
node_payments -->|"opens dialogs"| node_upimodals
node_pin -->|"reads PIN"| node_context
node_services -->|"uses banking state"| node_context
node_services -->|"uses verification"| node_pin
node_dashboardpage -->|"renders service views"| node_services
node_plans -->|"renders"| node_header
node_plans -->|"records activity"| node_context
node_lifestyle -->|"renders"| node_header
node_lifestyle -->|"records activity"| node_context
node_context -->|"loads defaults"| node_mockdata
node_context -->|"persists state"| node_localstorage

click node_routes "https://github.com/yashaswinimullalli/banking-system/blob/main/src/App.jsx"
click node_signup "https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/SignupPage.jsx"
click node_signupform "https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/signup/SignupForm.jsx"
click node_loginform "https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/login/LoginForm.jsx"
click node_dashboardpage "https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/DashboardPage.jsx"
click node_header "https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/Header.jsx"
click node_sidebar "https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/Sidebar.jsx"
click node_dashboardwidgets "https://github.com/yashaswinimullalli/banking-system/tree/main/src/components/dashboard"
click node_transactions "https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/RecentTransactions.jsx"
click node_account "https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/AccountPage.jsx"
click node_payments "https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/PaymentMethods.jsx"
click node_pin "https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/common/PinVerificationModal.jsx"
click node_upimodals "https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/common/UpiModals.jsx"
click node_services "https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/ServiceViews.jsx"
click node_plans "https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/PlansPage.jsx"
click node_lifestyle "https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/LifestylePage.jsx"
click node_context "https://github.com/yashaswinimullalli/banking-system/blob/main/src/context/BankingContext.jsx"
click node_mockdata "https://github.com/yashaswinimullalli/banking-system/blob/main/src/data/mockData.js"
click node_userutil "https://github.com/yashaswinimullalli/banking-system/blob/main/src/utils/user.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_routes,node_signup,node_signupform,node_loginform toneBlue
class node_dashboardpage,node_header,node_sidebar,node_dashboardwidgets,node_transactions,node_localstorage toneAmber
class node_account,node_payments,node_pin,node_upimodals,node_services,node_plans,node_lifestyle toneMint
class node_context,node_mockdata,node_userutil toneRose
class node_user toneIndigo
```

## Components

### Entry and identity

- [Route application](https://github.com/yashaswinimullalli/banking-system/blob/main/src/App.jsx): `src/App.jsx`
- [Signup and login](https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/SignupPage.jsx): `src/pages/SignupPage.jsx`
- [Signup form](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/signup/SignupForm.jsx): `src/components/signup/SignupForm.jsx`
- [Login form](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/login/LoginForm.jsx): `src/components/login/LoginForm.jsx`

### Dashboard experience

- [Dashboard page](https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/DashboardPage.jsx): `src/pages/DashboardPage.jsx`
- [Navigation header](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/Header.jsx): `src/components/dashboard/Header.jsx`
- [Dashboard navigation](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/Sidebar.jsx): `src/components/dashboard/Sidebar.jsx`
- [Dashboard widgets](https://github.com/yashaswinimullalli/banking-system/tree/main/src/components/dashboard): `src/components/dashboard`
- [Transaction history](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/RecentTransactions.jsx): `src/components/dashboard/RecentTransactions.jsx`

### Banking features

- [Account management](https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/AccountPage.jsx): `src/pages/AccountPage.jsx`
- [Payment methods](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/PaymentMethods.jsx): `src/components/dashboard/PaymentMethods.jsx`
- [PIN verification](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/common/PinVerificationModal.jsx): `src/components/common/PinVerificationModal.jsx`
- [UPI dialogs](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/common/UpiModals.jsx): `src/components/common/UpiModals.jsx`
- [Banking services](https://github.com/yashaswinimullalli/banking-system/blob/main/src/components/dashboard/ServiceViews.jsx): `src/components/dashboard/ServiceViews.jsx`
- [Plans and tiers](https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/PlansPage.jsx): `src/pages/PlansPage.jsx`
- [Lifestyle offers](https://github.com/yashaswinimullalli/banking-system/blob/main/src/pages/LifestylePage.jsx): `src/pages/LifestylePage.jsx`

### Demo state and data

- [Banking state](https://github.com/yashaswinimullalli/banking-system/blob/main/src/context/BankingContext.jsx): `src/context/BankingContext.jsx`
- [Fictional banking data](https://github.com/yashaswinimullalli/banking-system/blob/main/src/data/mockData.js): `src/data/mockData.js`
- [User name helpers](https://github.com/yashaswinimullalli/banking-system/blob/main/src/utils/user.js): `src/utils/user.js`

### Other components

- **Bank customer**
- **Browser local storage**

## Connections

- Bank customer → Route application: opens app (evidence: `README.md`)
- Route application → Signup and login: routes to (evidence: `src/App.jsx`)
- Route application → Dashboard page: routes to (evidence: `src/App.jsx`)
- Route application → Account management: routes to (evidence: `src/App.jsx`)
- Route application → Plans and tiers: routes to (evidence: `src/App.jsx`)
- Route application → Lifestyle offers: routes to (evidence: `src/App.jsx`)
- Route application → Banking state: provides state (evidence: `src/App.jsx`)
- Signup and login → Signup form: renders (evidence: `src/pages/SignupPage.jsx`)
- Signup and login → Login form: renders (evidence: `src/pages/SignupPage.jsx`)
- Signup form → Dashboard page: navigates after signup (evidence: `README.md`)
- Signup form → Bank customer: validates locally (evidence: `README.md`)
- Login form → Bank customer: accepts login input (evidence: `src/components/login/LoginForm.jsx`)
- Dashboard page → Navigation header: renders (evidence: `src/pages/DashboardPage.jsx`)
- Dashboard page → Dashboard navigation: renders (evidence: `src/pages/DashboardPage.jsx`)
- Dashboard page → Dashboard widgets: renders (evidence: `src/pages/DashboardPage.jsx`)
- Dashboard page → Transaction history: renders (evidence: `src/pages/DashboardPage.jsx`)
- Dashboard page → Banking state: reads state (evidence: `src/pages/DashboardPage.jsx`)
- Navigation header → User name helpers: formats user (evidence: `src/components/dashboard/Header.jsx`)
- Navigation header → Banking state: reads state (evidence: `src/components/dashboard/Header.jsx`)
- Account management → Navigation header: renders (evidence: `src/pages/AccountPage.jsx`)
- Account management → Banking state: reads and updates (evidence: `src/pages/AccountPage.jsx`)
- Account management → UPI dialogs: opens dialogs (evidence: `src/pages/AccountPage.jsx`)
- Payment methods → PIN verification: opens verification (evidence: `src/components/dashboard/PaymentMethods.jsx`)
- Payment methods → UPI dialogs: opens dialogs (evidence: `src/components/dashboard/PaymentMethods.jsx`)
- PIN verification → Banking state: reads PIN (evidence: `src/components/common/PinVerificationModal.jsx`)
- Banking services → Banking state: uses banking state (evidence: `src/components/dashboard/ServiceViews.jsx`)
- Banking services → PIN verification: uses verification (evidence: `src/components/dashboard/ServiceViews.jsx`)
- Dashboard page → Banking services: renders service views (evidence: `src/pages/DashboardPage.jsx`)
- Plans and tiers → Navigation header: renders (evidence: `src/pages/PlansPage.jsx`)
- Plans and tiers → Banking state: records activity (evidence: `src/pages/PlansPage.jsx`)
- Lifestyle offers → Navigation header: renders (evidence: `src/pages/LifestylePage.jsx`)
- Lifestyle offers → Banking state: records activity (evidence: `src/pages/LifestylePage.jsx`)
- Banking state → Fictional banking data: loads defaults (evidence: `src/context/BankingContext.jsx`)
- Banking state → Browser local storage: persists state (evidence: `src/context/BankingContext.jsx`)
