An awesome Online banking web app made by students of punjab engineering college!
Explore the docs »
API URL
·
Report Bug
·
Request Feature
Table of Contents
RBH Bank is a digital bank built using Node.js, MongoDB, and Express. This application implements a user-service, account-service, and transaction-service to provide a complete banking experience.
Here are some of the key features of the Web App:
- Very user friendly User interface.
- Very robust and fast apis.
- Extremely safe and everything is secure.
- Whole server is tested using different testcases and if found any bugs then it does not affects other features. Of course, there are still a lot of issues to be tackled and new features to be added and we are slowly but surely working on it.
This web app is divided into frontend (client) and backend (server or apis).
To run this project locally you have the prerequisites and once you are done with that follow the instructions of the frontend and the backend.
Node 14.0.0 or higher MongoDB account Postman or any other software simiiar to it
Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn't rely on any external dependencies or services.
- Get a free API Key at https://example.com
- Clone the repo
git clone https://github.com/your_username_/Project-Name.git
- Install NPM packages
npm install
- Enter your API in
config.js
const API_KEY = 'ENTER YOUR API';
- fork the repo
- clone the forked version of the repo
git clone https://github.com/your_username_/Project-Name.git
- Install Node packages
npm install
- Creating .env file
cp .env.sample .env
- make sure you have fill all the env variables like mongodb url, secret key and node env.:
- make sure you have nodemon installed if not then just use node main.js from root else use:
nodemon index.js
- To run the test use
npm test
The backend is created on Express. It has 3 features for now.
- New Account creation.
- Account Validation and other basic user services.
- Transactional services (NEFT type of tranfer technique).
- The transactional services includes normal banking transactions between users, Account balance, Account validation, New account creation etc.
This API is for creating a simple banking application developed in Node JS and secured by JWT token.
- It includes three independent services
- User-Service
- Account-Service
- Transaction-Service
- The User-Service takes care of handling user related information.
- The Account-Service takes care of handling account related information.
- The User-Service takes care of handling user related information.
- The Transaction-Service takes care of handling transaction related information.
- We will be adding the low level designs of this seperately very soon.
The user-service allows users to register with RBH Bank and provides a validate function for login. The service also includes several GET and UPDATE requests. During login, a JSON Web Token (JWT) is generated and used as a header for the account-service.
The account-service allows users to create a new account and includes functions such as createnewaccount, getaccountdetailsbyusername, getaccountdetails, addpayee, getpayees, and transferamount. The addpayee function is used to add a beneficiary for making payments. The username is used as a foreign key in the user table and the JWT token is used for security.
The transaction-service includes two functions: trans summary and log summary. Trans summary provides a transaction summary with remarks after the transaction.
The main file for the server is at the root named by index.js. There you can find the express server. Then there are various folders. Each of them quite different from other and you can find the details of it in the documentation.
- Controllers -> it included the router and the breakpoints of the rest apis.
- lib -> it contains some of the functions which have been used again and again in various places.
- .vercel -> it inclued the files necessary for the deployment.
- logger -> it includes the logger (what should be logged in the console what should'nt).
- Middlewares -> simple middleware for jwt setup.
- models -> it contains the schemas for different tables of the database.
- validator -> it includes the validator files which validates the schema coming from the client.
- Dao -> It includes all the data access operations (the functions which are related to database manipulation).
For more examples, please refer to the Documentation
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
More Coming Soon ...
Coming Soon...