COMP642 Software Development 

104 阅读3分钟

COMP642 Advanced Programming 
Semester 2 2024 
Project - Software Development 

Worth: 40% 
Due: Friday, 1 November 2024 5:00 p.m. 
Late Penalty: Work not received by the due time attracts an immediate penalty of up 
to 25% of the marks available. No work will be accepted after Sunday, 
3 November 2024 5:00 p.m. 
Submission: Zip your completed files and submit the .zip through the link on 
COMP642 Akoraka | Learn page. 

This is an individual assessment. You must not collaborate or confer with others. You 
may help others by verbally explaining concepts and making suggestions in general 
terms, but without directly showing or sharing your own code. You must develop the 
logical structure, the detail of your code and the database on your own, even if you are 
working alongside others. Code that is copied or shares a similar logic to others will 
receive zero marks for both parties. 

The use of Artificial Intelligence (AI) tools, such as ChatGPT, to complete this assessment 
is prohibited. Assessment answers will be analysed for evidence of the use of AI and 
penalties may be administered. 

The University policy on Academic Integrity can be found here. 
Introduction 
Your task is to create a Python application which uses the model classes that you have 
designed in the first part of this project. Please refer to the feedback provided for the first 
part to improve your design. Alternatively, you may you use the class diagram shown in 
Appendix A. Note that this is a simplified class diagram and shows the attributes only (and 
not the methods). You may also add additional attributes to each class as you see fit. 
You are required to code your design (possibly amended after feedback) and create a GUI 
(using tkinter or Flask and Python) that works with your design. You will also write test cases 
to verify the functionalities of your software application. 
Customers should be able to place orders, view their current orders and past orders, cancel 
current order (if the order is not processed yet), make payments, and view their information. 
Staff should be able to view current orders, fulfil the orders, and update the status of the 
orders. Staff can also use the application to generate several reports for the company. COMP642 | OO programming Software Design | Page 2 
Requirements 

  1. Adapt your design from 代 写COMP642 Software Development  Project Part 1 as necessary, so that the following 
    functionalities can be implemented for customers and staff. You will need to use 
    SQLAlchemy to store the objects to a MySQL database. 
    Customers can: 
  2. Log in and Log out. 
  3. View available vegetables and premade boxes. 
  4. Place order for vegetables and premade boxes. Premade boxes need to be 
    assembled based on the size. At checkout, pay for the item using credit card or 
    debit card or charge the amount to their account. 
  5. View current order details. 
  6. Cancel current order if the order has not been fulfilled. 
  7. View previous orders details. 
  8. View their own details. 
    Staff can: 
  9. Log in and Log out. 
  10. View all vegetables and premade boxes. 
  11. View all current orders and their details. 
  12. View all previous orders and their details. 
  13. Update an order status. 
  14. View all customers and their details. 
  15. Generate a list of all the customers. 
  16. Generate the total sales for the week, month, and year. 
  17. View the most popular items. 
  18. Implement an appropriately designed view. Your view should be an interface with 
    appropriate controls, useful feedback, and exception handling. You may use tkinter 
    or web application to implement the view. 
  19. Perform error handling and prevention mechanisms to ensure that the application is 
    robust, reliable, and resilient. 
  20. Write and test your code for all the model classes and other components in your 
    design using pytest. 
  21. Your code must be clear and easy to maintain, and appropriately commented. 
  22. Your application does not have to provide facilities for staff to add new 
    customers/vegetables, delete existing customers/vegetables, or amend 
    customer/vegetable details. It also does not have to provide facilities for a customer 
    to amend their details. 




    COMP642 | OO programming Software Design | Page 3 
    Marking Criteria 
    Criteria Marks 
    (out of 140) 
    Mark Range 
    Application functionalities: 
    Customer (20) 
    Staff (20) 
    40 Marks will be assigned using the following criteria: 
    All requirements met (81% - 100%) 
    Some requirements met (51% - 80%) 
    Minimum requirements met (1% - 50%) 
    Application Interface 


    10 Excellent user interface, intuitive, and user friendly. 
    Widgets are well-chosen, effectively implemented, 
    and enhance the user experience (9 – 10). 
    The user interface is intuitive and user-friendly. 
    Widgets are mostly appropriate and functional but 
    may have minor usability issues (7 – 8). 
    The user interface provides basic functionality but 
    lacks in intuitiveness and user-friendliness. Widgets 
    may be poorly chosen or implemented, leading to 
    confusion or difficulty in their use (5 – 6). 
    The user interface is not intuitive or user-friendly. 
    Widgets are poorly chosen or implemented (1 – 4). 
    Error Handling and Preventions 10 All relevant errors are detected and handled 
    appropriately (9 – 10). 
    Some errors are detected and handled 
    appropriately but may miss some less common 
    issues (5 – 8). 
    Minimal or ineffective error detection; many errors 
    are not identified (0 – 4). 
    Testing 10 Comprehensive test coverage with all relevant 
    areas of the application thoroughly tested, 
    including edge cases (9 – 10). 
    Most key areas are tested, though some gaps may 
    exist. The test suite covers essential functionality 
    and interactions but might miss a few edge cases 
    or less common scenarios (5 – 8). 
    Significant gaps in test coverage, with critical areas 
    or edge cases often untested. The test suite lacks 
    depth and fails to cover many aspects of the 
    application (1 – 4). 
    Code 70 See Code Evaluation Rubric. 
    Total 140 

  WX:codinghelp