Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

October 2023 Semester

The Task

The objective of this project is to allow students to design and implement a mini program.  You are to use flowchart to design your program, with clear steps and flows indicated. You need to use Python programming language to code all the programs, according to the project requirement.

In your report, write a short description, in 500 words, on your program design. You need to include the flowchart of your mini program in the report. You will also include screenshot samples on how the program should run in the report.

In your Python codes, include comments to explain the purpose of each section.

Assessment Marks Allocation

Component Assessed

Marks Allocation

1

Part 1 – Report with flowchart

15

2

Part 2a – Main Programs (Python)

40

Part 2b – Additional Features

10

3

Part 3 – User guides with screenshots

10

4

Part 4 – Oral Presentation

25

Total

100

The Case

Ms Chong started flower arrangement as a hobby in 2016, and posting her arrangements and bouquets on Instagram. Little did she know what her pictures and arrangements would be so popular. Friends and even strangers started asking her to sell them flowers.

With a large social media following and growing side business, Ms Chong has decided to go all in and run her florist business full-time with the name “Beautiful Blooms”. She will require a system to manage the buying of flowers, viewing orders and changing the status of orders.

For a start, Beautiful Blooms has decided to offer a limited selection of flowers arranged under 5 categories as shown below:

Category

Sample Picture

Romantic

Birthday

Grand Opening

Condolence

Anniversary

Details of all the products can be found in Appendix A.

Currently, all orders can taken manually. Every order must include the item code, item category, add-ons (if any), customer name, delivery address, recipient name, message for recipient, special instructions (if any) and lastly delivery date and time.

As an intern in IMDA (Infocomm Media Development Authority), your supervisor has assigned you to help Beautiful Blooms automate their sales process, inventory management and order management.

Project Requirement

After several rounds of discussion, Beautiful Blooms would like to have the following essential features to be included:

· Inventory management that includes setting up products, adding and removing products and pricing updates.

· Sales management that allows consistent order taking, taking delivery details, update of order status etc.

· Further features to be integrated in the application are the ability to filter products by category and sorting by price.

Based on you understanding, the application should display the below main menu to allow Beautiful Blooms to repeatedly perform the 2 key features.

@@@@ Beautiful Blooms @@@@

1. Inventory management

2. Sales management

0. Exit

Enter option:

Before presenting the main menu, your application needs to load the existing from “Products.txt” (Appendix A) into a collection*.

* you can decide to implement using either Dictionary or List.

Details of the 2 key features are presented below:

1. Inventory management

This feature allows the user to perform the following: (through a sub-menu)

a. View /Update blooms

b. Add new blooms

c. View / Update add-ons

d. Add new add-on

e. Back to main menu

a. This feature will list product details, as shown in Appendix A. At the end of the list, the program will display a prompt:
To update an item, enter the item code. Or enter 0 to go back to previous menu.
If there is no item with item code, display appropriate error message and return to sub-menu.
Program will display the item name, price, and status, if the item code exists.

User can enter the new price and/or new status to proceed with the update.
Any updates should also be effected into “Products.txt”

b. To setup a new item, these data elements should be collected:

· Name of item

· Item code: this has to be unique. Can be manually entered or automatically generated

· Price.

· Category: There are 5 fixed categories – Romantic, Birthday, Grand Opening, Condolence, Anniversary

The new item is created, added into the collection, with status “Available”. The “Products.txt” file is also updated with this new item.

c. This feature will list all the available add-ons, as shown in Appendix B. At the end of the list, the program will display a prompt:
To update an item, enter the item code. Or enter 0 to go back to previous menu.
If there is no item with item code, display appropriate error message and return to sub-menu.
Program will display the item name, price, and status, if the item code exists.
User can enter the new price and/or new status to proceed with the update.
Any updates should also be effected into “Addons.txt”

d. To setup a new add-on, the following information must be added:

· Name of the item

· Item code. This must be unique. It can be manually entered or auto generated.

· Price

The new addon is created,added to the collection, with the status ‘Available’. The ‘Addons.txt’ file is also updated with this new item.

2. Sales management

This feature allows to take orders, view orders and update orders according to their process. These options should be presented in the sub-menu)

a. Create order

b. View order

c. Back to main menu

a. When creating an order, the list of products is first displayed. At the end of the list, 3 options are displayed:

1) Filter products by category

2) Sort products by price

3) Order item

If “1” is entered, then these options will be displayed:
1) Romantic
2) Birthday
3) Grand Opening
4) Condolence
5) Anniversary

0) Go back
Select filter category

User can select the category by entering the appropriate number. For example, if the user enters “2”, then only products in the “Birthday” category will be displayed. At the end of the list, these options will be displayed:

1) Order item
2) Back to filter category
3) Back to main menu

If user enters “1”, the user will proceed to the Order item section (see below)

If “2) Sort products by price” option is chosen”, then the products will be listed in ascending order of price. At the end of the list, these options will be displayed:

1) Order item
2) Back to main menu

Order item section
When user chooses “Order item”, a prompt will be shown:
Please enter item code:

System should validate item code and only allow available items to be selected.
Next, the system will display the list of add-ons, e.g:
Available add-ons:
A001      Chocolates                                   $8
A002      Customized Handwritten card     $12
A003      Soft Toy                                       $16
Enter item code for addon, or 0 to skip.

Next, the system will prompt the user to enter:
- customer name

- recipient’s name

- message for recipient (limited to 300 characters)

- Store pickup or Delivery? ($35 for delivery)
(if delivery is selected, the below information will be required)

- delivery address

- delivery date

- same day delivery? (Additional charge of $35 applies).

The system will be display a summary as shown below:
----------     Order Summary       ---------
Item:        Angel Eyes     R001         $85
Addon:    Chocolates     ADD001         $8

Delivery date:  28 Aug 2023

Same day delivery:  No                   $0
Delivery charges:                             $35

Total                                                  $128

Customer’s name: travis Lin
Recipient’s name: Linda Foo
Message for recipient:
I love you XOXO
Delivery address: 123 ABC St, America 12345
-------------------------------------------------
Enter 1 to confirm, 2 to edit info, 0 to cancel :

If “1” is entered, an Order ID is generated. Order ID will follow this format: BBO-23-XXXX, where XXXX is a running number starting from 0001. The order is saved with the status “Open”. If “2” is entered, the user will be prompted to enter all information starting from customer name, then shown the summary again. If 3 is entered, nothing is saved.

b. When view order option is selected, the list of orders will be displayed.
- Only orders with “Open” is shown by default.
- At the end of the list, the following options are shown:
1) Edit/Cancel order
2) Filter order by status
3) Back to main menu
If “1” is selected, the user will be prompted to enter the order number. If order number exists, options will appear depending on its current status:

Current status

Options

Open

- Cancel order
- Change to Preparing

Cancelled

- Set back to Open

Preparing

- Change to Ready

Ready

- Change to Preparing
- Change to Closed

Closed

No option to change

If “2” is selected, the user can choose the option to filter (see the different status above), and only Orders with that status will be shown.

Below are suggestions for BONUS features for consideration. You do not have to incorporate all of them and you may include your own additional features.

a. Using Python Date library
- Set delivery fee to increase by $10 if delivery falls on Sat or Sun.
- Change order status to “Deliver today” if order delivery is currently today and not Ready yet.

b. Use OOP

- Use Objects to manage Products and Orders

c. Product popularity rating
- Add option to add a rating for products e.g 4.5/5 by 8 users
- Option to sort items by rating

Instructions for CA3 Report, Python Codes and User Guides

Cover Page

The cover page should include the institution name (and institution logo) the programme and the module name, the semester and year and date of submission. All these must be centralised in the page.

Write FULL Name and Student number as in the register on the cover. Students should a keep a copy of assignment submitted.

Python Codes

Suggested IDE and version: Wing Personal 7, Python 3.8.2 and above

Please zip all your Python codes into single file and upload it together with the report. If you used any additional Python library apart from the standard package, you need to include them in the submission.

Referencing

No referencing is needed for program designs and codes.

Font and Spacing

Font: Times New Roman

Font size: 12 and 1.5 for line spacing.

Penalty Marks for Late Submission of Assignment

By one day: 20% to be deducted from total marks.

More than one day: submission will NOT be graded.

Plagiarism and Collusion

Students are not allowed to reuse old assignments or submit projects from previous semesters or copy largely from sources, particularly from the Internet web.

The submitted report must show evidence that this is students’ own work. No marks will be awarded if there are no workings or reasonable explanations. Please be reminded that plagiarism and collusion is a serious offence, and all cases will be referred to the administration. Grades will be withheld if the submission is suspected of plagiarism or collusion till investigations are completed.