How tebogomoremi/cloudspends works
CloudSpend is a cloud-spend tracking application. Users select and manage cloud accounts, register resources, record or review costs, and inspect account-level totals and breakdowns; dashboards summarize spend and resource counts, while budgets provide utilization and alert evaluation. The graph separates the React interface, API boundary, domain services, and persistence. Controller-to-service and service-to-repository links are shown where sampled code supports them; frontend API wiring and unsampled subsystems are represented cautiously from the tree, so some links are omitted.
Main entry points: App.jsx App routes · CloudAccountRepository.java Account repository · CostRecordService.java Cost analysis · CostAlertService.java Alert evaluation
Components 34
Web interface
- App routes
frontend/src/App.jsx - Accounts
frontend/src/pages/AccountsPage.jsx - Resources
frontend/src/pages/ResourcesPage.jsx - Costs
frontend/src/pages/CostsPage.jsx - Overview
frontend/src/pages/OverviewPage.jsx - Budgets
frontend/src/pages/BudgetsPage.jsx - Alerts
frontend/src/pages/AlertsPage.jsx - Account context
frontend/src/context/AccountContext.jsx - Account API
frontend/src/services/accountApi.js - Resource API
frontend/src/services/resourceApi.js - Cost API
frontend/src/services/costApi.js - Dashboard API
frontend/src/services/dashboardApi.js - Budget API
frontend/src/services/budgetApi.js - Alert API
frontend/src/services/alertApi.js
HTTP API
- Account endpoints
backend/src/main/java/com/tebogo/cloudspend_api/controller/CloudAccountController.java - Resource endpoints
backend/src/main/java/com/tebogo/cloudspend_api/controller/CloudResourceController.java - Cost endpoints
backend/src/main/java/com/tebogo/cloudspend_api/controller/CostRecordController.java - Account cost endpoints
backend/src/main/java/com/tebogo/cloudspend_api/controller/AccountCostController.java - Dashboard endpoints
backend/src/main/java/com/tebogo/cloudspend_api/controller/DashboardController.java - Budget endpoints
backend/src/main/java/com/tebogo/cloudspend_api/controller/BudgetController.java - Alert endpoints
backend/src/main/java/com/tebogo/cloudspend_api/controller/CostAlertController.java
Spend services
- Account management
backend/src/main/java/com/tebogo/cloudspend_api/service/CloudAccountService.java - Resource management
backend/src/main/java/com/tebogo/cloudspend_api/service/CloudResourceService.java - Cost analysis
backend/src/main/java/com/tebogo/cloudspend_api/service/CostRecordService.java - Dashboard summary
backend/src/main/java/com/tebogo/cloudspend_api/service/DashboardService.java - Budget utilization
backend/src/main/java/com/tebogo/cloudspend_api/service/BudgetService.java - Alert evaluation
backend/src/main/java/com/tebogo/cloudspend_api/service/CostAlertService.java
Persistence
- Account repository
backend/src/main/java/com/tebogo/cloudspend_api/repository/CloudAccountRepository.java - Resource repository
backend/src/main/java/com/tebogo/cloudspend_api/repository/CloudResourceRepository.java - Cost repository
backend/src/main/java/com/tebogo/cloudspend_api/repository/CostRecordRepository.java - Budget repository
backend/src/main/java/com/tebogo/cloudspend_api/repository/BudgetRepository.java - Alert repository
backend/src/main/java/com/tebogo/cloudspend_api/repository/CostAlertRepository.java
Other components
- User
- Relational store
Connections 48
- User → App routes: uses
- App routes → Accounts: routes
- App routes → Resources: routes
- App routes → Costs: routes
- App routes → Overview: routes
- App routes → Budgets: routes
- App routes → Alerts: routes
- App routes → Account context: provides
- Accounts → Account API: requests
- Resources → Resource API: requests
- Costs → Cost API: requests
- Overview → Dashboard API: requests
- Budgets → Budget API: requests
- Alerts → Alert API: requests
- Account API → Account endpoints: HTTP requests
- Resource API → Resource endpoints: HTTP requests
- Cost API → Cost endpoints: HTTP requests
- Cost API → Account cost endpoints: HTTP requests
- Dashboard API → Dashboard endpoints: HTTP requests
- Budget API → Budget endpoints: HTTP requests
- Alert API → Alert endpoints: HTTP requests
- Resource endpoints → Resource management: calls
- Cost endpoints → Cost analysis: calls
- Account cost endpoints → Cost analysis: calls
- Dashboard endpoints → Dashboard summary: calls
- Budget endpoints → Budget utilization: calls
- Alert endpoints → Alert evaluation: calls
- Account endpoints → Account management: calls
- Dashboard summary → Cost analysis: calls
- Resource management → Account repository: reads
- Resource management → Resource repository: reads/writes
- Resource management → Cost repository: queries
- Cost analysis → Account repository: validates
- Cost analysis → Resource repository: reads
- Cost analysis → Cost repository: queries/writes
- Budget utilization → Account repository: validates
- Budget utilization → Budget repository: reads/writes
- Budget utilization → Cost repository: reads
- Alert evaluation → Account repository: validates
- Alert evaluation → Budget repository: reads
- Alert evaluation → Cost repository: reads
- Alert evaluation → Alert repository: reads/writes
- Dashboard summary → Account repository: validates
- Dashboard summary → Resource repository: counts
- Account management → Account repository: reads/writes
- Account repository → Relational store: persists
- Resource repository → Relational store: persists
- Cost repository → Relational store: persists