Assignment 3: Transaction Logger
Learning Outcomes
1. Utilize modules to Read and Write from CSV Files.
2. Develop a module to utilize in another python file.
3. Implement functions to perform basic functionality.
Program Overview
Throughout the Software Development Life Cycle (SDLC) it is common to add upgrades over
time to a code file. As we add code our files become very large, less organized, and more
difficult to maintain. We have been adding upgrades for our Bank client. They have requested the addition of the ability to log all transactions for record keeping. They require a Comma
Separated Values (.csv) file format to aid in the quick creation of reports and record keeping.
The log will be used to verify transactions are accurate. The transaction logger code will be
placed in a separate python module to avoid increasing the size of our existing code. We will
also make use of the time module to timestamp all transactions.
Instructions & Requirements
• Create a PyCharm Project using standard naming convention.
• Use your PE5 file as the starting point and download the customers.json file from
Canvas.
• Rename your asurite_transaction5.py to [ASUrite]_a3transaction.py in your project
folder.
Create a new python module/file and name it [ASUrite]_logger.py.
Important Note: Before you start, make sure your PE5 transaction.py file works!
Open and develop code in the new [ASUrite]_logger python module as follows:
1) Import csv to allow the functions defined in this file access to the functions needed to write to a CSV file.
2) Define a function log_transactions( ) that accepts a data structure containing all
transactions made during the execution of the application and writes the entire data
structure to a csv file. Review CSV video lectures for ideas of a data structure used
with the csv module. This function returns nothing.
Revised by Elva Lin
3) Move the create_pin( ) function we created in PE5 to the new
[ASUrite]_logger.py file
4) (Optional) Define a function format_money( ) that accepts a decimal value and
formats it as a dollar amount adding a dollar sign, commas, and 2 decimal places.
ex. $ 15,190.77 Return the formatted dollar amount.
Modify and enhance the [ASUrite]_a3transaction.py module as follows:
5) Import your newly created logger module developed above and time. The time
module has within it a function ctime() function that returns the current time:
time.ctime(). Print it in a console to become familiar with it.