How aryandevcodes/double-ledger-banking-system works
Double Ledger is a full-stack banking platform: users work through role-aware React dashboards, which call Spring APIs for account management and financial operations. The principal money-movement path is request handling, transaction processing, and double-entry ledger posting, with balances derived from ledger entries. Other major capabilities include UPI payments, cards, loans, statements, authentication, security, audit, notifications, webhooks, and card-event streaming. The README documents these capabilities; sampled source verifies selected service behavior, while wiring for unsampled modules is represented only where documented.
Main entry points: controller REST controllers · transaction Transaction processing · pages React dashboards · AuthService.java Authentication service
Components 22
Web client
- React dashboards
bank-frontend/src/pages - API client
bank-frontend/src/lib/api-client.ts - Login and profile
bank-frontend/src/contexts/AuthContext.tsx
API and identity
- REST controllers
bank-backend/src/main/java/com/bank/controller - Authentication service
bank-backend/src/main/java/com/bank/service/auth/AuthService.java - JWT and access control
bank-backend/src/main/java/com/bank/security
Financial operations
- Transaction processing
bank-backend/src/main/java/com/bank/service/transaction - Double-entry ledger writer
bank-backend/src/main/java/com/bank/ledger - UPI payments
bank-backend/src/main/java/com/bank/service/upi
Banking products
- Account and customer services
bank-backend/src/main/java/com/bank/service/account - Composite banking
bank-backend/src/main/java/com/bank/service/composite/CompositeBankingService.java - Cards and credit plans
bank-backend/src/main/java/com/bank/service/card - Loans and EMI
bank-backend/src/main/java/com/bank/controller/LoanController.java - Account statements
bank-backend/src/main/java/com/bank/service/statement/AccountStatementService.java
Security and events
- Audit logging
bank-backend/src/main/java/com/bank/service/audit - Sessions and access logs
bank-backend/src/main/java/com/bank/service/security - Notifications and email
bank-backend/src/main/java/com/bank/service/notification - Payment webhooks
bank-backend/src/main/java/com/bank/service/webhook - Card event stream
bank-backend/src/main/java/com/bank/service/event/CardEventService.java
Other components
- Banking user
- PostgreSQL
- Mail transport
Connections 30
- Banking user → React dashboards: uses
- React dashboards → Login and profile: authenticates
- React dashboards → API client: requests
- Login and profile → API client: sends credentials
- API client → REST controllers: calls APIs
- REST controllers → Authentication service: delegates auth
- REST controllers → Account and customer services: delegates account work
- REST controllers → Transaction processing: submits transactions
- REST controllers → UPI payments: submits UPI
- REST controllers → Composite banking: requests summaries
- REST controllers → Cards and credit plans: manages cards
- REST controllers → Loans and EMI: manages loans
- REST controllers → Account statements: requests statements
- REST controllers → Audit logging: requests audit logs
- REST controllers → Sessions and access logs: manages sessions
- Transaction processing → Double-entry ledger writer: posts entries
- UPI payments → Transaction processing: executes payment
- Composite banking → Transaction processing: reads transactions
- Composite banking → Double-entry ledger writer: reads balances
- Account statements → PostgreSQL: reads accounts and transactions
- Transaction processing → PostgreSQL: persists transaction data
- Double-entry ledger writer → PostgreSQL: writes ledger entries
- Authentication service → JWT and access control: issues tokens
- Authentication service → PostgreSQL: reads and updates users
- Account and customer services → PostgreSQL: persists account data
- Audit logging → PostgreSQL: stores audit logs
- Sessions and access logs → PostgreSQL: stores access records
- Notifications and email → Mail transport: sends email
- REST controllers → Card event stream: serves card events
- REST controllers → Payment webhooks: manages subscriptions