Skip to content

elizabethpursell/Bank-Relational-Database

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

### Elizabeth Pursell (emp520) -- Final CSE241 Project

## Assumptions
1.  There is a max account balance of $99999999.99.
2.  Loan and credit card payments can only be made with
  accounts from my bank.
3.  You can deposit any amount of money -- we don't 
  verify where the money is coming from.
4.  For executing penalties on savings accounts, if the
  penalty is greater than its balance, set the balance
  to zero. You can also only apply the penalty once if
  the penalty sets you below the minimum balance. This
  eliminates creating an infinite loop.
5.  The balance due on a credit card is always 10% of the 
  running balance. It is recalculated every time there is
  an update to the running balance.
6.  Replacing a credit / debit card just regenerates the 
  security code / pin.
7.  Funds can be in an investment account without being
  allocated to an asset.
8.  You can purchase a max of 10 items per transaction.
9. If there is a SQLException, the stack trace will
  be printed and you will be asked to login with
  your Oracle credentials again.
10. You can only withdrawal from a checking account using
  its associated debit card.
11. There is no functionality to actually invest your funds
  into assets.
12. The balance changes due to interest rates is not the
  bank's responsibility to maintain.
13. If you input more than two decimal places, your amount
  will be truncated down to the nearest cent.
14. The minimum amount needed to create a transaction is 0.01.
  There are also no purchases of free items.
15. Overdraft fees are not implemented for checking accounts.
16. The minimum credit limit is $100.
17. If a new loan is taken out, the money will not be automatically
  added to one of your accounts.

## Interfaces

Tip 1: For good test data, look at the last name of the
current customers. YearlyTx has transactions for the
whole year. MonthlyTx has transactions for the whole
month (some may be in November, so the total may still 
be 0). DailyTx has transactions for today. 
NoAcctBalancesOrDebt can be used to test the edge cases
for when a customer has account, loan and credit card
balances of 0. All customers have an account, loan,
card, and transaction of each type. There are 15 customers.

Tip 2: The id numbers are the numbers in the square brackets
(ex. for [1] Elizabeth YearlyTx, Elizabeth YearlyTx has the
id number 1)

# Login Menu

The login menu allows you to open the bank manager or
customer menu. You may also exit the program from this
menu.

# Bank Manager Interface

The bank manager interface allows you to view summaries
for loans, accounts, and transactions. These summaries
will show the total balances and amounts for their respective
categories. Once you select the summary type, you will be 
asked if you would like a total or customer summary. Total 
will give you the overall totals for the bank. Customer will
allow you to select a customer to get the totals for. If you
selected the transaction summary type, you will also be asked
if you would like a summary of today (transactions that occurred
on the day of the summary creation), this month (transactions
that occurred from the first of the month to today), and this 
year (transactions that occurred on the first of the year to
today).

The summary results give totals for each loan/account/transaction
type, depending on which summary type you selected. It will also
show the total for loans/accounts/transactions as a whole.

For good customer-based test data, select the customer based on 
their last name (DailyTx, MonthlyTx, YearlyTx). Customers with
last name MonthlyTx may have some totals that are 0. This is
because I created some test data in Novemember as well.

# Account Deposits

The deposit menu allows you to add money to any of your account
balances. The bank trusts that you actually have the money that
you want to deposit. You can deposit to all three account types:
checking, savings, investment. You can enter any amount for depositing
as long as it doesn't set you over the limit set for max balances.

All customers are good for testing deposits.

# Account Withdrawals

The withdrawal menu allows you to take money from a checking account
connected to a debit card. You must select the id for the debit card
that is for the correct checking account. We don't show the checking
account balance in this menu because you are not authenticated with
the card's pin yet. After selecting the debit card id, you must enter
the card's pin to authorize the withdrawal. The pin is given to you
under where all the customer's debit cards are listed. After entering
the correct pin, you will then be able to see the account's balance.
You can enter the amount you would like to withdrawal. The bank will
not allow withdrawals from accounts with a balance of 0.

All customers are good for testing withdrawals. If you would like to 
test the edge case of withdrawaling from an account with a balance
of 0, login as customer 3 (Brynna NoAcctBalancesOrDebt).

# Loan Payments

The loan payment menu allows you to pay off your loans using a checking
or savings account. You must select the id for the loan you would like
to pay off. Then you select the id of the account you would like to use
to pay the loan. Finally, select the payment type you would like. Monthly
bill will use the preset value that was created at the time of the loan
creation. Custom amount will allow you to enter your own amount. The bank 
will not allow payments from accounts with insufficient funds or towards 
loans that are already paid off.

All customers are good for testing loan payments. If you would like to 
test the edge case of paying towards a paid off loan, login as 
customer 3 (Brynna NoAcctBalancesOrDebt).

# Credit Card Payments

The credit card payment menu allows you to pay off your credit card
running balance using a checking or savings account. You must select 
the id for the credit card you would like to pay off. Then you select 
the id of the account you would like to use to pay towards the balance.
Finally, select the payment type you would like. Minimum balance due
will pay 10% of the running balance. This is recalculated after each
update to the running balance. Custom amount will allow you to enter 
your own amount. The bank will not allow payments from accounts with 
insufficient funds or towards credit balances that are already paid off.

All customers are good for testing credit card payments. If you would 
like to test the edge case of paying towards a paid off credit balance, 
login as customer 3 (Brynna NoAcctBalancesOrDebt).

# Opening A New Account

The new account menu allows you to create a new checking, savings, or
investment account with a specified initial balance. All inputted values
will be truncated to two decimal places.

All customers are good for testing new accounts.

# New/Replacement Card

The new/replacement card menu allows you create a new debit or credit
card or replace your old one. You must select whether you want a new
card or to replace a card.

For a new card, you can choose a credit or debit card. For a new debit
card, you enter the checking account you want to connect to your debit
card, your zip code, and your new 4-digit pin. For a new credit card,
you enter your zip code, the credit limit (must be at least 100), and
your new security code.

For a replacement card, you choose the card you need to replace. The
system will ask you to enter a new pin or security code. The bank will
use the same card id, but will change the pin or security code. This
allows someone to protect their identity through a new code if they had
lost their card.

All customers are good for testing new/replacement cards.

# Open A New Loan

The new loan menu allows you to create a new mortgage or unsecured loan.
For a new mortgage, you must enter a loan amount, the number of years for
the mortgage (15, 20, or 30 years), and the address of the property in
the form [number] [street_name] [street_type] (ex. 123 main st). For a 
new unsecured loan, you must enter a loan amount, the number of years 
for the loan (max of 30), and the name of the loan (ex. student loans).
For both loan types, the bank will automatically calculate your monthly 
payment using the number of years for the loan. The funds will not be
automatically added to one of your accounts.

All customers are good for testing new loans.

# Make A Purchase

The purchase menu allows you to buy items from a vendor and update your
balances accordingly. First, you must select the card that you want to
use for the purchase and authorize the transaction using its pin /
security code. The pin / security code is given when all the cards are 
listed. Then, enter the id for the vendor you are purchasing from and
the id for the item you want to buy. Lastly, enter the quantity of the
item you want to purchase (max of 10, min of 1). This will be used to 
calculate the final cost of the transaction. The transaction will update
the balance of the credit card or associated checking account for the
debit card. The bank will not allow transactions from accounts/cards with 
insufficient funds. Through this menu, you are also able to add new vendors
and items.

All customers are good for testing new loans. If you would like to test 
the edge case of purchasing with insufficient funds, login as customer 3 
(Brynna NoAcctBalancesOrDebt).

# Check Your Accounts

The check your accounts menu allows you to view all of your accounts to
easily see the balance changes and new accounts.

All customers are good for testing check your accounts.

# Check Your Credit Cards

The check your credit cards menu allows you to view all of your credit 
cards to easily see the balance changes and new credit cards.

All customers are good for testing check your credit cards.

# Check Your Loans

The check your loans menu allows you to view all of your loans to
easily see all the amount changes and new loans.

All customers are good for testing check your loans.

## Extra credit

1. Implemented all interfaces
2. Added functionality for creating new customers, accounts, loans, 
  cards, vendors, and items
3. Created menus for checking your own accounts, credit cards, and loans
4. Modularized code with different classes for each entity

About

Relational Database and Command Line Interface for a Bank

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages