# saraswathi-13/sdpproject-ansible architecture

> Architecture diagram of the GitHub repository saraswathi-13/sdpproject-ansible, 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/saraswathi-13/sdpproject-ansible
- Repository: https://github.com/saraswathi-13/sdpproject-ansible

## Overview

Budget Planner is a web application for user and admin account access, recording income and expenses, setting category budgets, and reviewing financial analysis and reports. The frontend routes users to protected feature screens; the Spring backend exposes corresponding REST endpoints. In sampled code, controllers delegate to services, and report export converts a generated report into an Excel download. The tree documents additional alert, category, retailer, transaction, and notification capabilities, but their wiring is not established by the sampled source, so uncertain links are omitted.

Main entry points: [`budgetplannerfrontend/src/App.jsx`](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/App.jsx) (Route application), [`budgetplannerbackend/src/main/java/com/bps/controller/ReportController.java`](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/ReportController.java) (Report API), [`budgetplannerbackend/src/main/java/com/bps/controller/UserController.java`](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/UserController.java) (User API), [`budgetplannerbackend/src/main/java/com/bps/controller/AdminController.java`](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/AdminController.java) (Admin API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_app["Route application<br/>[App.jsx]"]
  node_user_screens["User feature screens"]
  node_admin_screens["Admin screens"]
end

subgraph group_accounts["Accounts and access"]
  node_user_api["User API"]
  node_admin_api["Admin API"]
  node_user_service["User service<br/>[UserService.java]"]
  node_admin_service["Admin service<br/>[AdminService.java]"]
end

subgraph group_finances["Budgeting and transactions"]
  node_expense_ui["Expense screen<br/>[Expense.jsx]"]
  node_income_ui["Income screen<br/>[Income.jsx]"]
  node_budgets_ui["Budget screen<br/>[Budgets.jsx]"]
  node_expense_api["Expense API"]
  node_income_api["Income API"]
  node_budget_api["Budget goal API"]
  node_budget_service["Budget goal service"]
  node_other_features["Other finance features"]
end

subgraph group_insights["Analysis and reporting"]
  node_analysis_ui["Analysis screen<br/>[Analysis.jsx]"]
  node_reports_ui["Report screens<br/>[Reports.jsx]"]
  node_report_api["Report API"]
  node_report_service["Report service<br/>[ReportService.java]"]
  node_excel_export["Excel exporter"]
end

subgraph group_persistence["Domain and persistence"]
  node_entities["Domain entities"]
  node_repositories[("JPA repositories")]
end

node_user(("User"))
node_admin_actor(("Administrator"))

node_user -->|"opens"| node_app
node_admin_actor -->|"opens"| node_app
node_app -->|"routes"| node_user_screens
node_app -->|"routes"| node_admin_screens
node_user_api -->|"calls"| node_user_service
node_admin_api -->|"calls"| node_admin_service
node_budget_api -->|"calls"| node_budget_service
node_report_api -->|"calls"| node_report_service
node_report_api -->|"exports with"| node_excel_export

click node_app "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/App.jsx"
click node_user_screens "https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerfrontend/src/user"
click node_admin_screens "https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerfrontend/src/admin"
click node_user_api "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/UserController.java"
click node_admin_api "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/AdminController.java"
click node_user_service "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/UserService.java"
click node_admin_service "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/AdminService.java"
click node_expense_ui "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Expense.jsx"
click node_income_ui "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Income.jsx"
click node_budgets_ui "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Budgets.jsx"
click node_expense_api "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/ExpenseController.java"
click node_income_api "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/IncomeController.java"
click node_budget_api "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/BudgetGoalController.java"
click node_budget_service "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/BudgetGoalService.java"
click node_analysis_ui "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Analysis.jsx"
click node_reports_ui "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Reports.jsx"
click node_report_api "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/ReportController.java"
click node_report_service "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/ReportService.java"
click node_excel_export "https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/ExcelExportService.java"
click node_other_features "https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerbackend/src/main/java/com/bps/controller"
click node_entities "https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerbackend/src/main/java/com/bps/model"
click node_repositories "https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerbackend/src/main/java/com/bps/repository"

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_user_screens,node_admin_screens,node_user toneBlue
class node_user_api,node_admin_api,node_user_service,node_admin_service toneAmber
class node_expense_ui,node_income_ui,node_budgets_ui,node_expense_api,node_income_api,node_budget_api,node_budget_service,node_other_features toneMint
class node_analysis_ui,node_reports_ui,node_report_api,node_report_service,node_excel_export toneRose
class node_entities,node_repositories,node_admin_actor toneIndigo
```

## Components

### Web application

- [Route application](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/App.jsx): `budgetplannerfrontend/src/App.jsx`
- [User feature screens](https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerfrontend/src/user): `budgetplannerfrontend/src/user`
- [Admin screens](https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerfrontend/src/admin): `budgetplannerfrontend/src/admin`

### Accounts and access

- [User API](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/UserController.java): `budgetplannerbackend/src/main/java/com/bps/controller/UserController.java`
- [Admin API](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/AdminController.java): `budgetplannerbackend/src/main/java/com/bps/controller/AdminController.java`
- [User service](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/UserService.java): `budgetplannerbackend/src/main/java/com/bps/service/UserService.java`
- [Admin service](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/AdminService.java): `budgetplannerbackend/src/main/java/com/bps/service/AdminService.java`

### Budgeting and transactions

- [Expense screen](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Expense.jsx): `budgetplannerfrontend/src/user/Expense.jsx`
- [Income screen](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Income.jsx): `budgetplannerfrontend/src/user/Income.jsx`
- [Budget screen](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Budgets.jsx): `budgetplannerfrontend/src/user/Budgets.jsx`
- [Expense API](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/ExpenseController.java): `budgetplannerbackend/src/main/java/com/bps/controller/ExpenseController.java`
- [Income API](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/IncomeController.java): `budgetplannerbackend/src/main/java/com/bps/controller/IncomeController.java`
- [Budget goal API](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/BudgetGoalController.java): `budgetplannerbackend/src/main/java/com/bps/controller/BudgetGoalController.java`
- [Budget goal service](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/BudgetGoalService.java): `budgetplannerbackend/src/main/java/com/bps/service/BudgetGoalService.java`
- [Other finance features](https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerbackend/src/main/java/com/bps/controller): `budgetplannerbackend/src/main/java/com/bps/controller`

### Analysis and reporting

- [Analysis screen](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Analysis.jsx): `budgetplannerfrontend/src/user/Analysis.jsx`
- [Report screens](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerfrontend/src/user/Reports.jsx): `budgetplannerfrontend/src/user/Reports.jsx`
- [Report API](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/controller/ReportController.java): `budgetplannerbackend/src/main/java/com/bps/controller/ReportController.java`
- [Report service](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/ReportService.java): `budgetplannerbackend/src/main/java/com/bps/service/ReportService.java`
- [Excel exporter](https://github.com/saraswathi-13/sdpproject-ansible/blob/main/budgetplannerbackend/src/main/java/com/bps/service/ExcelExportService.java): `budgetplannerbackend/src/main/java/com/bps/service/ExcelExportService.java`

### Domain and persistence

- [Domain entities](https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerbackend/src/main/java/com/bps/model): `budgetplannerbackend/src/main/java/com/bps/model`
- [JPA repositories](https://github.com/saraswathi-13/sdpproject-ansible/tree/main/budgetplannerbackend/src/main/java/com/bps/repository): `budgetplannerbackend/src/main/java/com/bps/repository`

### Other components

- **User**
- **Administrator**

## Connections

- User → Route application: opens
- Administrator → Route application: opens
- Route application → User feature screens: routes
- Route application → Admin screens: routes
- User API → User service: calls
- Admin API → Admin service: calls
- Budget goal API → Budget goal service: calls
- Report API → Report service: calls
- Report API → Excel exporter: exports with
