Diploma in
Aerospace Engineering
Flow Chart Report
Project Title:
Fast-Food Ordering System
Student:
Umar (250557J)
Ammar (250474E)
Jefferson (241044D)
Page 1
Report
Table of Contents
1. Purpose & Program Usage
2. Flowchart
3. Program Design & Features
4. Appendices
1. Purpose & Program Usage
*What is the purpose of this program?
The purpose of this program is to create a reliable and fuss-free fast-food
ordering system that manages a user’s purchases from the menu and allows
the user to take control of their own order, with the option to add or remove
items easily with ease.
The purpose of this program is to also to reduce the hassle for users when
managing their payment after checking out, with the program helping users to
determine the subtotal with GST and discounts added, change or amount
shortage and simplicity when ordering with easy navigation for the user.
The program is also for mass usage by users in this scenario of a fast-food
ordering and payment system and hence, will need to be running continuously
and be ready so that a flow of users can constantly order.
*What this program does
This program keeps track of the user’s purchases and purchase cost with an
empty list, gradually adding up items and values whenever the user adds items
into their order using lists and dictionaries. The user can check the order they
have accumulated using an input in the code to do so, which will find the items
using the dictionary and list assigned.
This program also allows for easy yet simple customizability when needed
using the “edit order” or “change quantity” function in the code. This allows
the user to retain all their orders that they do not intend to erase and do not
need to start from the beginning just to remove an item or change the quantity
of their order.
This program also manages the payment side by generating the total costs with
GSTs and discounts applied (if any, by the user input), simplifying the user’s
Page 2
payment processes of having to calculate the cost or cut down the cost of the
item by themselves. On top of that, the program also helps calculate the
change that will be given to the user if paid by cash, or even the shortage in
amount if the user has paid lower than the total amount to reduce the user’s
hassle to determine the amount they have not paid in full.
The program will run continuously as it is designed with mass user usage in
mind, until the program is exited using the “exit” feature.
2. Flowchart
Implementation
State Management refers to the list that contains the order and cost which holds all
the data until the user pays or cancels their order.
Existence Check refers to the valid promo codes in the code, which will validate
whether the user has entered a valid promo code and whether that code is still in the
database.
The flowchart is rough planning on how the program should work and the
different paths if a condition is not satisfied or if an option is chosen. This helps
in executing the program as we can see what option should lead to which, and
where it should lead to in the end.
The flowchart also serves to check if our code is working as intended and also
helps in generating scenarios to “stress test” our code during testing stages to
ensure minimal errors and bugs.
3. Program Design & Features
Page 3
Special features
The ordering system has some special features that stand out from others such
as the promotional code redemption feature, where users can claim
promotional codes given from the fast-food chain’s apps or promotional
materials in the ordering system which redeems special discounts or items for
the user.
Special codes generated by the fast-food chain, for example “SG60PROMO”
which gives the user a 60% discount in the subtotal, can be added in the
discounts section on top of existing staff/student/loyalty member discounts
which will deduct away the respective percentage from the subtotal, with the
promotional code feature working just like how McDonald’s and some other
fast-food chains which have a similar feature. Only valid codes generated
(“SG60PROMO”, “PLUH”, “MOKFREENIGEL”) can work, whereas any other
codes that are entered are invalidated and there will be no discount.
*Why you design the program in this way
The ordering system is designed and programmed with mass user usage in
mind to reset and allow for the next user to use it as well by not terminating
the entire program and constantly running, which is why the main program
itself is running on a while loop, until terminated. For the next user to use, all
the users must do is press “enter” to start their new order.
It is also designed to allow the user to seamlessly modify their order and not
erase the entirety of their order while trying to do so by using appends and
remove from the list functions.
The program is made to be simple for users to use, by using numbers to
navigate through different sections of the program, like to view the menu, add
items or checking out. This gives the user an easy time navigating the system
and simplifies the ordering process.
Besides the user experience when using this program, this program is also
made to be easy to fix any bugs or do debugging as the program is made to be
simplified as much as possible. This means that in the event there is a bug in
the code, it will be easy to locate the bug as it mainly uses definition functions.
On top of that, it reduces the number of lines of codes when using the
definition function.
Page 4
If-Elif-Else statements are used as well to ensure the input is assigned to the
correct sections, this is used primarily in the main menu in the main program
part of the code, with each if/elif(s) directing to a certain section when a
certain number is inputted in the input box, with an else statement leading to
an “invalid choice” when the user inputs a number outside of the input ranges
or a non-numerical character.
Functions such as “.upper()” is used as well to ensure that the user, no matter
if the word they input is in lowercase but in the correct form, can be
recognized by the program.
Appendices
Appendix A -
Appendix B -
Page 5