--Bhagyasri Kota--
--U63334155--
--Haoyu Zhang--
--U81614811--
--Qingyuan Zhang--
--U07172373--
Back-end
- Main.java - Main class used start the run and call the game selection class
- ATM.java - Its like an interface for the user to Bank created for the purpose giving ATM effect and also can used incase of other functions exclusive for the ATMs to be scalable
- Bank.java - Class that will be called from within ATM for the user to access the database, create account, signup, login or display info etc.,
- Account.java - Class that stores account information and corresponding attributes and methods like account balance, currency on which the account is operated, user whose account it is etc
- AccountCreation.java - Used to create account in database using information passed from front-end which acts as a account repository as well with methods to delete and get the list etc.
- AccountType.java - Enum class storing account type
- BankConstants.java - Stores constants such as open account fee, transaction fee, etc.
- BankRepository.java - Bank repository interface containing delete and getAllList methods used for class that owns bank repository.
- CheckingsAccount.java - Class for checking account. Extend Account
- CheckingsAccountCreation.java - Used to create checking account in database using information passed from front-end. Extend AccountCreation
- CurrenciesOffered.java - Used to get currencies offered and delete certain currency (implements BankRepository)
- Currency.java - Used to set and store current type with exchanging rate
- CurrencyType.java - Enum class contains the values of the types of currency
- Customer.java - Used to store customers' information including personal information as well as account/loan/stock information. Extend User
- DBManager.java - Used to link to database providing initialization and query.
- HighInterestEarningAccounts.java - Interface for account classes that have interests
- ListToFile.java - A utility class parsing list to file
- Loan.java - Used to store loan information for a certain user and account
- LoanStatus.java - Enum for Loan Status -- open, closed.
- Manager.java - Used to store manager information and their basic operation methods(get all customer accounts, stocks, etc). Extends User
- ManagerAccount.java - Used for manager account. Extends Account
- SavingsAccount.java - Used to manage saving account which entends Account and has interest(implemnets HighInterestEarningAccounts)
- SavingsAccountCreation.java - Used to create savings account in database using information passed from front-end. Extend AccountCreation
- SecuritiesAccount.java - Used to store user's stock information and manage (buy/sell) stocks. Extends Account
- SecuritiesAcntCreation.java - Used to create securities account in database using information passed from front-end. Extend AccountCreation
- Stocks.java - Used to manage stocks including stock ID, price, name, etc.
- StocksOffered.java - Used to store the list of all offered stocks, stock prices, stock names, etc, implementing delete and getAllList methods(from interface BankRepository)
- StocksPurchased.java - A class that records purchased stocks for a certain user and account
- Transaction.java - Used to records each transaction information including users, date, acocunts, collateral information
- TransactionType.java - An Enum contains all transaction type (withdrawl, deposit, loan open, stock sold, ...)
- User.java - Used for users containing user role, name, username, password, user id.
- UserCreation.java - Used to create user in database using information passed from front-end. Implements BankRepository
- UserRoles.java - Enum contains all user roles (manager, customer)
UI
- AccountItem.java - Account items from UI
- AccountScreen.java - Account screen items from UI
- BuyStockDialog.java - Buy stock UI.
- ChargingRulesDialog.java - Charging rules UI.
- CreateAccountDialog.java - Create Account UI
- CheckCustomersScreen.java - Check customers UI, extends ItemScreen.
- CreateSecuritiesAccountDialog.java - Create security account UI. Extend JDialog
- CustomerDetailsScreen.java - Customer Details Screen UI
- CustomerItem.java - Customer Item UI. Extend UIItem
- CustomerScreen.java - Customer Screen UI. Extend Screen
- DailyReportScreen.java - Daily Report Screen UI. Extend ItemScreen
- ItemScreen.java - Item Screen UI. Extends Screen
- LoanItem.java - Loan Item UI. Extends UIItem
- LoanScreen.java - Loan Screen UI. Extends ItemScreen
- LoginScreen.java - Login Screen UI. Extends Screen
- ManagerScreen.java - Manager Screen UI. Extends Screen
- Music.java - contains logic to start, loop and stop the music during program execution. Extends JFrame
- PayBackLoanDialog.java - Pay Back Loan UI. Extends JDialog
- RequestLoanDialog.java - Request Loan UI. Extends JDialog
- Screen.java - Screen UI. entends JFrame
- SellStockDialog.java - Sell Stock UI. Extends JDialog
- SignUpScreen.java - Sign Up Screen UI. Extends Screen
- StockManagementItem.java - Stock Management Item UI
- StockMarketManagementScreen.java - Stock Market Management Screen UI. Extends ItemScreen
- StockOfferedItem.java - Stock Offered Item UI
- StockPurchasedItem.java - Stock Purchased Item UI. Extends UIItem
- StockScreen.java - Stock Screen UI. Extends ItemScreen
- TransactionItem.java - Transaction Item UI. Extends UIItem
- TransactionScreen.java - Transaction Screen UI. Extends ItemScreen
- TransferDialog.java - Transfer UI. Extends Dialog
- UIItem.java - Base Item UI. Extends JFrame implements UIOwnable
- UIOwnable.java - Interface used for screen class which owns other screens
- ViewAllLoanScreen.java - Display all loans UI. Extends ItemScreen
- WithDrawlDepositDialog.java Withdrawl Deposit UI. Extends Dialog
Jar Files Forms_rt.jar Sqlite-jdbc-3.32.3.2.jar
Data Files Stocks.csv
-
Files to be parsed should be stored in src folder depending on the whether they are database or data files, for parser class to read class along with the .wav file for music to be played
-
Bonus Implementations: a. Parser created to read the json response from the stock api and write into file b. Welcome message will be played as soon as the ATM screen is displayed. c. Repository Pattern implemented to separate entities and the Dbstorage. We have created a BankRepository which will act as an master interface and also specific repositories for each entity like Account, User, Stocks etc.,. These interfaces named AccountCreation, UserCreation extends the main repository and is used to create successful records in db and as keep the data layer clean. d. GUI Implemented e. API created for stocks
-
To display the stock options and their prices, we leveraged the already available API from internet from financialmodelingprep and generated our own key which we used to call and receive response from the API in the form of JSON.
-
The structure from the above mentioned JSON is read and written into an CSV from which it is read to display on GUI. For this purpose we have created a separate ListToFile class which acts as a parser.
-
The code is tested to run on MAC computers due to unavailability of a Windows OS, we couldn't test but should work may be with a change in execute command. java -cp "src/database/*;src" Main
-
Platform Used - MAC
-
Navigate to the directory after downloading the project
-
Run the following instructions on command line:
a. javac -cp "src/database/" src/.java
b. java -cp "src/database/*:src" Main