Tasks•Refactor or re-use your project started in assignment 1 to meet the following requirements:oProject has a layered design and implementation e.g. Presentation, Business, and Persistence withrecord-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 inmemory is within the Business Layer, and the File-IO is within the Persistence Layer.oRe-use your record object, or create one, (also known as entity object, data-transfer object) thatuses 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 withdata parsed from the first one hundred records in the csv file. If there are fewer than 100 records inthe dataset, use them all. The record objects should be stored in a simple data structure (array or alist), 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-separated file, writing to a new file.?Select and display either one record, or display multiple records from the in-memory data.?Create a new record and store it in the simple data structure in memory?Select and edit a record held in the simple data structure in memory?Select and delete a record from the simple data structure in memory•Take a screen shot of your program performing each task above, ensuring your full name is within eachscreen shot. E.g., print “Program by Your Name” replacing Your Name with your ACSIS name every 10records 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 one test, or a similar test):?Does the program read in records, placing data into correct fields of record objects??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 use the following programming concepts: variable, methods, a loop structure, adecision structure, File-IO reading from the dataset, File-IO writing a csv file, exception handling, use of anAPI 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, andinclude 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, submissionrequirements, and grading guide below