COMP642 Advanced Programming

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 upto 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 onCOMP642 Akoraka | Learn page.

This is an individual assessment. You must not collaborate or confer with others. Youmay help others by verbally explaining concepts and making suggestions in generalterms, but without directly showing or sharing your own code. You must develop thelogical structure, the detail of your code and the database on your own, even if you areworking alongside others. Code that is copied or shares a similar logic to others willreceive zero marks for both parties.The use of Artificial Intelligence (AI) tools, such as ChatGPT, to complete this assessmentis 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 firstpart to improve your design. Alternatively, you may you use the class diagram shown inAppendix A. Note that this is a simplified class diagram and shows the attributes only (andnot the methods). You may also add additional attributes to each class as you see fit.You are required to code your design (possibly代写  COMP642 Advanced Programming  amended after feedback) and create a GUI(using tkinter or Flask and Python) that works with your design. You will also write test casesto verify the functionalities of your software application.Customers should be able to place orders, view their current orders and past orders, cancelcurrent order (if the order is not processed yet), make payments, and viewtheir information.Staff should be able to view current orders, fulfil the orders, and update the status of theorders. Staff can also use the application to generate several reports for the company.Requirements

  1. Adapt your design from Project Part 1 as necessary, so that the followingfunctionalities can be implemented for customers and staff. You will need to useSQLAlchemy to store the objects to a MySQL database.

Customers can:

  1. Log in and Log out.
  2. View available vegetables and premade boxes.
  3. Place order for vegetables and premade boxes. Premade boxes need to beassembled based on the size. At checkout, pay for the item using credit card ordebit card or charge the amount to their account.
  1. View current order details.
  2. Cancel current order if the order has not been fulfilled.
  3. View previous orders details.
  4. View their own details.

Staff can:

  1. Log in and Log out.
  2. View all vegetables and premade boxes.
  3. View all current orders and their details.
  4. View all previous orders and their details.
  5. Update an order status.
  6. View all customers and their details.
  7. Generate a list of all the customers.
  8. Generate the total sales for the week, month, and year.
  9. View the most popular items.
  10. 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.

  1. Perform error handling and prevention mechanisms to ensure that the application isrobust, reliable, and resilient.
  1. Write and test your code for all the model classes and other components in yourdesign using pytest.
  1. Your code must be clear and easy to maintain, and appropriately commented.
  2. 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 customerto amend their details.COMP642 | OO programming Software Design | Page 2COMP642 | OO programming Software Design | Page 3Marking Criteria

Criteria Marks (out of 140)

Mark Range Application functionalities:

Customer (20)Staff (20)40

Efficiency (10) The code is highlyefficient and welloptimised, balancingperformance with

readability andmaintainability.The code is reasonablyfficient but may haveome areas forimprovement. It issomewhat optimised butcould benefit fromrefinements.The code is inefficient,either due to a bruteforce approach or beingoverly complex apatched together. Itlacks effectiveoptimisation and

resource management.Appendix A - Class Diagram COMP642 | OO programming Software Design | Page 5

posted @ 2024-10-23 18:31  hellyou  阅读(2)  评论(0编辑  收藏  举报