Skip to content

ISTIFANO/Bank-Management-System

Repository files navigation

Bank App API Documentation

This document provides details about the Bank App API endpoints, their parameters, and expected responses.

Table of Contents

Authentication

Register

Creates a new user account and automatically creates a wallet for the user.

Endpoint: POST /register

Request Parameters:

{
  "firstname": "string",
  "lastname": "string",
  "email": "string",
  "password": "string",
  "img": "string"
}

Response:

{
  "createWallet": {
    "number": "string",
    "user_id": "integer",
    "balance": 0,
    "id": "integer"
  },
  "user": {
    "user": {
      "id": "integer",
      "firstname": "string",
      "lastname": "string",
      "email": "string",
      "img": "string"
    },
    "token": "string"
  }
}

Login

Authenticates a user and returns a token.

Endpoint: POST /login

Request Parameters:

{
  "email": "string",
  "password": "string"
}

Response:

{
  "user": {
    "id": "integer",
    "firstname": "string",
    "lastname": "string",
    "email": "string",
    "img": "string"
  },
  "token": "string"
}

Logout

Logs out the current user and invalidates their token.

Endpoint: POST /logout

Headers:

  • Authorization: Bearer {token}

Response:

{
  "message": "is logout"
}

Wallet Management

Create Wallet

Creates a new wallet for a user.

Endpoint: POST /wallet

Headers:

  • Authorization: Bearer {token}

Request Parameters:

{
  "user_id": "integer",
  "balance": "number"
}

Response:

{
  "number": "string",
  "user_id": "integer",
  "balance": "number",
  "id": "integer"
}

Update Balance

Updates the balance of a wallet.

Endpoint: PUT /wallet/balance

Headers:

  • Authorization: Bearer {token}

Request Parameters:

{
  "id": "integer",
  "balance": "number"
}

Response:

{
  "message": "updated succ"
}

Delete Wallet

Deletes a wallet.

Endpoint: DELETE /wallet

Headers:

  • Authorization: Bearer {token}

Request Parameters:

{
  "delete_id": "integer"
}

Response:

{
  "message": "deleted"
}

Transactions

Create Transaction

Creates a new transaction between two wallets.

Endpoint: POST /transaction

Headers:

  • Authorization: Bearer {token}

Request Parameters:

{
  "amount": "number",
  "description": "string",
  "receiver": "string" // email of the receiver
}

Response:

{
  "transaction": {
    "id": "integer",
    "amount": "number",
    "description": "string",
    "date": "timestamp",
    "receiver_id": "integer",
    "sender_id": "integer",
    "status": "active"
  }
}

Error Responses:

  • Insufficient funds:
{
  "message": "Insufficient funds"
}
  • Receiver not found:
{
  "message": "not found"
}
  • Wallet not found:
{
  "message": "wallet not found"
}

Update Transaction Status

Updates the status of a transaction.

Endpoint: PUT /transaction/status

Headers:

  • Authorization: Bearer {token}

Request Parameters:

{
  "id": "integer",
  "status": "string"
}

Response:

{
  "message": "status updated"
}

Delete Transaction

Deletes a transaction.

Endpoint: DELETE /transaction

Headers:

  • Authorization: Bearer {token}

Request Parameters:

{
  "delete_id": "integer"
}

Response:

{
  "message": "deleted"
}

Error Handling

All endpoints perform validation and may return error messages in the following format:

{
  "message": "error description"
}

Authentication Notes

  • All API endpoints except for /register and /login require authentication.
  • Authentication is handled via Bearer tokens that are returned after logging in.
  • Include the token in the Authorization header for all authenticated requests.

Transaction Security

  • Transactions use database transactions to ensure data integrity.
  • If any part of the transaction fails, all changes are rolled back to prevent inconsistencies.

About

⚙Développement d'une API REST pour une wallet en ligne sécurisée

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages