Git Product home page Git Product logo

banking-apis's Introduction

Objective

While modern banks have evolved to serve a plethora of functions, at their core, banks must provide certain basic features. Today, your task is to build the basic HTTP API for one of those banks! Imagine you are designing a backend API for bank employees. It could ultimately be consumed by multiple frontends (web, iOS, Android etc).

Run dev[Local]

I have wrapped the backend application in Docker system which will help us scale it easily. It consist of two major parts, one is our backend application and another is a database on which we store out information

  • Bank
  • Bank DB

Dependencies

We only require a docker engine to run our application. To install docker follow steps mention in it.

Run application

docker compose up

Test application

Needs to have a python env setup, than run pip install -r requirements.txt

Run (pytest)[https://docs.pytest.org/en/8.2.x/] to test the whole application(api endpoints and core logic)

pytest

Documentation

The application is well documented and can be find on localhost:8000/documentation once you have spinned up the docker compose

Application details

You can use localhost:8000/docs to test endpoints on swagger platform.

You need to create a user to test it. I have pre-populated some users as request and you can login them using [email protected] password would be fake.

Once you have logged in, you can use all the api which are secured

Tasks

  • Implement assignment using:
    • Language: Python
    • Framework: any framework except Django
  • There should be API routes that allow them to:
    • Create a new bank account for a customer, with an initial deposit amount. A single customer may have multiple bank accounts.
    • Transfer amounts between any two accounts, including those owned by different customers.
    • Retrieve balances for a given account.
    • Retrieve transfer history for a given account.
  • Write tests for your business logic

banking-apis's People

Contributors

rohanmandhanya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.