Banka is a light-weight core banking application that powers banking operations like account creation, customer deposit and withdrawals. This app is meant to support a single bank, where users can signup and create bank accounts online, but must visit the branch to withdraw or deposit money.
- A user (client) can sign up
- A user (client) can login
- A user (client) can create an account
- A user (client) can view account transaction history
- A user (client) can view a specific account transaction
- A staff (cashier) can debit user (client) account
- A staff (cashier) can credit user (client) account
- An admin/staff can view all user accounts
- An admin/staff can view a specific user account
- An admin/staff can activate or deactivate an account
- An admin/staff can delete a specific user account
- An admin can create staff and admin user accounts
Tools:
- Node.js 10.15.3
- NPM 6.4.1
Clone the repository into your machine
git clone https://github.com/mifeille/banka.git
Install dependencies
npm install
Start the server
npm start
Run Tests
npm test
Verb | Endpoint | Description |
---|---|---|
POST | /api/v1/auth/signup | Create a client |
POST | /api/v1/auth/signin | Sign in a client |
POST | /api/v1/accounts | Create a Bank account |
PATCH | /api/v1/accounts/account-number | Activate or deactivate a Bank account |
DELETE | /api/v1/accounts/account-number | Delete a specific Bank account |
POST | /api/v1/transactions/account-number/debit | Debit a Bank account |
POST | /api/v1/transactions/account-number/credit | Credit a Bank account |
Verb | Endpoint | Description |
---|---|---|
POST | /api/v2/auth/signup | Create a client |
POST | /api/v2/auth/signin | Sign in a client |
POST | /api/v2/accounts | Create a Bank account |
PATCH | /api/v2/accounts/account-number | Activate or deactivate a Bank account |
DELETE | /api/v2/accounts/account-number | Delete a specific Bank account |
POST | /api/v2/transactions/account-number/debit | Debit a Bank account |
POST | /api/v2/transactions/account-number/credit | Credit a Bank account |
GET | /api/v2/accounts/account-number/transactions | View an account’s transaction history |
GET | /api/v2/transactions/transaction-id | View a specific transaction |
GET | /api/v2/user/user-email-address/accounts | View all accounts owned by a specific user (client) |
GET | /api/v2/accounts/account-number | View a specific account’s details |
GET | /api/v2/accounts | View a list of all bank accounts |
GET | /api/v2/accounts?status=active | View a list of all active bank accounts |
GET | /api/v2/accounts?status=dormant | View a list of all dormant bank accounts |
GET | /api/v2/accounts?status=draft | View a list of all draft bank accounts |
GET | /api/v2/notifications | View notifications about transactions |