Skip to content

This is a simple bank management system that allows you to create a bank account, deposit money, withdraw money, and check your balance.

Notifications You must be signed in to change notification settings

BerkayMehmetSert/spring-boot-devBank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bank Management System

This is a simple bank management system that allows you to create a bank account, deposit money, withdraw money, and check your balance.

How to run

  1. Clone the repository
  2. Open the project in your IDE
  3. Install the dependencies by running mnv clean install
  4. Run the project
  5. Open your browser and go to localhost:8080/swagger-ui.html to see the API documentation

Requirements

  • Java 17
  • Maven
  • PostgresSql

API Documentation

The API documentation can be found at localhost:8080/swagger-ui.html

Database

The database is a PostgresSql database. The database name is bank_management_system and the username is _yourUserName_ and the password is _yourPassword_. You can change the database name, username, and password in the application.properties file.

Endpoints

Create Customer

POST /v1/customer

Request

{
  "firstName": "string",
  "lastName": "string",
  "email": "string",
  "password": "string",
  "phone": "string",
  "address": {
    "addressLine": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "zipCode": "string"
  },
  "nationalId": "string"
}

Response

{
  "firstName": "string",
  "lastName": "string",
  "nationalId": "string",
  "email": "string",
  "password": "string",
  "phone": "string",
  "isActive": true,
  "address": {
    "addressLine": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "zipCode": "string"
  },
  "accounts": []
}

Update Customer

PUT /v1/customer/{id}

Request

{
  "firstName": "string",
  "lastName": "string",
  "email": "string",
  "password": "string",
  "phone": "string",
  "address": {
    "addressLine": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "zipCode": "string"
  }
}

Response

{
  "firstName": "string",
  "lastName": "string",
  "nationalId": "string",
  "email": "string",
  "password": "string",
  "phone": "string",
  "isActive": true,
  "address": {
    "addressLine": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "zipCode": "string"
  },
  "accounts": [
    {
      "accountNumber": "string",
      "balance": 0,
      "isActive": true,
      "accountType": "SAVINGS",
      "accountStatus": "ACTIVE",
      "accountLimit": 0,
      "accountLimitType": "DAILY",
      "accountLimitStatus": "ACTIVE",
      "accountLimitAmount": 0,
      "accountLimitStartDate": "2022-12-07",
      "accountLimitEndDate": "2022-12-07"
    }
  ]
}

Delete Customer

DELETE /v1/customer/{id}

Response

{
  "firstName": "string",
  "lastName": "string",
  "nationalId": "string",
  "email": "string",
  "password": "string",
  "phone": "string",
  "isActive": false,
  "address": {
    "addressLine": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "zipCode": "string"
  },
  "accounts": [
    {
      "accountNumber": "string",
      "balance": 0,
      "isActive": false,
      "accountType": "SAVINGS",
      "accountStatus": "INACTIVE",
      "accountLimit": 0,
      "accountLimitType": "DAILY",
      "accountLimitStatus": "INACTIVE",
      "accountLimitAmount": 0,
      "accountLimitStartDate": "2022-12-07",
      "accountLimitEndDate": "2022-12-07"
    }
  ]
}

Get Customer ById

GET /v1/customer/getCustomerById/{id}

Response

{
  "firstName": "string",
  "lastName": "string",
  "nationalId": "string",
  "email": "string",
  "password": "string",
  "phone": "string",
  "isActive": true,
  "address": {
    "addressLine": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "zipCode": "string"
  },
  "accounts": [
    {
      "accountNumber": "string",
      "balance": 0,
      "isActive": true,
      "accountType": "SAVINGS",
      "accountStatus": "ACTIVE",
      "accountLimit": 0,
      "accountLimitType": "DAILY",
      "accountLimitStatus": "ACTIVE",
      "accountLimitAmount": 0,
      "accountLimitStartDate": "2022-12-07",
      "accountLimitEndDate": "2022-12-07"
    }
  ]
}

Get Customer By NationalId

GET /v1/customer/{nationalId}

Response

{
  "firstName": "string",
  "lastName": "string",
  "nationalId": "string",
  "email": "string",
  "password": "string",
  "phone": "string",
  "isActive": true,
  "address": {
    "addressLine": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "zipCode": "string"
  },
  "accounts": [
    {
      "accountNumber": "string",
      "balance": 0,
      "isActive": true,
      "accountType": "SAVINGS",
      "accountStatus": "ACTIVE",
      "accountLimit": 0,
      "accountLimitType": "DAILY",
      "accountLimitStatus": "ACTIVE",
      "accountLimitAmount": 0,
      "accountLimitStartDate": "2022-12-07",
      "accountLimitEndDate": "2022-12-07"
    }
  ]
}

Get All Customers

GET /v1/customer

Response

[
  {
    "firstName": "string",
    "lastName": "string",
    "nationalId": "string",
    "email": "string",
    "password": "string",
    "phone": "string",
    "isActive": true,
    "address": {
      "addressLine": "string",
      "city": "string",
      "state": "string",
      "country": "string",
      "zipCode": "string"
    },
    "accounts": [
      {
        "accountNumber": "string",
        "balance": 0,
        "isActive": true,
        "accountType": "SAVINGS",
        "accountStatus": "ACTIVE",
        "accountLimit": 0,
        "accountLimitType": "DAILY",
        "accountLimitStatus": "ACTIVE",
        "accountLimitAmount": 0,
        "accountLimitStartDate": "2022-12-07",
        "accountLimitEndDate": "2022-12-07"
      }
    ]
  }
]

Account

Create Account

POST /v1/account

Request

{
  "accountType": "SAVINGS",
  "accountLimitType": "DAILY",
  "customerId": 0
}

Response

{
  "accountNumber": "string",
  "balance": 0,
  "isActive": true,
  "accountType": "SAVINGS",
  "accountStatus": "ACTIVE",
  "accountLimit": 0,
  "accountLimitType": "DAILY",
  "accountLimitStatus": "ACTIVE",
  "accountLimitAmount": 0,
  "accountLimitStartDate": "2022-12-07",
  "accountLimitEndDate": "2022-12-07"
}

Update Account

PUT /v1/account/{accountNumber}

Request

{
  "accountType": "SAVINGS",
  "accountLimitType": "DAILY"
}

Response

{
  "accountNumber": "string",
  "balance": 0,
  "isActive": true,
  "accountType": "SAVINGS",
  "accountStatus": "ACTIVE",
  "accountLimit": 0,
  "accountLimitType": "DAILY",
  "accountLimitStatus": "ACTIVE",
  "accountLimitAmount": 0,
  "accountLimitStartDate": "2022-12-07",
  "accountLimitEndDate": "2022-12-07"
}

Delete Account

DELETE /v1/account/{accountNumber}

Response

{
  "accountNumber": "string",
  "balance": 0,
  "isActive": true,
  "accountType": "SAVINGS",
  "accountStatus": "ACTIVE",
  "accountLimit": 0,
  "accountLimitType": "DAILY",
  "accountLimitStatus": "ACTIVE",
  "accountLimitAmount": 0,
  "accountLimitStartDate": "2022-12-07",
  "accountLimitEndDate": "2022-12-07"
}

Get All Accounts

GET /v1/account

Response

[
  {
    "accountNumber": "string",
    "balance": 0,
    "isActive": true,
    "accountType": "SAVINGS",
    "accountStatus": "ACTIVE",
    "accountLimit": 0,
    "accountLimitType": "DAILY",
    "accountLimitStatus": "ACTIVE",
    "accountLimitAmount": 0,
    "accountLimitStartDate": "2022-12-07",
    "accountLimitEndDate": "2022-12-07"
  }
]

Get Account By Account Number

GET /v1/account/{accountNumber}

Response

{
  "accountNumber": "string",
  "balance": 0,
  "isActive": true,
  "accountType": "SAVINGS",
  "accountStatus": "ACTIVE",
  "accountLimit": 0,
  "accountLimitType": "DAILY",
  "accountLimitStatus": "ACTIVE",
  "accountLimitAmount": 0,
  "accountLimitStartDate": "2022-12-07",
  "accountLimitEndDate": "2022-12-07"
}

Add Money To Account

POST /v1/account/add/{accountNumber}

Response

{
  "accountNumber": "string",
  "balance": 0,
  "isActive": true,
  "accountType": "SAVINGS",
  "accountStatus": "ACTIVE",
  "accountLimit": 0,
  "accountLimitType": "DAILY",
  "accountLimitStatus": "ACTIVE",
  "accountLimitAmount": 0,
  "accountLimitStartDate": "2022-12-07",
  "accountLimitEndDate": "2022-12-07"
}

Withdraw Money From Account

POST /v1/account/withdraw/{accountNumber}

Response

{
  "accountNumber": "string",
  "balance": 0,
  "isActive": true,
  "accountType": "SAVINGS",
  "accountStatus": "ACTIVE",
  "accountLimit": 0,
  "accountLimitType": "DAILY",
  "accountLimitStatus": "ACTIVE",
  "accountLimitAmount": 0,
  "accountLimitStartDate": "2022-12-07",
  "accountLimitEndDate": "2022-12-07"
}

Transfer Money From Account

POST /v1/account/transfer/{accountNumber}

Request

{
  "fromAccountNumber": "string",
  "toAccountNumber": "string",
  "amount": 0
}

Response

{
  "accountNumber": "string",
  "balance": 0,
  "isActive": true,
  "accountType": "SAVINGS",
  "accountStatus": "ACTIVE",
  "accountLimit": 0,
  "accountLimitType": "DAILY",
  "accountLimitStatus": "ACTIVE",
  "accountLimitAmount": 0,
  "accountLimitStartDate": "2022-12-07",
  "accountLimitEndDate": "2022-12-07"
}

Built With

About

This is a simple bank management system that allows you to create a bank account, deposit money, withdraw money, and check your balance.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages