elizabethpursell/Bank-Relational-Database
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
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