How martyns254/duaratrust works
Duaratrust is a Spring Boot API for managing users and savings groups, including member records and group withdrawal requests governed by member approvals. The principal workflow is a member submitting a withdrawal, the service recording votes and applying the group’s approval threshold, then returning the updated request. Registration and login provide a separate authentication workflow; group creation and member creation are additional domain operations. Service-to-repository links and withdrawal approval decisions are supported by sampled source. The README is empty, and several security and domain modules were not sampled, so their internal wiring is not expanded.
Main entry points: WithdrawalService.java Withdrawal service · UserService.java User service · GroupRepository.java Group repository · UserController.java User API
Components 19
API
- User API
src/main/java/com/duaratrust/duaratrust/controller/UserController.java - Group API
src/main/java/com/duaratrust/duaratrust/controller/GroupController.java - Member API
src/main/java/com/duaratrust/duaratrust/controller/MemberController.java - Withdrawal API
src/main/java/com/duaratrust/duaratrust/controller/WithdrawalController.java
Group operations
- Group service
src/main/java/com/duaratrust/duaratrust/service/GroupService.java - Group repository
src/main/java/com/duaratrust/duaratrust/repository/GroupRepository.java - Member service
src/main/java/com/duaratrust/duaratrust/service/MemberService.java - Member repository
src/main/java/com/duaratrust/duaratrust/repository/MemberRepository.java
Withdrawal approvals
- Withdrawal service
src/main/java/com/duaratrust/duaratrust/service/WithdrawalService.java - Withdrawal repository
src/main/java/com/duaratrust/duaratrust/repository/WithdrawalRequestRepository.java - Approval repository
src/main/java/com/duaratrust/duaratrust/repository/ApprovalRepository.java
Identity and security
- User service
src/main/java/com/duaratrust/duaratrust/service/UserService.java - User repository
src/main/java/com/duaratrust/duaratrust/repository/UserRepository.java - JWT filter
src/main/java/com/duaratrust/duaratrust/config/JwtAuthFilter.java - JWT utility
src/main/java/com/duaratrust/duaratrust/config/JwtUtil.java - Security config
src/main/java/com/duaratrust/duaratrust/config/SecurityConfig.java
Other components
- Member
- Relational database
- Password encoder
Connections 21
- Member → User API: register or login
- Member → Group API: create group
- Member → Member API: create member
- Member → Withdrawal API: request or vote
- User API → User service: dispatches
- Group API → Group service: dispatches
- Member API → Member service: dispatches
- Withdrawal API → Withdrawal service: dispatches
- User service → User repository: reads and writes
- User service → Password encoder: encodes and checks
- User service → JWT utility: generates token
- Group service → Group repository: saves group
- Member service → Member repository: saves member
- Withdrawal service → Withdrawal repository: reads and writes requests
- Withdrawal service → Approval repository: checks and saves votes
- Withdrawal service → Group repository: reads threshold
- User repository → Relational database: persists users
- Group repository → Relational database: persists groups
- Member repository → Relational database: persists members
- Withdrawal repository → Relational database: persists requests
- Approval repository → Relational database: persists approvals