src/main/kotlin/com.example.miniBank is where all the packages are
authentication = for jwt authentication to provide security
dtos ←→ controller → service → repository → entity
controller = entry point for http requests (receive requests, process data, determine response)
GET: retrieve data from a serverPOST: send data to the server to create a new resourcePUT: update or replace an existing resourceDELETE: remove a resource from the server
service = business logic (processes data, makes decisions, eg: transferring funds)
repository = database operations (handles communication with db: save, find, delete)
entity = domain model (defines what your data is in the system: fields, relationships)
dto = data transfer object (cleans request/response json bodies, to avoid returning entities)
- one user, one kyc (know your customer)
- one user, many accounts
- one account, many transactions
- register user (username & password)
- log in
- create or update kyc info
- get user kyc info
- create new/multiple accounts
- list accounts
- transfer money to other account
- close account
- spring boot setup
- define structure
- database setup
- entities
- repositories
- services
- controllers
- test in postman
- ALL DONE!!!!!!!
- as a user, i can log in and get jwt token
- as a developer, i can test:
- user registration endpoint
- multiple account creation
- reading a list of accounts
- user create profile
- user update profile
- user read profile
- closing a user account
- transferring money to another account
- foreign keys =
user_id int references users(id) - no
TransactionControllerorKycControllerneeded, nor service (because user will only interact with/usersand/accounts)