Skip to content

This banking application goes beyond CRUD operations and basic functionalities. It offers investment forecasts, interest calculation for loans and much more.

License

Notifications You must be signed in to change notification settings

danilobsilv/banking

Repository files navigation

banking-app

This banking application goes beyond CRUD operations and basic functionalities. It offers investment forecasts, interest calculation for loans and much more.


Functional requirements

  • F.R 01: User Authentication
  • F.R 02: Bank Account Management
  • F.R 03: Banking Operations
  • F.R 04: Investment Forecasts
  • F.R 05: Interest Loan Calculations
  • F.R 06: Balance Inquiries
  • F.R 07: Financial Reports

Database conceptual modeling

database conceptual modeling


Conceptual model mapping

database mapping


Funcionalities

User Operations

  • .createUser(User user) - creates an user
  • .deleteUser(int userId) - deletes an user
  • .getUserId(String email) - returns the email of the specified user
  • .getUserById(int userId) - returns the user with the specified ID
  • .editUserPassword(int userId, String userNewPassword) - edits the user's password
  • .editUserUsername(int userId, String usersNewUsername) - edits the user's username
  • .verifyUserEmail(String userEmail) - returns boolean expression
  • .verifyUserPassword(String userPassword) - returns boolean expression
  • .getUsers() - gets all users
  • .showUsers() - to visualize the return of getUsers in the prompt
  • .verifyUserId(int userId) - returns boolean expression

Bank Account Operations

  • .createBankAccount(BankAccount bankAccount, String email, int userId) - creates a bank account
  • .deleteAccount(int bankAccountId) - deletes an account
  • .getBankAccounts() - gets all bank accounts
  • .showBankAccounts() - shows all bank accounts in the prompt
  • getAccountById(int bankAccountId) - gets an account given an Id
  • .getBalanceById(int bankAccountId) - gets the account balance
  • .updateBalance(float amount,int userId) - updates the balance value of an account

Transaction Operations

  • .createTransaction(Transaction transaction, int userId) - creates a transaction
  • .getTransactionByUserId(int userId) - gets a transaction given a user Id
  • .getTransactionsByType(TransactionType transactionType) - gets a list of transactions given a transaction type

Loan Operations

  • .createLoan(Loan loan, int accountId, intuserId) - creates a loan
  • .deleteLoan(int loanId) - deletes a loan given the id of the loan
  • .updateLoanStatus(int loanId, LoanStatusType newStatus) - updates the status of a loan
  • .getLoanById(int loanId) - gets a loan given a loanId
  • .getLoansByUser(int userId) - gets all the loans an user has
  • .getLoansByAccountId(int accountId) - gets all the loans given an account Id
  • .calculateMonthlyPaymentForLoan(int loanId) - calculates how much you have to pay per month
  • .calculateMonthlyPayment(float loanAmount, float annualInterestRate, int loanTermMonths) - calculates the monthly payment
  • .getLoanStatus(LoanStatusType loanStatus) - gets all the loans with the given status

Investment Operations

  • .createInvestment(Investment investment) - creates an investment
  • .deleteInvestment(int investmentId) - deletes an investment with the given Id
  • .updateInvestment(int investmentId, String investmentsColumn, String updateContent) - updates an investment with the given parameters
  • .listInvestments() - returns a list with all the existing investments
  • .getInvestmentById(int investmentId) - returns an investments with the given Id

Bank Reports

  • .getInvestmentForecast(int investmentId) - returns investment forecasts given an Id
  • .getInterestLoanCalculations(int loanId) - returns interest loan calculations given an Id

About

This banking application goes beyond CRUD operations and basic functionalities. It offers investment forecasts, interest calculation for loans and much more.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages