ITECH1400 – Foundations of Programming Assignment Help

Assignment Overview

You are tasked with creating an application that uses a GUI that simulates a simple banking interface similar to an ATM / online banking using the Python 3 programming language.

Get Assignment Solution

The assignment is broken up into five main components:

  1. 1.)  The ability to provide an account number and a PIN (Personal Identification Number) to sign into a bank account,
  2. 2.)  The ability to view the balance of the bank account and to deposit and withdraw virtual money into and out from the account,
  3. 3.)  The ability to save transactions via file storage so that you can log in, deposit some money and then log out – and when you log back in that money is still there, and finally
  4. 4.)  The ability to display a graph of projected earnings on the bank account via the compound interest accrued over a variable amount of time.
  5. 5.)  A Test Case that ensures your BankAccount’s deposit and withdraw functionality operates correctly.

Your submission should consist of three Python scripts that implement this application as described in the following pages: bankaccount.py, main.py along with a testbankaccount.py which contains a small test case with a few simple unit tests than ensure that your bank accounts deposit_funds and withdraw_funds methods operate correctly.

You are provided with a ‘stub’ of each of these files which contain all the function declarations and comments which describe the role of the function and how it can be put together, but you will have to write the code for vast majority of the functions yourself. You are also provided with a stub of the bankaccounttestcase.py file.

Bank Account Class Design

The design for a BankAccount object is laid out in the following class diagram:

Calculating Interest

To make it worthwhile for you to keep your money with a bank, the bank offers you an interest rate on your savings. Interest will be applied to the balance of an account once per month.

Let’s do an example – suppose you had $10,000 in a bank account and the bank paid you monthly interest at a rate of 3% per year. That would mean the bank pays you 3% of your balance divided by 12 (because there are 12 months in a year) per month. If we start our example on January and run it for a few months (and we don’t deposit or withdraw any money throughout the year) then we end up with our bank balance changing like this:

The Main Python Script

Our main.py script will contain all the main logic for our program. It will allow us to:

  • –  Enter an account number via an Entry field by using the keyboard,
  • –  Enter a PIN number via an Entry widget (we can use the keyboard OR a series of buttons to enter the

    PIN),

  • –  Once we are logged in we must be able to:

    o See the balance of our account,
    o Deposit funds into our account,
    o Withdraw funds from our account (only up to the amount we have available),
    o Display a plot of our projected interest over the next 12 months as outlined above, and finally o Log out of our account.

    Every time a successful deposit or withdrawal is made then a new transaction should be added to the account’s transaction list. When we log out then the account file is overwritten with the new account details including our new balance and any transactions if any have been made.

 

error: