EseCurtis / sage-grey-backend-assesment

A Node.js-based API for managing user accounts, fund transfers, and authentication using Express, MongoDB

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Basic Transaction api

User Routes

Create User

  • Route: POST /api/users
  • Description: Create a new user account.
  • Demo Request Payload:
    {
      "username": "username",
      "password": "password",
      "balance": 1000
    }
  • Demo Response:
    {
      "username": "username",
      "password": "password",
      "balance": 1000,
      "acknowledged": true,
      "insertedId": 'user_id'
    }

Get User by ID

  • Route: GET /api/users/:id
  • Description: Get user details by user ID (protected by token-based authentication).
  • Demo Response:
     {
      "_id": "user_id",
      "timestamp": "timestamp",
      "username": "username",
      "password": "password",
      "balance": 1000
    }

Fund User by ID

  • Route: POST /api/users/fund
  • Description: Fund a user's account by user ID (protected by token-based authentication).
  • Demo Request Payload:
    {
      "id": "user_id",
      "amount": 500
    }
  • Demo Response:
    {
      "message": "Funds added successfully",
      "balance": 1500
    }

Transaction Routes

Transfer Funds

  • Route: POST /api/transactions/transfer
  • Description: Transfer funds between two user accounts (protected by token-based authentication).
  • Demo Request Payload:
    {
      "senderId": "sender_user_id",
      "receiverId": "receiver_user_id",
      "amount": 200
    }
  • Demo Response:
    {
      "message": "Funds transferred successfully"
    }

Authentication Route

Authenticate User

  • Route: POST /api/authenticate
  • Description: Authenticate a user and generate a token (no authentication required).
  • Demo Request Payload:
    {
      "username": "username",
      "password": "password"
    }
  • Demo Response:
    {
      "token": "your-faux-token"
    }

About

A Node.js-based API for managing user accounts, fund transfers, and authentication using Express, MongoDB


Languages

Language:JavaScript 100.0%