Secure online banking application. Easy to use, efficient, fast.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
To run this application, you will need to have the latest versions of the following software installed on your system
Follow the steps below to get the development environment running locally
- 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
To run the automated tests, navigate to the project root directory and run the following command in your terminal
npm test
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
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.
- 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
- 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
- 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
- A client will receive an email notification whenever a transaction is performed on his account
- User Interface - The UI of this application can be accessed here
- Documentation - The documentation can be accessed here
- Emmanuel Ihemegbulam
This project is licensed under the ISC License