How asimansari-git/bankpro works
BankPro is a web-based banking management system for customers, staff, and admins. Its main customer journey verifies an email by OTP, submits an application for staff review, creates a customer after approval, opens an account, then supports deposits, withdrawals, transfers, and transaction history. Staff also handles application decisions and banking operations; admins manage staff and credentials. The graph reflects documented capabilities and sampled service wiring. Several frontend screens and backend routes are represented from the README and tree, since their source was not sampled.
Main entry points: CentralizedService.java Shared banking operations · UserController.java User endpoints · UserService.java Customer operations · EmailService.java Email and OTP
Components 24
Web clients
- Registration and OTP
Front-end/Registrationform.js - Customer banking UI
Front-end/User/Accountdetail.js - Staff operations UI
Front-end/Staff/staffApplication.js
REST API
- Admin endpoints
Backend Rest API/src/main/java/com/screenprog/application/controller/AdminController.java - Staff endpoints
Backend Rest API/src/main/java/com/screenprog/application/controller/StaffController.java - User endpoints
Backend Rest API/src/main/java/com/screenprog/application/controller/UserController.java
Banking services
- Application review
Backend Rest API/src/main/java/com/screenprog/application/service/ApplicationsService.java - Customer operations
Backend Rest API/src/main/java/com/screenprog/application/service/UserService.java - Shared banking operations
Backend Rest API/src/main/java/com/screenprog/application/service/CentralizedService.java
Persistence
- Applications repository
Backend Rest API/src/main/java/com/screenprog/application/repo/ApplicationsRepository.java - Customer repository
Backend Rest API/src/main/java/com/screenprog/application/repo/CustomerRepository.java - Account repository
Backend Rest API/src/main/java/com/screenprog/application/repo/AccountRepository.java - Transaction repository
Backend Rest API/src/main/java/com/screenprog/application/repo/TransactionsRepository.java - User repository
Backend Rest API/src/main/java/com/screenprog/application/repo/UsersRepository.java
Identity and email
- Email and OTP
Backend Rest API/src/main/java/com/screenprog/application/email_service/EmailService.java - OTP store
Backend Rest API/src/main/java/com/screenprog/application/email_service/OtpService.java - JWT authentication
Backend Rest API/src/main/java/com/screenprog/application/service/JsonWebTokenService.java - JWT request filter
Backend Rest API/src/main/java/com/screenprog/application/config/JWTFilter.java - User lookup
Backend Rest API/src/main/java/com/screenprog/application/service/MyUserDetailsService.java
Other components
- Customer
- Staff
- Admin
- PostgreSQL
- Mail service
Connections 42
- Customer → Registration and OTP: submits application
- Registration and OTP → User endpoints: sends registration
- User endpoints → Customer operations: handles application
- Customer operations → Applications repository: saves application
- Customer operations → Email and OTP: requests confirmation
- User endpoints → Email and OTP: requests OTP
- Email and OTP → OTP store: generates OTP
- Email and OTP → Mail service: sends message
- User endpoints → OTP store: verifies OTP
- Staff → Staff operations UI: reviews applications
- Staff operations UI → Staff endpoints: submits decisions
- Staff endpoints → Application review: updates applications
- Staff endpoints → Application review: fetches pending
- Application review → Applications repository: reads and saves
- Application review → Customer repository: registers customer
- Application review → User repository: saves credentials
- Application review → Email and OTP: notifies applicant
- Customer → Customer banking UI: uses banking features
- Customer banking UI → User endpoints: calls banking endpoints
- User endpoints → Customer operations: handles banking request
- Customer operations → Account repository: reads and saves accounts
- Customer operations → Transaction repository: records transactions
- Customer operations → Email and OTP: sends account notice
- Staff → Staff operations UI: manages banking
- Staff operations UI → Staff endpoints: calls staff endpoints
- Staff endpoints → Shared banking operations: handles staff operations
- Shared banking operations → Customer repository: reads and saves customers
- Shared banking operations → Account repository: reads and saves accounts
- Shared banking operations → Transaction repository: reads and saves transactions
- Admin → Admin endpoints: manages access
- Admin endpoints → Shared banking operations: handles admin operations
- Shared banking operations → User repository: reads and saves users
- Applications repository → PostgreSQL: persists applications
- Customer repository → PostgreSQL: persists customers
- Account repository → PostgreSQL: persists accounts
- Transaction repository → PostgreSQL: persists transactions
- User repository → PostgreSQL: persists users
- JWT request filter → JWT authentication: validates token
- JWT request filter → User lookup: loads principal
- User lookup → User repository: loads user
- User endpoints → Shared banking operations: handles password recovery
- Shared banking operations → Email and OTP: sends recovery OTP