Create a server that:
- allows admin
- to register Users
- to create wallets
- to manage Users authentication
- allows Users
- to manage wallets
- to open wallets
- to close wallets
- to make transfers
- to make deposits/withdrawals
- to get Transaction history
- Admin
- User
- Wallet
- Transaction
- UserId
- UserName *firstName *lastName
- password
- wallets
- walletId
- currencyName
- userId
- amount
- type: “deposit” | “withdrawal” | “transfer”
- details: Deposit | Withdrawal | Transfer
- depositId (string)
- destination -> walletId
- dateOfTransaction
- amount
- withdrawId (string)
- source -> walletId
- dateOfTransaction
- amount
- transferId (string)
- walletId(sender) -> walletId(receiver)
- dateOfTransaction
- amount ........................................................................................................................................................................................................................................
- RESTFUL-API *** PUT GET POST DELETE
-
POST /auth/users Request email: string; password: string; Response status: string; data: Object token: string;
-
POST /auth/users/login Request email: string; password: string; Response status: string; data: Object token: string;
-
POST /wallets Request currency: string; Response status: string; data: Wallet;
-
GET /wallets Response status: string; data: Wallet[];
-
GET /wallets/:id Response status: string; data: Wallet;
DELETE /wallets/:id Response status: string;
-
POST /wallets/:id/deposits Request amount: number; Response status: string; data: Wallet;
-
GET /wallets/:id/deposits Response status: string; data: Deposit[];
-
GET /wallets/:wallet_id/deposits/:id Response status: string; data: Deposit;
-
POST /wallets/:id/withdrawals Request amount: number; Response status: string; data: Wallet;
-
GET /wallets/:id/withdrawals Response status: string; data: Withdrawal[];
-
GET /wallets/:wallet_id/withdrawals/:id Response status: string; data: Withdrawal;
-
POST /wallets/:id/transfers Request destination: Wallets.id; Response status: string; data: Wallet;
-
GET /wallets/:id/transfers Response status: string; data: Transfer[];
-
GET /wallets/:wallet_id/transfers/:id Response status: string; data: Transfer;
-
GET /wallets/:wallet_id/transactions Response status: string; data: Transaction;
-
GET /wallets/:wallet_id/transactions/download Response: should initiate a file download
- Users can download their transaction history as a PDF.
- API DOCUMENTATION