assessment overview this assessment will develop your skills in design
Search for question
Question
Assessment overview
This assessment will develop your skills in designing, constructing, testing, and documenting
a small Python program according to specific programming standards. You will write Python
code for a simple application whereby you will be developing a simple e-commerce
information management system as per the specification.
This assessment supports unit learning outcomes 2, 3 and 4.
Assessment details
This assessment requires you to create an e-commerce system allowing customers to log in
and perform shopping operations like purchasing products, viewing order history and
showing user consumption reports. Besides, admin users need to be created to manage the
whole system, who can create/delete/view customers, products and all the orders. Except for
the management part, admin users can view the statistical figures about this system. Since the
whole system is executed in the command line system, designing a well-formatted interface is
better and always showing proper messages to guide users to use your system. In this
assessment, we use open-source data from data.world, which contains 9 files of products. All
the product's data should be retrieved from these files.
In this assessment, we will decouple the relationship between various classes. As you can see
from the following image, we have four main parts, and when using the system, end users
only need to interact with the IOInterface class. The Main Control class handles the main
business logic. The operation classes use the model classes as templates to manipulate the
data reading/writing. With this design pattern, the input() and print() functions only exist in
the I/O interface class. No other classes have these functions. The file reading/writing
operations happen in the operation classes, which simulate the database activities.
End Users
Model Class
IOInterface
Main
Control
Operation
Class
Class All the Operation classes should not contain init() and str() methods. All the
methods declared in the operation class can be static. However, for simplicity, we still implement them
as normal class methods. When you use these methods, declare an empty operation class object and
use the object to invoke methods.
Important notes
•
•
•
•
•
•
•
•
•
•
Do not use absolute paths and follow the exact structure for the path as provided in the
examples in each section. All the path issues that cause your program to crash or an exception
will lead to no mark for functionality.
You must implement all required methods, but you may add additional ones if required.
Please make sure your file reading/writing operations include encoding type utf8. Changing
the application running environment could cause issues if you do not have the encoding type.
Any character encoding issues/exceptions will cause serious mark deductions.
If one method is not working and it hinders the program from continuing to run to show other
functionalities, the following functionalities will get no mark. For example, if your system
cannot log in, the functionality that needs to be marked after login will get no mark, and you
will only get marks for the menu part. Therefore, it is important to finish the methods one by
one and make sure they can work properly.
If any exceptions/errors happen when running your program, you will lose 50% of the
allocated function logic marks. For example, if the main menu function returns any error, the
maximum mark you can get is 5% instead of 10% in the function logic.
Add correct validation and output messages to make your code user-friendly.
The assessment must be done using Pycharm, Python Version 3.9.
The Python code for this assessment must be implemented according to the PEP8-Style Guide
for Python Code (PEP, 2023).
The allowed libraries are random, math, os, string, time, numpy, pandas, matplotlib, re.
You will not receive marks for the components if you use any other libraries besides those
mentioned.
In this assessment, it is required to add as many validation codes as you can to make sure your
system always works. Any exception that happens in your system will lead to a mark
deduction.
The Model and Operation classes should not contain any input/output operations, such as
print()/input().
Commenting on your code is an essential part of the assessment criteria. In addition to inline
and function commenting on your code, you should include comments at the beginning of
your program file, which specify your name, Student ID, the creation date, and the last
modified date of the program, as well as a high-level description of the program.