Git Product home page Git Product logo

ohbus / retail-banking Goto Github PK

View Code? Open in Web Editor NEW
44.0 44.0 44.0 663 KB

Consumer Banking Application

Home Page: https://bank.subho.xyz

License: GNU General Public License v3.0

Java 43.70% Dockerfile 0.17% CSS 14.24% JavaScript 1.60% HTML 40.29%
banking banking-applications bootstrap case-study consumer hacktoberfest ilp j2ee java mvc mysql online-banking retail-banking spring-boot sprint tcs thymeleaf web

retail-banking's Introduction

Retail Banking Application

Banking CI Master Quality Gate Status Lines of Code Docker pulls

Application is live at bank.subho.xyz

This is a Spring Boot Application and integrated with Thymeleaf for data representation

Send in your Contribution using Pull Requests

Contributing

This repository is contribution friendly. If you'd like to add or improve a features, your contribution is welcome!

Please go through this comprehensive guide to setup the repository in your local enviornment using this CONTRIBUTING.md

The executable runtime can be either downloaded from packages or the releases page

To run this JAR (Requires JDK 11+)

Note: You can always build your own JRE using jlink from JDK 11+

java -jar retail-banking-1.0.jar

Open localhost:8080 from your browser to see the application running

The Dockerized application instructions

To run the application

docker run -d -p 80:8080 subhrodip/retail-banking

Open localhost in your browser to see application running

retail-banking's People

Contributors

charlesfinley avatar ohbus avatar sayantani123 avatar sourishdutta1997 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

retail-banking's Issues

Delete Customer Screen

To allow account executive to delete existing customer.
Before account executive can delete customer, he/she should be able to query for existing customer by using query/pull existing customer screen.
Allow account executive to delete customer, with a delete button
Output message on screen after user clicks submit:
“Customer deletion initiated successfully” Or Relevant error message to be displayed.

Delete Account Screen

To allow account executive to delete existing account.
Before account executive can delete account, he/she should be able to query for existing account for a customer by using query/pull existing customer accounts screen. Input is either Customer ID or SSN ID.
Allow account executive to delete account, with a delete button
Output message on screen after user clicks submit:
“Account deletion initiated successfully” Or Relevant error message to be displayed

Get Statement Screen

To allow cashier to pull account statement for a customer-account
Input fields:
Account ID, Last N Transactions (option to choose from drop down 1-10) or Start date and End date
Output:
Account statement, with each row showing date, transaction description, credit or debit, balance

Landing Page

  1. Home page - consisting of account balance for oth savings and current
  2. See recent transactions
  3. Make transfers

Transaction for transfer of funds between same bank

  • deduct the amount from sender's account

  • check if the account exists in our database

  • add the amount to the recipient account

  • if the account is not present the amount will only get deducted just like it does normally now

  • admin will be able to see how much money is transferred from and to the bank and from each account type

Introduce Automated UI Testing

Sufficient test cases to improve the quality of application for seamless working of the application with automated test scripts using Java-Selenium

Deposit and Withdraw Limiter

  • Implement checks both at back end and front end to not allow transactions more than 500,000

  • Over Drafting maximum amount should be 5000

Both of these transactions needs to be aborted with a proper error message

  • Withdraw

  • Transfers

Transfer Screen

From account details screen, cashier can have option to deposit, withdraw or transfer money, as three different buttons
In case of transfer screen, input fields:
Transfer amount, Source Account, Target Account
Output fields:
Source Account ID, Target Account ID
Balance before transfer for both account
Latest balance for both accounts
Status message: “Amount transfer completed successfully” or in case balance is not enough in source account “Transfer not allowed, please choose smaller amount”

Validations

Validations required for input.

  1. SSN, Account ID and Customer ID should be 9 digit
  2. Date should be of the format CCYY-MM-DD

Update Customer Screen

To allow account executive to update existing customer information
Before account executive can update anything, he/she should be able to query for existing customer

  1. Query/Pull existing customer:
    Input fields on screen:
  • Either SSN ID or Customer ID as two input fields, with any one mandatory
  • Both fields are numeric and should have 9 digits
  • Output message on screen after user clicks submit:
  • Display following fields on screen: SSN ID, Customer ID, Name, Address, Age
  1. Allow editing of fields, except SSN and Customer ID, by having update/edit button and editable fields.
  2. After editing of one or multiple fields, user can submit updated data
  3. Output message on screen after user clicks submit:
  4. “Customer update initiated successfully” Or Relevant error message to be displayed

View Account Status Screen

This screen shows rows with columns - customer ID, account type, status, message, Last updated and refresh button.
This can be either a separate screen or part of Create/Delete Account screen
There is no input in this screen, but it shows all accounts, where the process is in progress or complete.
There should be refresh button, against each row, to pull latest status of each account

View Customer Status Screen

This screen shows rows of customers/SSN IDs and status of create/update/delete status. Each row can have about five columns, i.e. SSN ID, Status, Message, Last Updated, Refresh Button
This can be either a separate screen or part of Create/Update/Delete Customer screen
There is no input in this screen, but it shows all customers, where the process is in progress or complete.
Refresh button, in last column on each row, allows to pull latest status of each customer

Deposit Screen

From account details screen, cashier can have option to deposit, withdraw or transfer money, as three different buttons
In case of deposit screen, input fields:
Deposit amount
Output fields:
Customer ID, Account ID
Balance before deposit
Latest balance
Status message: “Amount deposited successfully”

Login Screen: <common function for any employee role>

To allow only bank employee to be able to login to bank web site Login can be alphabetical or both alphanumeric with maximum n characters Password can be alphabetical or both alphanumeric with maximum n characters Implement session management on login operation. Also, on every internal page, there should be logout link on click of which the logged in session will be invalidated and user will be logged out.

Get Accounts and Account Details Screen

To allow cashier to pull information for a specific account of a customer

Input fields:
Customer/SSN ID or Account ID

Output fields:
Displays account(s), as a drop drown if input is customer ID/SSN ID. If account ID is input, then display relevant account information – Customer ID, Account ID, Account type, Balance

Output fields:
Customer ID, Account ID, Account Type, Account Balance, Amount to deposit

Withdraw Screen

From account details screen, cashier can have option to deposit, withdraw or transfer money, as three different buttons
In case of withdraw screen, input fields:
Withdraw amount
Output fields:
Account ID
Balance before withdraw
Latest balance
Status message: “Amount withdrawn successfully” or in case balance is not enough “Withdraw not allowed, please choose smaller amount”

Forget password options

Forget password option will do the following :

  • will generate a random password
  • save the random password to the database
  • send the random password via email to the user's email using javax.mail

Create Customer Screen

To allow new customer-account executive to create new customer
Input fields on screen:
Customer SSN ID, Customer Name, Age, Address Line 1, Address Line 2, City, State
Output message on screen after user clicks submit:
“Customer creation initiated successfully” Or Relevant error message to be displayed

Create Account Screen

To allow new customer-account executive to create new account for existing customer
Input fields on screen:
Customer ID
Drop down – Savings or Current Account
Deposit amount – Integer / Number (No decimals)
Output message on screen after user clicks submit:
“Account creation initiated successfully” Or Relevant error message to be displayed

Create database table to store entries for customer and account status

  1. Create single table with column(s) e.g. Customer ID, SSN ID, Account ID, Account type, status, message, Last updated
  2. Create two separate tables – CustomerStatus, AccountStatus
    CustomerStatus table columns – SSN ID, Customer ID, Status, Message, Last Updated
    AccountStatus table columns – Customer ID, Account ID, Account Type, Status, Message, Last Updated

Login page

  1. Sign in page & Sing up
  2. Forget password - take username then POST
  3. change passwd -make a link where passwd can only be changed after login.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.