01.10.2022
Applications Programming Assignment 2
OO design, GUIs, MVC, tables, lists
Learning Outcomes:
Copyright By PowCoder代写 加微信 powcoder
This assignment supports objectives 3 – 5
25th October 2022 – 11:59PM (Tuesday Week 12)
Individual Work
All work is individual. You must write every line of code yourself except for code copied from study module sample code, lecture sample code, tutor demos or lab code.
In most cases, you may discuss ideas, approaches and problems. However, if an assignment task is labeled as “Advanced”, you must not discuss ideas, approaches and problems. Advanced tasks are designed to test your ability to think on your own.
You MUST NOT let another student see your solution code, and you MUST NOT look at another student’s solution code. Sharing your code on public forums such as the discussion board, or Internet forums such as stackoverflow.com is not permitted. More information about Academic Misconduct can be found at:
http://www.gsu.uts.edu.au/rules/student/section-16.html
UTS CRICOS PROVIDER CODE 00099F
01.10.2022
Skeleton Code
As a starting point for this assignment, you must use the skeleton code provided in Assignment 2 Description. There are two options for Java, a NetBeans version, which includes the structure required to import directly into NetBeans, and a plain version for other IDEs (which tend to be less rigid about their import requirements). You are NOT allowed to modify the model, add or remove any of the starting classes or FXML files.
Expected workload
The time to do the assignment to a distinction level (i.e. a mark between 75% to 84%) has been estimated at 25 hours for a student of average ability who has completed all the tutorial and lab exercises.
Specification
The specification is presented in several parts. In this document is given a series of screen shots and textual descriptions for visual reference.
A demonstration video is also presented on Canvas. This demonstration video is considered part of the specification and contains important details about the dynamic function of the assignment.
Main Menu (8%)
The main menu is opened when the application launches. It has “Login” button to access the Login window. It also has an exit button which shuts the entire application down. The main menu has a header section with a logo “SUPERMARKET” and the name “Membership Management System”. The title of the window includes a small icon and the tile “MMS – SuperMarket Mode”.
Login Window (12%)
The login window is launched from the main menu by opening a separate window. It has OK button to match the email and password for the user. The Cancel button closes the login window. The login window includes a same icon as the main menu and the title is set as “Sign In”.
UTS CRICOS PROVIDER CODE 00099F
01.10.2022
The OK button will open the admin window if the combination of the email and password is correct. If the combination is not correct, the error message “Incorrect login details” will show up. The TextField is reset to blank after click “OK”.
Admin Window (20%)
UTS CRICOS PROVIDER CODE 00099F
01.10.2022
The administration window is launched from the Login window by opening a separate window. The administration window displays the members’ information by a table with 3 columns “Name”, “Email” and “Phone”.
The administration window has buttons to open the membership window in a new window to add and update membership and has buttons to open the windows to list the credit slip and report. Only “Add”, “Report” and “Close” buttons are enabled initially.
When click on one member record in the table, the selected record is highlighted and the “Delete” “Select” “SLIP” buttons are enabled. Click the “Delete” button will remove the selected record from the table. The “Delete” “Select” and “SLIP” buttons will become disabled after the removal.
The Close button closes the administration window. The administration window includes a “SuperMarket” icon. The title of the window is “Session Admin” plus the name of the login user.
Admin Filter (12%)
On top of the administration window, there are two independent filters, which display the members with matched name or email. The filters work asynchronously with non-case sensitive partial matching function. Either name filer works, or email filter works, not both. For example:
UTS CRICOS PROVIDER CODE 00099F
01.10.2022
The membership list prints “Memberships list is not loaded” when there is no matches result. The
default input texts “Filter by name” and “Filter by email” are displayed when there is no input; The
default input texts are disappeared when the input starts.
Membership Window (12%)
The membership window is launched from the administration window by clicking “Select” for a
member’s record. The membership window displays the information of “Personal Details” and
“Membership Details” for an existing member.
The membership window has buttons to update the member’s information and has close button to close the membership window. Only “Update” and “Close” buttons are enabled.
Update button opens the error window when the input is not valid. The button closed the window when the input is valid or there is not input. The input validation is described in validator.java and associated with the error window. Meanwhile, Admin window immediately updates the member’s information.
The membership window includes an “edit” icon. The title of the window is “Accessing File: ” plus the name of the member.
UTS CRICOS PROVIDER CODE 00099F
01.10.2022
Membership Window Add (12%)
The membership window is launched from the administration window by clicking “Add”. The membership window displays the empty information, waiting for the input of “Personal Details” and “Membership Details” for a new added member.
The membership window has buttons to add and update member’s information, and has close button to close the membership window. Only “Add” and “Close” buttons are enabled.
Add button opens the error window when the input is not valid. Add button closed the window when the input is valid. The input validation is described in validator.java and associated with the error window. Meanwhile, Admin window immediately updates the membership list.
The membership window includes an “edit” icon. The title of the window is “Adding New Membership”.
Error Window (12%)
The error window is popped up when the input is not valid for a member’s record. The error window displays the input error messages based on the input validation described in validator.java.
• Name Pattern: First name and Last name are two strings with capital letters.
• Email Pattern: Domain name is appended with@ at the end of the address.
• Phone Pattern: 8 digits number
• Address Pattern: Started and ended with number, separated from the street name by space
• ID Pattern: 8 digits
Type will be calculated based on the input expense, which should be a positive float number.
The error window has “Okay” button to close the window. The title of the window includes an “error” icon and the name is “Input Exceptions”.
UTS CRICOS PROVIDER CODE 00099F
01.10.2022
Slip Window (8%)
The slip window is launched from the administration window by clicking “SLIP”. The slip window displays the membership information for the selected member.
The slip window has “Close” button to close the window. The title of the window includes an “edit” icon and the name is the member’s name plus “SLIP Report”.
Report Window (12%)
The report window is launched from the administration window by clicking “Report”. The report window displays the collective membership information for all the members listed in the Admin window.
UTS CRICOS PROVIDER CODE 00099F
01.10.2022
The report window has “Close” button to close the window. The title of the window includes an “UTS” icon, and the name is “MMS Report”.
Requirements
To get full marks, you should layout your windows to look as close as possible to the screenshots. This means that you should try to duplicate the spacing between and around nodes that is shown in the screenshots, and the width and height of the nodes, and the alignment of the nodes.
A CSS file is included in the skeleton code which provides all the styles used in the assignment. You don’t need to modify the CSS file.
Your solution must satisfy the following code requirements:
• Your solution must follow the MVC architecture and utilize multiple window display.
• Your solution must keep the package structure and class names that were provided in the skeleton code.
• The models must notify the views of changes by correctly applying the JavaFX property patterns and observable lists. Model data that can change must be observable. Model data that never changes need not be observable.
• The views must be laid out in FXML. Submission to ED
You will need to submit the source code to ED. The marker will check the source code to make sure all the requirements have been met. Missing the source code will result 10 marks deduction of the assignment 2.
UTS CRICOS PROVIDER CODE 00099F
01.10.2022
Submission to Canvas
Your assignment should be submitted as a JAR file that includes:
• All FXML, CSS and image files required to run your assignment.
• The binary files(.class) of the runnable jar file.
You can check the JAR file on a lab PC to make sure it works.
The due date won’t be extended unless under extenuating circumstances. Submission extension before the last lab class will be granted automatically with a late penalty. An extension CANNOT be given after the due date. For any extension beyond one week or extension without penalty, you will need to submit a Special Consideration following the Special Consideration process for special consideration for reasons including unexpected health, family, or work problems.
You will be marked by the Canvas submission for the features that can be demonstrated to work. Your tutor will ask questions based on your demonstration in the last lab class. Aside from marks for the functionality, the marker will also check your code to ensure that all code requirements have been met. Your final mark will be a combination of marks for functionality, marks for code (See Rubric table on Canvas) and moderation marks for answering questions.
Marking the code and analyzing spoofing, cheating and plagiarism is done in the two weeks following the due date. If you are suspected of Academic Misconduct, I will forward your case to the Misconduct Committee and your mark will end with “.1”. Your mark will be finalized within 2 weeks of the due date.
Online support
A FAQs (Frequently Asked Questions) page will be posted in the Assignment page on Canvas. If you have a question, check the FAQ page first, it may already be answered there. You should read the FAQ at least once before you hand in your solution, but to be safe check it every couple of days. Anything posted on the FAQ is considered to be part of the assignment specification.
If anything about the specification is unclear or inconsistent, check the FAQ first, then contact the subject coordinator who will try to make it clearer by replying to you directly and posting the common questions and answers to the FAQ. This is similar to working on the job, where you ask your client if you are unsure what has to be done, but then you write all the code to do the task.
The preferred way to ask assignment related questions is to participate in the lectures, lab activities, UPASS, and consultation sessions. Students are expected to seek help through the following steps:
Step 1: Check the FAQ
Step 2: Ask peers or via the group discussion board Step 3: Ask your tutor in the lab class
Step 4: Forward to the subject coordinator
The Subject Coordinator may be contacted by email if you have matters of a personal nature to discuss, e.g., illness, personal issues or other matters of importance. All emails sent to subject coordinators, tutors or lecturers must have a clear subject line that states the subject number followed by the subject of the email [e.g. Subject 48024, Appointment Request], and must be sent from your UTS email address.
Requests for appointments outside the given consultation hours may be arranged where circumstances require, and to do so please contact the subject coordinator by email.
UTS CRICOS PROVIDER CODE 00099F
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com