Can you do this assignment?till night
Assignment 3 Task Specification [ITECH2306] ITECH2306 – Assignment 2 Task Specification (2021-S1) Page 1 of 10 ITECH2306 Agile Coding Assessment task: Assignment 3 Real-Estate Agency GUI-based Records System Overview You will develop a moderate-sized Java program with another student, in order to demonstrate your understanding of topics from weeks 1 to 10. You are provided a detailed set of functional requirements which describe the behaviour that must be exhibited by the program you create. These are all detailed in the remainder of the assignment. Make sure you read it all carefully before you and your partner commence, so you understand what needs to be achieved. Finally, there are a range of suggested Tasks to be completed (see next page). If you have any questions about any of the requirements, please ask your teacher through their preferred means of communication. For this assignment, you should work with one other student only. Neither you nor the other student may get anyone else to do any of your work. You may be asked to attend a private interview with the marker to explain portions of the code before the assessment mark is finalised. Timelines and Expectations Percentage Value of Task: 20% Due Date: Sunday 30th May at 11:59pm (end of Week 11) Cut-off Date: Wednesday 9th June – after this date, you would get 0% Minimum time expectation: 8 hours Maximum time expectation: 20 hours Learning Outcomes Assessed The following course learning outcomes are assessed to some degree, by completing this assessment: S1. Develop object-oriented programs involving several interacting classes. S2. Develop, compile and debug code using an appropriate IDE S3. Manage multiple versions of source code used to create separate software releases. S4. Select appropriate ways to represent data and collections of data. S5. Incorporate pre-written classes, including those from an API, into software solutions. S6. Develop object oriented programs which incorporate event driven aspects A1. Design, develop, test, debug and release programs from supplied program specifications. In particular, this assignment is focused on assessing your attainment of a range of the learning objectives of weeks 1 through 10 of the course, with an emphasis on the later weeks. For more detail on how you are marked, refer to the section at the back of this Task Specification document. ITECH2306 – Assignment 3 Task Specification (2021-S1) Page 2 of 10 Tasks to be completed The following is a description of the tasks you and your partner may want to complete to address the needs of this assignment: 1. Read through the entire assignment task description to understand what the program needs to achieve and how you will be assessed. 2. Decide which of you will be Person 1, and which of you will be Person 2, as there are specific tasks to be done by each member of your small group. 3. You may like to develop a class diagram to organise your thoughts. (This is not marked.) 4. Decide a team name, perhaps made by combining your names. Then one of you needs to accept the GitHub Classroom assignment by clicking the link in Moodle (underneath the link you clicked to obtain this document) to create your team, then create your repository. Then the other student can accept the assignment and select the team created by the first student,, then you will both have access to the repository and will be able to clone/link it into your own IDE as you have done in some of the lab classes. 5. Start coding, by working on one functional requirement to start with. Develop code to address it. Once that functional requirement is fully addressed/working and tested, commit the code to the repository (you can commit more frequently if you wish), then take another functional requirement and repeat the process. Because you are now working with a partner, you will need to regularly pull and merge the work of your partner. Refer back to earlier week’s labs for assistance on merging (if required). Develop code to address further requirements. 6. Complete the individual documentation requirements. 7. Submit the completed work. Assessment Details Overview You are to develop a GUI-based application for use by a real estate agency. The real estate agency’s key customers are owners of properties that want to sell those properties, or owners of properties who want the agency to manage a lease/rental by a tenant of that property. The program ultimately needs to persist data about the properties, between each run of the program. To begin with you can read some default set of data from some files being provided to you. There are also a set of domain classes provided that you can use to commence your coding. The work for this assignment is to be done in pairs. Context/Background Information The real-estate agency is a business which interact with property owners, and either buyers or people called tenants who want to use a property that is owned by someone else (because the owner has decided that the property will be made available for a tenant to use, in exchange for a regular fee called the ‘rent’). The real- estate agency provides a service to the owners (and also to tenants): for example, by making available a list of properties for sale, a person can find out about the properties they might be interested to buy. In order to keep track of all the properties, and the owners of the properties, the agency wants a computer program which allows them to enter the information, and retrieve the information in the form of reports that they could print-out. Provided code files You are being provided with code files that implement the key domain classes: Seller represents a type of Owner who wants to sell a property through the real-estate agency. ITECH2306 – Assignment 3 Task Specification (2021-S1) Page 3 of 10 Landlord represents a type of Owner who wants to let a tenant lease the property for a fee, paid through the real-estate agency (for convenience and for a degree of separation mediated by staff who are experienced in dealing with tenants). SaleProperty represents a type of Property that is currently being marketed for sale to anyone who would like to buy it. RentalProperty represents a type of Property that is currently being leased by a tenant. Provided Data Files You are provided with 2 data files that conform to the following described file-formats. The files use a format based on the style called CSV (Comma Separated Values), which means that each field of a record is separated by a comma, in a plain-text file. Microsoft Excel can interpret a CSV file and shows each field in a separate column. When marking your work, the marker may use different data files (e.g. with more data), but they will conform to the format describe below. Your program should work with any conforming data files. Property-Owners file (owners.csv): The very first line is a number, specifying how many ‘records’ follow in the file. There are then that many records on as many subsequent lines in the file. A record is a set of data items about an individual entity (in this case, properties). The format of each record for the property owners file is as follows: The first column of the line (up to the first comma) is the full name of the owner of the property. The second column is the address of the owner of the property. (Sometimes this is the address of the property such as if the property is the house of the owner.) The third column of the record is a unique “owner” code used by the Real Estate Agency to identify that owner. The fourth column of the record is a digit signifying whether this person is a Seller of a property (value 1), or the Landlord of a property that others can rent/lease (2). The remainder of the columns depend on whether the person is a Seller or a Landlord. If they are a Seller, then the remaining columns are as follows: The fifth column is the name of their conveyancer (a person from the legal profession who is responsible for the legal representation of the seller on the day ownership will change to the new owner). If they are a Landlord, then the remaining columns are follows: The fifth column is the bank account details of the owner (into which the collected rental fees needs to be paid). This is in the form of a BSB number (a 6 digit code identifying a specific bank branch) and then the bank account number after a colon. The sixth column will be the amount of rent they receive each week from the tenants of the property Properties file (properties.csv): The very first line is a number, specifying how many ‘records’ follow in the file. There are then that many records on as many subsequent lines in the file. The format of each record for the property owners file is as follows: The first column of the line (up to the first comma) is the street address of a property. The second column of the line is the town/suburb in which the property is located. The third column of the line is a unique code to signify this property within the system. The fourth column of the line is a number which will correspond to one of the codes that uniquely identifies an owner (and which will appear in the property-owners file). ITECH2306 – Assignment 3 Task Specification (2021-S1) Page 4 of 10 The fourth column of the line is a digit indicating whether the property is for sale (1) or whether it is being leased (2). The remaining columns of the line depend on whether the property is for sale or for lease. If the property is for sale: The fifth column will be the price (in dollars) that the owner hopes to receive from the sale. The sixth column will be the area of the inside of the building, reported in square meters. If the property is being leased: The fifth column will be the name of the primary person who is responsible for paying the rent (the tenant). The sixth column will be the phone number of the tenants. Tasks for Person