How ashlyvuba/bank4z works
Bank4Z is a South African digital-banking app with a Flutter client and Spring backend. The principal implemented flow covers registration/login, account creation, JWT-based authentication, and retrieval of account and transaction history. The README also describes fraud detection, event-driven notifications, and a payment-rail integration, but the tree identifies the fraud and notification services as empty/planned; the sampled source does not show transaction initiation or event dispatch. Those capabilities are therefore not represented as wired runtime components.
Main entry points: AuthService.java Auth service · AccountController.java Account API · UserRepository.java User repository · AccountService.java Account service
Components 14
Mobile client
- App screens
mobile-app/lib/screens - App services
mobile-app/lib/services
API and security
- Auth API
src/main/java/com/bank4z/backend/authservice/AuthController.java - Account API
src/main/java/com/bank4z/backend/accountservice/AccountController.java - JWT filter
src/main/java/com/bank4z/backend/common/security/JwtAuthenticationFilter.java
Identity
- JWT service
src/main/java/com/bank4z/backend/common/security/JwtService.java - Auth service
src/main/java/com/bank4z/backend/authservice/AuthService.java - User details
src/main/java/com/bank4z/backend/authservice/CustomUserDetailsService.java - User repository
src/main/java/com/bank4z/backend/authservice/UserRepository.java
Accounts and history
- Account service
src/main/java/com/bank4z/backend/accountservice/AccountService.java - Account repository
src/main/java/com/bank4z/backend/accountservice/AccountRepository.java - Transaction repository
src/main/java/com/bank4z/backend/accountservice/TransactionRepository.java
Other components
- Customer
- Relational database
src/main/resources/db/migration/V1__init_schema.sql
Connections 16
- Customer → App screens: uses
- App services → Auth API: calls API
- App services → Account API: calls API
- Auth API → Auth service: invokes
- Account API → Account service: invokes
- Account API → Transaction repository: queries
- Auth service → User repository: reads and saves
- Auth service → Account service: creates account
- Auth service → JWT service: issues tokens
- JWT filter → JWT service: validates token
- JWT filter → User details: loads user
- User details → User repository: looks up user
- Account service → Account repository: reads and saves
- User repository → Relational database: persists users
- Account repository → Relational database: persists accounts
- Transaction repository → Relational database: reads transactions