Banka is a light-weight core banking application that powers banking operations like account creation, customer deposit and withdrawals. This app is meant to support a single bank, where users can signup and create bank accounts online, but must visit the branch to withdraw or deposit money.
Project Plan (PIVOTAL TRACKER STORIES): https://www.pivotaltracker.com/n/projects/2320148 UI-pages: https://kechyy.github.io/Banka/UI Hosted API on Heroku: https://kechyy-banka-app.herokuapp.com/api/v1
Below are the features of Banka Application at this point
- User(client) can Signup
- User(client) can Login
- User(client) can create an account
- User(client) can view transaction history
- User(client) can view a specific transaction
- Staff(cashier) can debit(client) account
- Staff(cashier) can credit(client) account
- Admin/Staff can view all user acccounts
- Admin/Staff can view a specific user account
- Admin/Staff can activate or deactivate an account
- Admin/Staff can delete a specific user accounts
HTTP VERB | API ENDPOINT | FUNCTION | INPUT | OUTPUT |
---|---|---|---|---|
POST | api/v1/auth/signup | signUp | {
firstName: string, lastName: string email: string, password: string, cpassword: string } |
{ status: 201 data:{ firstName: 'Nkechi', lastName: 'Ogbonna', email: '[email protected]', token: 'kljfkjlfdsakjlfds@#$%' } } |
POST | api/v1/auth/signin | signIn | { email: "string", password: "string, token: string } |
{ status:200, data{ fistName: 'Nkechi', lastName: 'Ogbonna', token: '949494309ksdkjldfskjl@#$*' } } |
POST | api/v1/account | CreateAccount | {
status: 201 data:{ firstName: string, lastName: string, email: string type: string } } |
{
status: 201 data:{ firstName: ''Rosemary, lastName: 'Emmanuel', type: 'current' } } |
PATCH | api/v1/account:001123456 | updateAccount | { accountNumber: number status: integer, } |
{ status: 200 data:{ firstName: 'Nkechi', lastName: 'Ogbonna', accountNumber: 0011234566 status: active, } } |
DELETE | api/v1/account/001123456 | deleteAccount | { accountNumber: number } |
{ status: 200 data:{ firstName: 'Nkechi', lastName: 'Ogbonna', accountNumber: 0011234566 status: active, } } |
POST | api/v1/transactions/001123456/credit | creditAccount | { firstName: 'Grace', lastName: 'Emmanuel', accountNumber: 0012345678, amount: '20000', } |
{ status: 201 { firstName: 'Grace', lastName: 'Emmanuel', accountNumber: 0012345678, amount: '20000', oldBalance: '80000', balance: '100000' } } |
POST | api/v1/transactions/001123456/credit | debitAccount | { firstName: 'Grace', lastName: 'Emmanuel', accountNumber: 0012345678, amount: '2000' } |
{ status: 201 { firstName: 'Grace', lastName: 'Emmanuel', accountNumber: 0012345678, amount: '20000', oldBalance: '100000' balance: '80000' } } |
- Clone this repository below:
- https://github.com/kechyy/Banka.git
- cd into the repository:
- cd Banka
- Open the repository in terminal and Install dependencies by running:
- npm install
- Run "npm start" to start the app
- Use Postman to test all endpoints
- Run "npm test" to test all endpoints
ES6: https://en.wikipedia.org/wiki/ECMAScript
NodeJS: An open-source, cross-platform JavaScript run-time environment which allows you enjoy the features of Javascript off the web browsers and implement server-side web development. Find out here
ExressJS: Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. Find out more