This is a mini Banking app API for the 3rd project submission in OpenIdea ProjectSprint initiated by @nandapagi.
This project repository includes:
- Banking app API
- Database Migration
- Prometheus & Grafana setup
- Go v1.22.1
- PostgreSQL
- Docker
-
Set Env Variables:
- DB_NAME
- DB_USERNAME
- DB_PASSWORD
- DB_HOST
- DB_PORT
- JWT_SECRET
- BCRYPT_SALT
- S3_ID
- S3_SECRET_KEY
- S3_BUCKET_NAME
- S3_REGION
- DB_PARAMS
-
Migrate database
Make migrateup
-
Run the API service
Make run
-
POST /v1/user/register
// Example request { "email": "email", "name": "namadepan namabelakang", "password": "" }
// Example response { "message": "User registered successfully" "data": { "email": "email@email.com", "name": "namadepan namabelakang", "accessToken": "qwertyuiopasdfghjklzxcvbnm" } }
-
POST /v1/user/login
// Example request { "email": "email", "password": "" }
// Example response { "message": "User logged successfully" "data": { "email": "email@email.com", "name": "namadepan namabelakang", "accessToken": "qwertyuiopasdfghjklzxcvbnm" } }
- POST /v1/balance
// Example request { "senderBankAccountNumber": "", "senderBankName": "", "addedBalance": 1, "currency":"USD", "transferProofImg": "" }
- GET /v1/balance
// Example response { "message": "success", "data": [ { "balance": 1, "currency": "USD" }, { "balance": 1, "currency": "IDR" }, ] }
- GET /v1/balance/history
// Example response { "message": "success", "data": [ { "transactionId":"", "balance":1, "currency":"", "transferProofImg": "", "createdAt": 1582605077000, "source": { "bankAccountNumber":"", "bankName":"" } } ], "meta": { "limit":10, "offset":0, "total":100 } }
- POST /v1/transaction
// Example request { "recipientBankAccountNumber": "", "recipientBankName": "", "fromCurrency":"", "balances":1 }
- POST /v1/image
// Example request { "message":"File uploaded sucessfully", "data" : { "imageUrl":"https://awss3.d87801e9-fcfc-42a8-963b-fe86d895b51a.jpeg" } }