How a2le/enviro365-withdrawal-management works
Enviro365 is a portfolio and withdrawal application: the dashboard loads an investor portfolio and withdrawal history, then supports submitting withdrawals, refreshing balances/history, and exporting statements. The frontend calls a Spring Boot API; the API separates controllers, business services, repositories, and JPA domain entities. The README documents portfolio viewing, rule validation, balance updates, history, and investor-filtered CSV export. Core frontend/API calls and withdrawal persistence are supported by excerpts; some capability links rely on README documentation because their implementation was not sampled.
Main entry points: Dashboard.jsx Dashboard · withdrawalService.js API client service · WithdrawalService.java Withdrawal service · InvestorRepository.java Investor repository
Components 20
Withdrawal UI
- Dashboard
enviro365-withdrawal-ui/src/pages/Dashboard.jsx - Portfolio card
enviro365-withdrawal-ui/src/components/PortfolioCard.jsx - Withdrawal form
enviro365-withdrawal-ui/src/components/WithdrawalForm.jsx - Withdrawal history
enviro365-withdrawal-ui/src/components/WithdrawalHistory.jsx - CSV export
enviro365-withdrawal-ui/src/components/CsvExportButton.jsx - API client service
enviro365-withdrawal-ui/src/services/withdrawalService.js - HTTP client
enviro365-withdrawal-ui/src/api/axios.js
API endpoints
- Investor endpoint
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/controller/InvestorController.java - Withdrawal endpoints
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/controller/WithdrawalController.java - API error handling
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/exception/GlobalExceptionHandler.java
Business services
- Portfolio service
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/service/InvestorService.java - Withdrawal service
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/service/WithdrawalService.java - Investor repository
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/repository/InvestorRepository.java - Product repository
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/repository/ProductRepository.java - Withdrawal repository
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/repository/WithdrawalRepository.java
Portfolio domain
- Investor record
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/entity/Investor.java - Product and balance
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/entity/Product.java - Withdrawal record
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/entity/Withdrawal.java - H2 database
giftntintiliapi/src/main/resources/application.properties
Other components
- Investor
Connections 23
- Investor → Dashboard: uses dashboard
README.md - Dashboard → API client service: loads data
enviro365-withdrawal-ui/src/pages/Dashboard.jsx - Dashboard → Portfolio card: renders portfolio
enviro365-withdrawal-ui/src/pages/Dashboard.jsx - Dashboard → Withdrawal form: renders form
enviro365-withdrawal-ui/src/pages/Dashboard.jsx - Dashboard → Withdrawal history: renders history
enviro365-withdrawal-ui/src/pages/Dashboard.jsx - Dashboard → CSV export: renders export
enviro365-withdrawal-ui/src/pages/Dashboard.jsx - Withdrawal form → API client service: submits request
enviro365-withdrawal-ui/src/components/WithdrawalForm.jsx - CSV export → API client service: requests export
enviro365-withdrawal-ui/src/components/CsvExportButton.jsx - API client service → HTTP client: sends HTTP
enviro365-withdrawal-ui/src/services/withdrawalService.js - API client service → Investor endpoint: requests portfolio
README.md - API client service → Withdrawal endpoints: requests withdrawals
README.md - Investor endpoint → Portfolio service: delegates portfolio
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/controller/InvestorController.java - Withdrawal endpoints → Withdrawal service: delegates operations
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/controller/WithdrawalController.java - Portfolio service → Investor repository: loads investor
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/service/InvestorService.java - Withdrawal service → Product repository: loads and saves product
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/service/WithdrawalService.java - Withdrawal service → Withdrawal repository: stores and lists
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/service/WithdrawalService.java - Investor repository → Investor record: persists
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/repository/InvestorRepository.java - Product repository → Product and balance: persists
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/repository/ProductRepository.java - Withdrawal repository → Withdrawal record: persists
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/repository/WithdrawalRepository.java - Investor record → Product and balance: owns products
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/entity/Investor.java - Withdrawal record → Product and balance: references product
giftntintiliapi/src/main/java/com/enviro/assessment/junior/giftntintili/entity/Withdrawal.java - H2 database → Investor repository: stores records
README.md - Withdrawal service → API error handling: raises rule errors
README.md