# Bank App
------------
## Description The Bank app is a console-based application that simulates banking
operations.
A customer can apply for an account, view their balance, and make withdrawals and
deposits.
An employee can aprove or deny accounts and view account balances for their
customers.
## Purpose We want to see that you can meet deadlines and that you can code.
You are expected to complete the following requirements and give a 5 minute
presentation of your project to our QC team.
## Requirements
------------------
1. Functionality should reflect the below user stories.
2. Data is stored in a database.
3. A custom stored procedure is called to perform some portion of the
functionality.
4. Data Access is performed through the use of JDBC in a data layer consisting of
Data Access Objects.
5. All input is received using the [Link] class.
6. Log4j is implemented to log events to a file.
7. A minimum of one (1) JUnit test is written to test some functionality.
## User Stories
----------------------
* As a user, I can login.
* As a customer, I can apply for a new bank account with a starting balance.
* As a customer, I can view the balance of a specific account.
* As a customer, I can make a withdrawal or deposit to a specific account.
* As the system, I reject invalid transactions.
* Ex: * A withdrawal that would result in a negative balance.
* A deposit or withdrawal of negative money.
* As an employee, I can approve or reject an account.
* As an employee, I can view a customer's bank accounts.
* As a user, I can register for a customer account.
* As a customer, I can post a money transfer to another account.
* As a customer, I can accept a money transfer from another account.
* A an employee, I can view a log of all transactions.
### Day wise task and sub task
-----------------------------
Day 1: Task: Analysis and Design
Sub Task1: Create Wire-frame
Sub Task2: Create UML and DFD
Day 2: Task: Database Deisgn
Sub Task1: based on DFD create tables
Sub Task2: create classes in Java
Day 3: Task: Integration
Sub Task1: integrate Java and Database
Sub Task2: implement database access layer and connection classes
Day 4: Task: Login System
Sub Task1: Register / Login implementation for customer
Sub Task2: Register / Login implementation for employee
Day 5: Task: implemnt Tranaction
Sub Task1: transaction to deposit
Sub Task2: transaction to withdraw
Sub Task3: transaction to transfer
Day 6: Task: testing
Sub Task1: write test cases
Day 7: Task Logging
Sub Task1: impelement Log4j for logs