Skip to content

Secure online banking application. Easy to use, efficient, fast.

Notifications You must be signed in to change notification settings

codeBlock-1984/bankr

Repository files navigation

Bankr

Build Status Maintainability Coverage Status

Secure online banking application. Easy to use, efficient, fast.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

To run this application, you will need to have the latest versions of the following software installed on your system

Running the app locally

Follow the steps below to get the development environment running locally

  1. Clone the repo to your local machine
  • On your local computer, open your terminal and navigate to the directory you want the repo to reside in
  • Run the following command to clone the repo to your machine
    git clone https://github.com/codeBlock-1984/bankr.git
  • Next, navigate into the project root directory and run the following command to install project dependencies
    npm install
  • Run the following command to create a .env file with the necessary environmental variable for the project
    touch .env && cp .env.example .env
  • Create postgres databases for test and development and add their connection urls to their respective keys in your .env file
  • Run the following to migrate database tables and seed with mock data
    npm run migrate && npm run seed
  • To drop databases tables at any time run
    npm run migrate:undo
  • To start the development server run
    npm run dev-start

Running the tests

To run the automated tests, navigate to the project root directory and run the following command in your terminal

    npm test

Built With

The following core packages where used in building this application

  • Express - The web framework used
  • Babel - Javascript transpiler
  • Express-validator - Middleware used for request validation and sanitization
  • Bcrypt - Password hashing function
  • Jsonwebtoken - Used for generating and verify tokens for authentication and authorization
  • Swagger - Used for API documentation
  • Pg - Node Postgres Client
  • Nodemailer - Module used for sending email notifications
  • Mocha - Test framework
  • Chai - Assertion library used for tests
  • Eslint - Javascript linting utility

Core features

Users

There are three types of users, namely: client, staff, and admin.

  • Client - A normal user, with basic access and privileges
  • Staff - A cashier. Has more more privileges than normal user
  • Admin - The system administrator. Has superuser privileges

The main features of this application with respect to the various users are listed below.

A Client can do the following:

  • Sign up with the application
  • Sign in with already created user account details
  • Create a bank account
  • View account profile
  • View transaction history
  • View specific transaction

A Staff can do the following:

  • Credit a client's bank account
  • Debit a client's bank account
  • Activate/deactivate a client's bank account
  • View list of all client bank accounts
  • View a specific client's bank accounts
  • View a specific bank account
  • Delete a specific bank account
  • View all transactions

An Admin can do the following:

  • Create an admin or staff user account
  • Activate/deactivate user account
  • View list of all client bank accounts
  • View a specific client's bank accounts
  • View a specific bank account
  • Delete a specific bank account
  • View specific transaction

Extra features

  • A client will receive an email notification whenever a transaction is performed on his account

Related links

Author

  • Emmanuel Ihemegbulam

License

This project is licensed under the ISC License

About

Secure online banking application. Easy to use, efficient, fast.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published