Tasks?Refactor or re-use your project started in assignment 1 to meetthe following requirements:oProjecthas a layered design and implementatione.g. Presentation, Business, and Persistence with record-objects (also known as Model or Entity objects) or uses a Model View Controller framework.For example,all user interactions are via the Presentation Layer, the sequential data structure in memory is within the Business Layer, and the File-IO is within the Persistence Layer.oRe-useyour record object, or create one, (also known as entity object, data-transfer object) that uses the column names from the dataset as part of the source code, e.g. variable names, accessors/mutators names, or constants.oUse File-IO on startup to open and read the dataset, initializing one hundred record objects with data parsed from the first one hundred records in the csv file. If there are fewer than 100 records in the dataset, use them all. The record objects should be stored in a simple data structure (array or a list), use exception handling in case the file is missing or not available.oDisplays your full name on screen so it remains visible at all times, or after each user interaction.oProvide the user the interactive options and functionality to:?Reload the data from the dataset, replacing the in-memory data.?Persist the data from memory to the disk as a comma-separatedfile, writing to a new file.?Select and display either onerecord, or display multiple records from the in-memory data.?Create a new record and store it in the simple data structurein memory?Select and edit a record held in the simple data structurein memory?Select and delete a record from the simple data structurein memory?Take a screen shot of your program performing each task above, ensuring your full name is within each screen shot.E.g., print “Program by Your Name” replacing Your Name with your ACSIS name every 10 records of output when displaying many records and / or as part of the menu system (or GUI or Web Pageetc.)?Write a single unit-test as proof of concept using a testing framework to test one part of your program.oUnit-Test Examples (you would only do onetest, or a similar test):?Does the program read inrecords, placing data into correct fields of recordobjects??Does the program add a new record into the sequential data structure??Does the program update a record in the sequential data structure as expected??Does the program remove a record from the sequential data structure as expected?
Page 2of 4?Does the programcatch any exceptions or errors if the file is missing??Etc.?Comment your source code file, and unit test file, using documentation comments (docstrings in Python, XML-document in C# or VB.Net, JSDoc for server-side JavaScript etc.)?Your program should usethe following programming concepts: variable, methods, a loop structure, a decision structure, File-IO reading from the dataset, File-IO writing a csv file, exception handling, use of an API library, an array (or similar data structure), unit testing, N-Layered or MVC architecture.?Document your learning, demonstrate that your program runs and is unit tested with screen shots, and include the source code with your programmer comments within a single MS Word document. Also,include the original source code files as part of your submission. See the expected format, submission requirements, and grading guide below.