/flite

Cowrywise Backend Test Repo

Primary LanguagePython

Flite

Flite is Django Restful Wallet App API

Features

  • Users can create accounts.
  • Deposit funds via bank or card transfer.
  • Users can withdraw funds to banks.
  • Users can transfer funds to other user.
  • Users can link card to account.
  • Users can link bank account to their flite account

Built With

Getting Started

Now we are are the most exciting part of this documentation, Follow the step below to run a local version of the app. Please ensure docker is installed on your system or otherwise click Get started with docker to install docker. Navigate to the directory you would link to run the app and follow the steps below:

  1. Clone the repo

    git clone https://github.com/cowrywise/flite
  2. Create a .env environment file. Copy the values of entries below from env.example to .env file

  3. Enter the command below to start docker

make up
  1. Create Makemigrations (Optional)
make makemigrations
  1. Migrate changes to database
make migrate
  1. Create Superuser
make createsuperuser
  1. Navigate to API_DOCUMENTATION to view API documentation or you can head straigh to the root localhost

NB: All commands above are shortcut. Navigate to MakeFile to see list of all commands

Assumptions

  • Banks and Cards services are normally handled by third party services. All transactions are faked and are marked successfully by defaults to model a pratically system
  • Withdrawals and Deposit can only be made to user owned banks and cards. This is to prevent unathorized withdrawal
  • Due to delicate nature of all financial system, there is a strict authorization policy. Users can only view, edit and delete objects they owned.
  • Users can deposit any amount but can not withdraw more than their current balance