Skip to content

lbexp/openidea-banking

Repository files navigation

openidea-banking

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

Requirements

  • Go v1.22.1
  • PostgreSQL
  • Docker

Installation

How to run locally (dev mode)

  • 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
    

List of APIs

Authentication & Authorization

  • 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"
      }
    }

Balance

  • 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
      }
    }

Transaction

  • POST /v1/transaction
    // Example request
    {
      "recipientBankAccountNumber": "",
        "recipientBankName": "",
        "fromCurrency":"",
        "balances":1
    }

Image upload

  • POST /v1/image
    // Example request
    {
      "message":"File uploaded sucessfully",
      "data" : {
        "imageUrl":"https://awss3.d87801e9-fcfc-42a8-963b-fe86d895b51a.jpeg"
      }
    }

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published