Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
48024 Programming 2 Assignment 2
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
Working Language
The specification is illustrated based on Java. You can simply translate the Java syntax to Python for your Python solution. Detailed explanations about Python criteria will be posted on the FAQ page. 8.10.2024
Expected workload
Skeleton Code
Java:
- You are not allowed to modify the model classes in any way
- You cannot add extra controllers or views; you can only write your implementation in the files provided
- You cannot alter the folder structure
- You may add to the style.css file if you like, but do not modify any of its existing content.
Python:
- You are not allowed to modify the model classes in any way
- You will need to add extra classes/views/controllers to complete your implementation; how you structure this is up to you.
- You may alter the folder structure. If you cannot understand a reason to do this, then don’t; but certain implementations may run into import problems that can be easily resolved with moving folders around; you are allowed to do this.
- You may add to the Utils.py file if you like, but do not modify any of its existing content.
Model Changes
Specification
A demonstration video is also provided on Canvas. This demonstration video is considered part of the specification and is intended to demonstrate exactly what your program should do in both functionality and looks.8.10.2024
The video is considered your intended solution for both Java and Python with the sole exception that Javas colour scheme is yellow whilst Pythons colour scheme is blue. However, this will be done for you if you use the provided classes (see ‘Styles’ above)
A rubric is also provided on canvas, however this is mostly just a written version of what the demonstration video presents. However, it is still worth checking as this is the exact rubric that your tutor will mark against during the final demonstration.
Requirements
For both Java and Python, your windows should not be resizable, and the X button (at the top right) should not be capable of closing the window. The only way to close the program should be using the Close button you have implemented.
For Java, you can use the FixedStage class provided for you in the scaffold to achieve this. This class is not provided in the python scaffold; however, lecture 9 discusses a method to achieve it.
The exact values used in the window above were 600 for the width of the window, and a vertical spacing of 20 between the elements. However, note that there is no requirement that you use the same exact values, as long as the elements proportionally are the same.
- Your solution must follow the MVC architecture and utilize multiple window displays.
- Your solution must keep the package structure and class names that were provided in the skeleton code.
- For Java, the views must be laid out in FXML.
- Canvas: JAR file
- Ed: Complete source code
- Canvas: .zip file
- Ed: Complete source code
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 in 10 marks deduction of assignment 2.
The Ed submission is used for record-keeping and will not provide any test cases or feedback on your submission. Tutors will mark the functionality of your solution in the week 12 demonstration by opening your .jar/.zip from Canvas. It is your responsibility to rigorously test this and make sure it works.
For JavaFX solution, 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. Kindly note that jdk1.8 is the baseline for the assignment. If your work is based on other JDK versions, it’s your own responsibility to generate a compatible jar that can run on jdk1.8. The incompatible jar file will be marked 0 directly.
Demonstration and Extension
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, your case will be forwarded to the Misconduct Committee, and you will receive a “high similarity” note on ED submission and your mark will be pending.
The due date won't be extended as assignment 2 requires a 3-minute demonstration in the lab class of Week 12. Extension approval CANNOT be given after the due date. Extension request must be submitted before due through forms: Extension request for 48024_2024 SPR. For any extension beyond the demonstration class, you will need to submit a Special Consideration following the Special Consideration process for special consideration for reasons including unexpected health, family, work problems, or other extenuating circumstances.8.10.2024
Online support
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:
Requests for appointments outside the given consultation hours may be arranged where circumstances require, and to do so please book time to meet with us.
Marking Scheme
The marking scheme for the assignment provides more details to the Rubric Table on Canvas. Note that individual tests may test several functionality components, and a functionality component may be tested by several tests.
Login |
Invalid credentials open the error window |
0.5 |
Valid credentials go to applicable dashboard |
0.5 |
|
Stage disappears on valid credentials |
0.5 |
|
User Dashboard |
Shop button goes to appropriate window
Order History button goes to appropriate window
|
0.5 |
Close button exits entire application |
0.5 |
|
Supplier List |
All suppliers in the organisation shown in ListView |
0.5 |
ListView is Single Select only |
0.25 |
|
Shop button goes to appropriate window |
0.5 |
|
Stage disappears on valid selection |
0.5 |
|
Supplier Dashboard
|
Available products shown in TableView |
0.5 |
TableView doesn't allow selection |
0.5 |
|
Order button goes to appropriate window |
0.5 |
|
Cart Dashboard |
Available products shown in TableView |
0.5 |
TableView is Multi Select |
0.25 |
|
Add to Cart |
Appropriate window opens for all selected items |
1 |
On add, selected products are removed from catalogue |
1 |
|
On add, selected products are not removed from the supplier |
1 |
|
Error window opens when an invalid stock is entered |
0.5 |
|
View Cart |
All products in the catalogue shown in TableView |
0.5 |
Remove button removes product from cart |
0.5 |
|
Remove button adds product back to catalogue |
1 |
|
Cancel Cart |
Closes window and makes no changes to the supplier list |
1 |
Cart Checkout |
Closes window and the order is reflected in the supplier list |
1 |
Order History |
Shows order history in a ListView |
0.5 |
User Dashboard (Manager) |
Text has changed to reflect a Manager is logged in |
0.5 |
Manage button opens supplier list with only the suppliers that the user manages
|
1 |
|
Supplier Dashboard (Manager) |
Filter checkbox filters TableView by availability |
1 |
Remove/Delist (Manager) |
Remove button removes product from supplier |
0.5 |
Delist delists product |
0.5 |
|
Delist button stays inactive on a product that has been previously delisted |
1 |
|
Error Window |
Exception and appropriate custom message are displayed |
0.5 |
Layout |
Heading content consistently matches demo video |
0.5 |
All elements stretch width of window |
0.5 |
|
Buttons have no horizontal padding |
0.5 |
|
Elements are spaced out vertically |
0.5 |
|
Styling |
Colour, font and size of elements/window consistently match demo video
|
1 |
Buttons |
Buttons activate and deactivate as expected consistently |
1.5 |
Icons/Title |
Window icon and title consistently match demo video |
0.5 |
Window |
Windows are unresizable and cannot be closed using the X button
|
0.5 |
Total |
25 |