COMP642 Software Development


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 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: 
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 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. 
4. View current order details. 
5. Cancel current order if the order has not been fulfilled. 
6. View previous orders details. 
7. 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. 
 
2. 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. 
3. Perform error handling and prevention mechanisms to ensure that the application is 
robust, reliable, and resilient. 
4. Write and test your code for all the model classes and other components in your 
design using pytest. 
5. Your code must be clear and easy to maintain, and appropriately commented. 
6. 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. 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值