How prakhar1608/alm-system works
This is a Spring Boot asset-liability management system. An authenticated user uses the JavaScript UI to view portfolio dashboards, manage assets and liabilities, create and run rate-shock scenarios, inspect risk reports, and administer users according to role. Requests pass through REST controllers into transactional services, which apply portfolio and scenario rules, invoke risk calculations, and use DAOs for persistence. The sampled source confirms these main paths; unsampled controller and DAO internals are represented from the documented layered design.
Components 20
User Experience
- ALM Web UI
src/main/resources/static/js/app.js
API and Access
- Security Configuration
src/main/java/com/alm/config/SecurityConfig.java - User Authentication
src/main/java/com/alm/config/DatabaseUserDetailsService.java - Portfolio API
src/main/java/com/alm/api/PortfolioController.java - Scenario API
src/main/java/com/alm/api/ScenarioController.java - Report API
src/main/java/com/alm/api/ReportController.java - Session API
src/main/java/com/alm/api/SessionController.java - User Admin API
src/main/java/com/alm/api/UserAdminController.java
Portfolio Operations
- Asset Service
src/main/java/com/alm/service/AssetService.java - Liability Service
src/main/java/com/alm/service/LiabilityService.java - Dashboard Service
src/main/java/com/alm/service/DashboardService.java
Analysis and Reporting
- Scenario Service
src/main/java/com/alm/service/ScenarioService.java - Risk Calculator
src/main/java/com/alm/service/RiskCalculator.java - Report Service
src/main/java/com/alm/service/ReportService.java
Persistence Layer
- Asset DAO
src/main/java/com/alm/dao/AssetDao.java - Liability DAO
src/main/java/com/alm/dao/LiabilityDao.java - Scenario DAO
src/main/java/com/alm/dao/ScenarioDao.java - Report DAO
src/main/java/com/alm/dao/PortfolioReportDao.java
Other components
- Authenticated User
- Oracle or H2 Database
Connections 30
- Authenticated User → ALM Web UI: uses
- ALM Web UI → Session API: starts session
- ALM Web UI → Portfolio API: manages positions
- ALM Web UI → Scenario API: runs scenarios
- ALM Web UI → Report API: views reports
- ALM Web UI → User Admin API: manages users
- Security Configuration → User Authentication: loads users
- User Authentication → Oracle or H2 Database: reads credentials
- Portfolio API → Dashboard Service: gets dashboard
- Portfolio API → Asset Service: manages assets
- Portfolio API → Liability Service: manages liabilities
- Scenario API → Scenario Service: manages scenarios
- Report API → Report Service: gets risk report
- Session API → Security Configuration: reads authentication
- User Admin API → Oracle or H2 Database: administers users
- Asset Service → Asset DAO: persists assets
- Liability Service → Liability DAO: persists liabilities
- Dashboard Service → Asset DAO: totals assets
- Dashboard Service → Liability DAO: totals liabilities
- Dashboard Service → Scenario DAO: reads scenarios
- Scenario Service → Scenario DAO: persists scenarios
- Scenario Service → Asset DAO: reads active assets
- Scenario Service → Liability DAO: reads active liabilities
- Scenario Service → Risk Calculator: calculates impact
- Report Service → Scenario DAO: reads results
- Report Service → Report DAO: reads portfolio totals
- Asset DAO → Oracle or H2 Database: reads and writes
- Liability DAO → Oracle or H2 Database: reads and writes
- Scenario DAO → Oracle or H2 Database: reads and writes
- Report DAO → Oracle or H2 Database: reads totals