BNMO is a Web Application which has bank integration features such as transfer and request money. Not only customer, BNMO is also used by Bank's Admin in order to monitor all transaction by customer.
- Primanda Adyatma Hafiz (13520022)
- Clone this repository
- Install npm
- Run
npm installcommand inside repository folder - Server is started on http://localhost:8081/
- Clone this repository
- Run
docker-compose buildcommand inside repository folder - Server is started on docker image
You can request the api on https://api-bnmo.herokuapp.com/
- Design Pattern Composite
Composite pattern is used when an object is consisted of some simpler object and that simpler object is consisted of way simpler object and so on. In this case, I use this pattern to represent Customer object because it consists of multiple transactions that it already did - Design Pattern Builder
Builder pattern is used when building complex object using simpler object and using step by step approach. In this case, I use this pattern when building Customer objects by adding request and transfer transactions to them.
- google-cloud storage (v6.2.3)
- bcrypt (v5.0.1)
- express (v4.18.1)
- express-session (v1.17.3)
- node-schedule (v2.1.0)
- nodemon (v2.0.19)
- pg (v8.7.3)
- sequelize (v6.2.13)
You can run the server on local with CLI or access deployed server on https://api-bnmo.herokuapp.com/. Firstly, to make request on the api you can register your account and then login.
| Endpoint | Description |
| /api/register (POST) | Registration Customer Endpoint |
| /api/login (POST) | Login Endpoint |
| /api/logout (POST) | Logout Endpoint |
| /api/currency (GET) | Currencies Available |
| /api/request (POST) | Request Transaction Endpoint |
| /api/transfer (POST) | Transfer Transaction Endpoint |
| /api/history (GET) | History Transaction of Customer Endpoint |
| /api/admin/verify-registration (GET) | Unverified Customer Registration List |
| /api/admin/verify-registration/accept/:username (PUT) | Accept Registration Endpoint |
| /api/admin/verify-registration/decline/:username (PUT) | Decline Registration Endpoint |
| /api/admin/verify-request (GET) | Unverified Customer Request List |
| /api/admin/verify-request/accept/:idrequest (PUT) | Accept Request Endpoint |
| /api/admin/verify-request/decline/:idrequest (PUT) | Decline Request Endpoint |
| /api/profile (GET) | Customer's Profile Endpoint |
| /api/search (GET) | Admin's Search Customer Endpoint |
| /api/profile/:username (GET) | Detail Admin's Search Customer Endpoint |
| /api/isAdmin (GET) | Check If Current User Is Admin |
| /api/isCustomer (GET) | Check If Current User Is Customer |