Skip to content
forked from allebd/banka

Banka is a light-weight core banking application that powers banking operations like account creation, customer deposit and withdrawals.

Notifications You must be signed in to change notification settings

viethoangqe/banka

 
 

Repository files navigation

Banka

Banka is a light-weight core banking application that powers banking operations like account creation, customer deposit and withdrawals.

Build Status Coverage Status Maintainability

Table of Contents

Required Features

  • User (client) can sign up.
  • User (client) can login.
  • User (client) can create an account.
  • User (client) can view account transaction history.
  • User (client) can view a specific account transaction.
  • Staff (cashier) can debit user (client) account.
  • Staff (cashier) can credit user (client) account.
  • Admin/staff can view all user accounts.
  • Admin/staff can view a specific user account.
  • Admin/staff can activate or deactivate an account.
  • Admin/staff can delete a specific user account.
  • Admin can create staff and admin user accounts.

Optional Features

  • User can reset password.
  • Integrate real time email notification upon credit/debit transaction on user account.
  • User can upload a photo to their profile.

UI Templates

UI Template for the application can be found here Github pages

Pivotal Tracker

Pivotal Tracker Stories can found here Pivotal Tracker

Heroku Deployment

Application was deployed to Heroku. Use public URL https://banka-allebd.herokuapp.com with API endpoints.

Swagger Documentation

API Documention was generated with Swagger.

Technologies Used

  • HTML5 for frontend design
  • CSS3 for styling frontend
  • JavaScript for frontend design
  • Node-js Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
  • PostgreSQL used for setting up relational database
  • Babel used for transpiling codes from ES6 to ES5
  • Mocha used for setting up tests

Installations

Getting started

  • You need to have Node and NPM installed on your computer.
  • Installing Node automatically comes with npm.

Clone

  • Clone this project to your local machine https://github.com/allebd/Banka.git

Setup

  • Installing the project dependencies

    Run the command below

   npm install
  • Start your node server

    run the command below

  npm start
  • Use http://localhost:5000 as base url for endpoints

Endpoints

METHOD DESCRIPTION ENDPOINTS
POST Sign up for an account /api/v1/auth/signup
POST Sign in to an account /api/v1/auth/signin
POST Create a bank account /api/v1/accounts
GET Get all accounts /api/v1/accounts
GET Get a specific account /api/v1/accounts/:accountNumber
PATCH Activate or deactivate an account /api/v1/account/:accountNumber
DELETE Delete an account /api/v1/accounts/:accountNumber
POST Perform a debit transaction /api/v1/transactions/{accountNumber}/debit
POST Perform a credit transaction /api/v1/transactions/{accountNumber}/credit
GET Get all account's transactions /api/v1/accounts/{accountNumber}/transactions
GET Get specific transaction /api/v1/transactions/{id}
GET Get all dormant account /api/v1/accounts?status=active
GET Get all active account /api/v1/accounts?status=dormant
GET Get all accounts owned by a specific user /api/v1/user/:userEmail/accounts
POST Create staff/admin account /api/v1/user/admin
GET Get API Documentation /api-docs

Running Unit Test

  • Run test for all endpoints

    run the command below

  npm test

Acknowledgements

Author

Bella Oyedele

About

Banka is a light-weight core banking application that powers banking operations like account creation, customer deposit and withdrawals.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 49.4%
  • HTML 39.9%
  • CSS 10.7%