# abhinay6677/fingenie_capstone_project architecture

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

- Interactive diagram: https://gitdiagram.com/abhinay6677/fingenie_capstone_project
- Repository: https://github.com/abhinay6677/fingenie_capstone_project

## Overview

FinGenie is a banking and personal-finance application with web flows for authentication, account transactions, investments, loans, and administration. The principal user workflow is to register or log in, verify an OTP, then use authorized banking or wealth features; administrators also manage users and monitor operations. The graph preserves those product areas while limiting backend call edges to relationships visible in sampled source. Other service wiring and frontend API usage are not established by the available excerpts.

Main entry points: [`Frontend/src/App.js`](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Frontend/src/App.js) (Route application), [`Backend/auth-service/src/main/java/com/wipro/auth_service/controller/AuthController.java`](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/controller/AuthController.java) (Auth endpoints), [`Backend/auth-service/src/main/java/com/wipro/auth_service/service/AuthService.java`](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/service/AuthService.java) (Registration service), [`Backend/auth-service/src/main/java/com/wipro/auth_service/repository/UserRepo.java`](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/repository/UserRepo.java) (Auth user store)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_web_app["Route application<br/>[App.js]"]
  node_auth_pages["Auth pages"]
  node_banking_pages["Banking pages"]
  node_dashboard_pages["Dashboards"]
  node_investment_pages["Investment pages"]
  node_loan_pages["Loan pages"]
  node_admin_pages["Admin pages"]
end

subgraph group_identity["Identity"]
  node_auth_controller["Auth endpoints"]
  node_auth_service["Registration service<br/>[AuthService.java]"]
  node_auth_users[("Auth user store<br/>[UserRepo.java]")]
  node_auth_security[("OTP store")]
  node_otp_factory["OTP generator<br/>[OtpFactory.java]"]
  node_jwt_service["JWT service<br/>[JwtService.java]"]
end

subgraph group_banking["Banking"]
  node_bank_tx_controller["Transaction endpoints"]
  node_bank_tx_service["Transaction service"]
  node_bank_account_controller["Account endpoints"]
end

subgraph group_wealth["Wealth"]
  node_wealth_invest_controller["User investments"]
  node_wealth_invest_service["Investment service"]
  node_wealth_loan_controller["Loan endpoints"]
  node_wealth_emi["EMI calculator"]
end

subgraph group_customer["Customer data"]
  node_user_controller["User endpoints"]
  node_credit_controller["Credit profiles"]
  node_security_controller["User security"]
end

node_customer_actor(("Customer"))
node_admin_actor(("Administrator"))

node_customer_actor -->|"opens"| node_web_app
node_admin_actor -->|"opens"| node_web_app
node_web_app -->|"routes"| node_auth_pages
node_web_app -->|"routes"| node_banking_pages
node_web_app -->|"routes"| node_dashboard_pages
node_web_app -->|"routes"| node_investment_pages
node_web_app -->|"routes"| node_loan_pages
node_web_app -->|"routes"| node_admin_pages
node_auth_controller -->|"registers via"| node_auth_service
node_auth_service -->|"checks and saves"| node_auth_users
node_auth_controller -->|"looks up user"| node_auth_users
node_auth_controller -->|"reads and saves OTP"| node_auth_security
node_auth_controller -->|"creates OTP"| node_otp_factory
node_auth_controller -->|"issues token"| node_jwt_service
node_bank_tx_controller -->|"dispatches transactions"| node_bank_tx_service
node_wealth_invest_controller -->|"dispatches requests"| node_wealth_invest_service

click node_web_app "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Frontend/src/App.js"
click node_auth_pages "https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/auth"
click node_banking_pages "https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/transactions"
click node_dashboard_pages "https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/dashboard"
click node_investment_pages "https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/investments"
click node_loan_pages "https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/loans"
click node_admin_pages "https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/admin"
click node_auth_controller "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/controller/AuthController.java"
click node_auth_service "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/service/AuthService.java"
click node_auth_users "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/repository/UserRepo.java"
click node_auth_security "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/repository/UserSecurityRepository.java"
click node_otp_factory "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/factory/OtpFactory.java"
click node_jwt_service "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/service/JwtService.java"
click node_bank_tx_controller "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/banking_service/banking_service/src/main/java/com/fingenie/banking_service/controller/TransactionRestController.java"
click node_bank_tx_service "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/banking_service/banking_service/src/main/java/com/fingenie/banking_service/service/TransactionServiceImp.java"
click node_bank_account_controller "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/banking_service/banking_service/src/main/java/com/fingenie/banking_service/controller/AccountRestController.java"
click node_wealth_invest_controller "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/wealth_service/src/main/java/com/fingenie/wealth_service/controller/UserInvestmentController.java"
click node_wealth_invest_service "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/wealth_service/src/main/java/com/fingenie/wealth_service/service/UserInvestmentServiceImp.java"
click node_wealth_loan_controller "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/wealth_service/src/main/java/com/fingenie/wealth_service/controller/LoanController.java"
click node_wealth_emi "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/wealth_service/src/main/java/com/fingenie/wealth_service/service/EMICalculatorService.java"
click node_user_controller "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/user_service/src/main/java/com/fingenie/user_service/controller/UserRestController.java"
click node_credit_controller "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/user_service/src/main/java/com/fingenie/user_service/controller/CreditProfileRestController.java"
click node_security_controller "https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/user_service/src/main/java/com/fingenie/user_service/controller/UserSecurityRestController.java"

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_app,node_auth_pages,node_banking_pages,node_dashboard_pages,node_investment_pages,node_loan_pages,node_admin_pages toneBlue
class node_auth_controller,node_auth_service,node_auth_users,node_auth_security,node_otp_factory,node_jwt_service toneAmber
class node_bank_tx_controller,node_bank_tx_service,node_bank_account_controller toneMint
class node_wealth_invest_controller,node_wealth_invest_service,node_wealth_loan_controller,node_wealth_emi toneRose
class node_user_controller,node_credit_controller,node_security_controller,node_customer_actor,node_admin_actor toneIndigo
```

## Components

### Web application

- [Route application](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Frontend/src/App.js): `Frontend/src/App.js`
- [Auth pages](https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/auth): `Frontend/src/pages/auth`
- [Banking pages](https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/transactions): `Frontend/src/pages/transactions`
- [Dashboards](https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/dashboard): `Frontend/src/pages/dashboard`
- [Investment pages](https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/investments): `Frontend/src/pages/investments`
- [Loan pages](https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/loans): `Frontend/src/pages/loans`
- [Admin pages](https://github.com/abhinay6677/fingenie_capstone_project/tree/main/Frontend/src/pages/admin): `Frontend/src/pages/admin`

### Identity

- [Auth endpoints](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/controller/AuthController.java): `Backend/auth-service/src/main/java/com/wipro/auth_service/controller/AuthController.java`
- [Registration service](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/service/AuthService.java): `Backend/auth-service/src/main/java/com/wipro/auth_service/service/AuthService.java`
- [Auth user store](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/repository/UserRepo.java): `Backend/auth-service/src/main/java/com/wipro/auth_service/repository/UserRepo.java`
- [OTP store](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/repository/UserSecurityRepository.java): `Backend/auth-service/src/main/java/com/wipro/auth_service/repository/UserSecurityRepository.java`
- [OTP generator](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/factory/OtpFactory.java): `Backend/auth-service/src/main/java/com/wipro/auth_service/factory/OtpFactory.java`
- [JWT service](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/auth-service/src/main/java/com/wipro/auth_service/service/JwtService.java): `Backend/auth-service/src/main/java/com/wipro/auth_service/service/JwtService.java`

### Banking

- [Transaction endpoints](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/banking_service/banking_service/src/main/java/com/fingenie/banking_service/controller/TransactionRestController.java): `Backend/banking_service/banking_service/src/main/java/com/fingenie/banking_service/controller/TransactionRestController.java`
- [Transaction service](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/banking_service/banking_service/src/main/java/com/fingenie/banking_service/service/TransactionServiceImp.java): `Backend/banking_service/banking_service/src/main/java/com/fingenie/banking_service/service/TransactionServiceImp.java`
- [Account endpoints](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/banking_service/banking_service/src/main/java/com/fingenie/banking_service/controller/AccountRestController.java): `Backend/banking_service/banking_service/src/main/java/com/fingenie/banking_service/controller/AccountRestController.java`

### Wealth

- [User investments](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/wealth_service/src/main/java/com/fingenie/wealth_service/controller/UserInvestmentController.java): `Backend/wealth_service/src/main/java/com/fingenie/wealth_service/controller/UserInvestmentController.java`
- [Investment service](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/wealth_service/src/main/java/com/fingenie/wealth_service/service/UserInvestmentServiceImp.java): `Backend/wealth_service/src/main/java/com/fingenie/wealth_service/service/UserInvestmentServiceImp.java`
- [Loan endpoints](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/wealth_service/src/main/java/com/fingenie/wealth_service/controller/LoanController.java): `Backend/wealth_service/src/main/java/com/fingenie/wealth_service/controller/LoanController.java`
- [EMI calculator](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/wealth_service/src/main/java/com/fingenie/wealth_service/service/EMICalculatorService.java): `Backend/wealth_service/src/main/java/com/fingenie/wealth_service/service/EMICalculatorService.java`

### Customer data

- [User endpoints](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/user_service/src/main/java/com/fingenie/user_service/controller/UserRestController.java): `Backend/user_service/src/main/java/com/fingenie/user_service/controller/UserRestController.java`
- [Credit profiles](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/user_service/src/main/java/com/fingenie/user_service/controller/CreditProfileRestController.java): `Backend/user_service/src/main/java/com/fingenie/user_service/controller/CreditProfileRestController.java`
- [User security](https://github.com/abhinay6677/fingenie_capstone_project/blob/main/Backend/user_service/src/main/java/com/fingenie/user_service/controller/UserSecurityRestController.java): `Backend/user_service/src/main/java/com/fingenie/user_service/controller/UserSecurityRestController.java`

### Other components

- **Customer**
- **Administrator**

## Connections

- Customer → Route application: opens
- Administrator → Route application: opens
- Route application → Auth pages: routes
- Route application → Banking pages: routes
- Route application → Dashboards: routes
- Route application → Investment pages: routes
- Route application → Loan pages: routes
- Route application → Admin pages: routes
- Auth endpoints → Registration service: registers via
- Registration service → Auth user store: checks and saves
- Auth endpoints → Auth user store: looks up user
- Auth endpoints → OTP store: reads and saves OTP
- Auth endpoints → OTP generator: creates OTP
- Auth endpoints → JWT service: issues token
- Transaction endpoints → Transaction service: dispatches transactions
- User investments → Investment service: dispatches requests
