An Online Food Ordering System System Documentation Danny Jackowitz Dr. Yaodong Bi 12//1! Su"mitted in #artial $ul$illment o$ t%e re&uirements o$ '()S *+! , 'om#uter )ro-ects
1
Abstract
%e Online Food Ordering System descri"ed in t%is document %as "een designed to $ill a s#eci$ s#eci$ic ic nic%e nic%e in t%e market "y #roid #roiding ing small small restau restauran rants ts wit% wit% t%e a"ili a"ility ty to o$$er o$$er t%eir t%eir customers an online ordering o#tion wit%out %aing to inest large amounts o$ time and money in %ai %aing ng custo custom m so$t so$twa ware re desi designe gned d s#ec s#eci$ i$ic ical ally ly $or $or t%em t%em.. %e %e syst system em00 w%ic w%ic% % is %ig%l %ig%ly y cust custom omiz iza"l a"le0 e0 allo allows ws t%e t%e rest restau aura rant nt em#l em#loy oyee eess to easi easily ly mana manage ge t%e t%e site site cont conten ent0 t0 most most im#ortantly t%e menu0 t%emseles t%roug% a ery intuitie gra#%ical inter$ace. %e we"site0 w%ic% is t%e only com#onent seen "y t%e restaurant customers0 is t%en "uilt dynamically dynamically "ased on t%e current state o$ t%e system0 system0 so any c%anges made are re$lected re$lected in real time. isitors to t%e site0 once registered0 are t%en a"le to easily naigate t%is menu0 add $ood items to t%eir order0 and s#eci$y deliery o#tions wit% only a $ew clicks0 greatly sim#li$ying t%e ordering #rocess. Back in t%e restaurant0 #laced orders are #rom#tly retrieed and dis#layed in an easily reada"le $ormat $or e$$icient e $$icient #rocessing. %e %e #ur# #ur#os osee o$ t%is t%is docum document ent is to #roi #roide de ind inde#t e#t% % desc descri ri#t #tio ions ns o$ desig design n and and im#lementation details o$ t%e system0 as well as descri#tions o$ all aaila"le $unctionality and #lans $or eolution. 3n addition0 user manuals and trou"les%ooting ti#s %ae "een included $or all t%ree com#onents to gie t%e reader a clear idea o$ intended ty#ical use cases $or t%e system.
2
a"le o$ 'ontents '%a#ter 14 Justi$ication 5 Feasi"ility ....................................................................................5
......................................................... ........................................ ....................................... .................................... ................. 5 Justi$ication..................................... Feasi"ility...................................... .......................................................... ....................................... ....................................... ...................................... .................. 6 '%a#ter 24 6e&uirements S#eci$ication ..................................................................................8 System (odel....................................... .......................................................... ....................................... ........................................ ................................ ............ 8 Functional 6e&uirements ................................................................................................8 %e 7e" Ordering System ...........................................................................................9 (enu (anagement System ........................................................................................10
.......................................................... ....................................................... ................................... 11 Order 6etrieal System ...................................... 8ser 3nter$ace S#eci$ications .........................................................................................11 7e" Ordering System ..................................... ......................................................... ........................................ .................................... .................. .. 11 (enu (anagement System ........................................................................................12 Order 6etrieal System ...................................... .......................................................... ....................................................... ................................... 12 9on$unctional 6e&uirements 6e&uirements ........................................................................................12 System :olution ........................................ ........................................................... ............................................. ........................................ .................. .... 13 '%a#ter 4 System Design ....................................... .......................................................... ....................................................... ...................................... .. 15 System Design ........................................ ............................................................ ........................................ ............................................... ........................... 15 ;eel 14 %e Data"ase 5 t%e 'om#onents ....................................................................15 ;eel 24 7e" Ordering System 'om#onents ...................................................................15 ;eel 24 (enu (anagement System 'om#onents ............................................................18 ;eel 24 Order 6etrieal System 'om#onents .................................................................19 8ser 3nter$ace Design ...................................... .......................................................... ................................................ ........................................ ............ 20
3
)%ases.................................................................................................................. 22 6e&uirements racea"ility ............................................................................................. 24 esting Sc%edule ........................................................................................................ 25 6ecording )rocedures ..................................................................................................26
Al#%a"etical? .............................................................................................33 :rror 6ecoery....................................................................................................... 34 3nstallation............................................................................................................. 34
4
Chapter 1: Justification & Feasibility
Justification
3n today@s age o$ $ast $ood and takeout0 many restaurants %ae c%osen to $ocus on &uick #re#aration and s#eedy deliery o$ orders rat%er t%an o$$ering a ric% dining e#erience. 8ntil ery recently0 all o$ t%ese deliery orders were #laced oer t%e #%one0 "ut t%ere are many disadantages to t%is system. First0 t%e customer must %ae a #%ysical co#y o$ t%e restaurant@s menu to look at w%ile #lacing t%eir order and t%is menu must "e u# to date. 7%ile t%is e#ectation is not unreasona"le0 it is certainly inconenient. Second0 t%e orders are #laced using strictly oral communication0 w%ic% makes it $ar more di$$icult $or t%e customer to receie immediate $eed"ack on t%e order t%ey %ae #laced. %is o$ten leads to con$usion and incorrect orders. %e current system is also inconenient $or t%e restaurant itsel$0 as t%ey must eit%er %ae a dedicated sta$$ mem"er to answer t%e #%one and take orders0 or some em#loyees must #er$orm dou"leduty0 distracting t%em $rom t%eir regular tasks. 7%at 3 #ro#ose is an online ordering system0 originally designed $or use in college ca$eterias0 "ut -ust as a##lica"le in any $ood deliery industry. %e main adantage o$ my system is t%at it greatly sim#li$ies t%e ordering #rocess $or "ot% t%e customer and t%e restaurant. 7%en t%e customer isits t%e ordering we"#age0 t%ey are #resented wit% an interactie and u#todate menu0 com#lete wit% all aaila"le o#tions and dynamically ad-usting #rices "ased on t%e selected o#tions. A$ter making a selection0 t%e item is t%en added to t%eir order0 w%ic% t%e customer can reiew t%e details o$ at any time "e$ore c%ecking out. %is #roides instant isual con$irmation o$ w%at was selected and ensures t%at items in t%e order are0 in $act0 w%at was intended.
5
%e system also greatly lig%tens t%e load on t%e restaurant@s end0 as t%e entire #rocess o$ taking orders is automated. Once an order is #laced on t%e we"#age0 it is #laced into t%e data"ase and t%en retrieed0 in #retty muc% realtime0 "y a deskto# a##lication on t%e restaurant@s end. 7it%in t%is a##lication0 all items in t%e order are dis#layed0 along wit% t%eir corres#onding o#tions and deliery details0 in a concise and easy to read manner. %is allows restaurant em#loyees to &uickly go t%roug% t%e orders as t%ey are #laced and #roduce t%e necessary items wit% minimal delay and con$usion. 7%ile t%ere are already a $ew systems like t%is in eistence0 all t%ose 3 %ae encountered %ae "een designed s#eci$ically $or one restaurant0 and t%us cater only to t%eir uni&ue needs. )er%a#s t%e greatest adantage o$ my system is its $lei"ility. %e we" order $orms are "uilt dynamically $rom t%e data"ase0 w%ic% can "e managed using a gra#%ical user inter$ace. %is allows t%e restaurant em#loyees to not only set u# and customize t%e system on t%eir own0 "ut also allows t%em to make c%anges to t%e menu in real time. For t%is reason0 t%e eact same system can "e used "y numerous "usinesses wit% a"solutely no modi$ication to t%e code itsel$0 w%ic% greatly increases its use$ulness.
Feasibility
At t%e #resent moment0 t%e system is entirely $unctional0 sae t%e $ew minor "ugs w%ic% are "ound to #resent t%emseles during more etensie testing. A user is currently a"le to register and log in to t%e we"site and #lace an order. %at order is t%en dis#layed0 correctly and com#letely0 in t%e order retrieal deskto# a##lication. (uc% o$ w%at is le$t to do $ocuses not on im#roing $unctionality0 "ut rat%er on im#roing user e#erience "y creating ric%er gra#%ical inter$aces $or t%e user to interact wit% and modi$ying t%e a##lication@s icons and color sc%emes to make t%em more #leasing to look at and use. For t%is reason0 3 $eel t%at com#leting t%e #ro-ect in 6
t%e re&uired time$rame is ery $easi"le0 #articularly i$ 3 am a"le to ad%ere to t%e dates outlined in Figure 10 "elow. 3n addition to time0 a second $actor in$luencing $easi"ility is resources0 w%ic% also s%ould not "e a concern %ere. %e online ordering system is structured like a $airly standard we" a##lication0 and as suc% re&uires no s#ecial %ardware and only "asic so$tware0 namely we" and data"ase serers0 to $unction #ro#erly. %ere$ore0 3 antici#ate $inis%ing all o$ t%e re&uired work on time or0 ideally0 a%ead o$ sc%edule0 leaing me wit% time to inestigate a $ew additional $eatures 3 would like to add "ut are not integral to t%e system.
7
Chapter 2: Requirements Specification System Model
%e structure o$ t%e system can "e diided into t%ree main logical com#onents. %e $irst com#onent must #roide some $orm o$ menu management0 allowing t%e restaurant to control w%at can "e ordered "y customers. %e second com#onent is t%e we" ordering system and #roides t%e $unctionality $or customers to #lace t%eir order and su##ly all necessary details. %e t%ird and $inal logical com#onent is t%e order retrieal system. 8sed "y t%e restaurant to kee# track o$ all orders w%ic% %ae "een #laced0 t%is com#onent takes care o$ retrieing and dis#laying order in$ormation0 as well as u#dating orders w%ic% %ae already "een #rocessed.
Customer
Web Ordering System
Database
Order Retrieval
Restaurant Employee
Menu Management
Restaurant Employee
Functional Requirements
As can "e seen in t%e system model diagramed a"oe0 eac% o$ t%e t%ree system com#onents essentially #roides a layer o$ isolation "etween t%e end user and t%e data"ase. %e motiation "e%ind t%is isolation is two$old. Firstly0 allowing t%e end user to interact wit% t%e system t%roug% a ric% inter$ace #roide a muc% more en-oya"le user e#erience0 #articularly $or t%e nontec%nical users w%ic% will account $or t%e ma-ority o$ t%e system@s users. 3n addition0 t%is isolation layer also #rotects t%e integrity o$ t%e data"ase "y #reenting users $rom taking any action outside t%ose w%ic% t%e system is designed to %andle. Because o$ t%is design #attern0 it is 8
essential to enumerate eactly w%ic% $unctions a user will "e #resented and t%ese $unctions are outlined "elow0 grou#ed "y com#onent.
The Web r!erin" System
8sers o$ t%e we" ordering system0 namely restaurant customers0 must "e #roided t%e $ollowing $unctionality4 •
'reate an account.
•
(anage t%eir account.
•
;og in to t%e system.
•
9aigate t%e restaurant@s menu.
•
Select an item $rom t%e menu.
•
'ustomize o#tions $or a selected item.
•
Add an item to t%eir current order.
•
6eiew t%eir current order.
•
6emoe an item/remoe all items $rom t%eir current order.
•
)roide deliery and #ayment details.
•
)lace an order.
•
6eceie con$irmation in t%e $orm o$ an order num"er.
As t%e goal o$ t%e system is to make t%e #rocess o$ #lacing an order as sim#le as #ossi"le $or t%e customer0 t%e $unctionality #roided t%roug% t%e we" ordering system is restricted to t%at w%ic% most #ertinent to accom#lis% t%e desired task. All o$ t%e $unctions outlined a"oe0 wit% t%e ece#tions o$ account creation and management0 will "e used eery time a customer #laces an
9
order. By not including etraneous $unctions0 3 am moing towards my goal o$ sim#li$ying t%e ordering #rocess.
#enu #ana"ement System
%e menu management system will "e aaila"le only to restaurant em#loyees and will0 as t%e name suggests0 allow t%em to manage t%e menu t%at is dis#layed to users o$ t%e we" ordering system. %e $unctions a$$orded "y t%e menu management system #roide user wit% t%e a"ility to0 using a gra#%ical inter$ace4
•
Add a new/u#date/delete endor to/$rom t%e menu.
•
Add a new/u#date/delete $ood category to/$rom t%e menu.
•
Add a new/u#date/delete $ood item to/$rom t%e menu.
•
Add a new/u#date/delete o#tion $or a gien $ood item.
•
8#date #rice $or a gien $ood item.
•
8#date de$ault o#tions $or a gien $ood item.
•
8#date additional in$ormation >descri#tion0 #%oto0 etc.? $or a gien $ood item.
3t is antici#ated t%at t%e $unctionality #roided "y t%is com#onent will "e one o$ t%e $irst t%ings noted "y t%e restaurant user0 as t%ey will %ae to go t%roug% it to con$igure t%eir menu0 etc. "e$ore "eginning to actually take orders. Once eeryt%ing is initially con$igured0 %oweer0 t%is com#onent will likely "e t%e least used0 as menu u#dates generally do not occur wit% great $re&uency.
10
r!er Retrie$al System O$ t%e t%ree com#onents0 t%e order retrieal system is $unctionally t%e sim#lest. ;ike t%e menu management system0 it is designed to "e used only "y restaurant em#loyees0 and #roides t%e $ollowing $unctions4
•
6etriee new orders $rom t%e data"ase.
•
Dis#lay t%e orders in an easily reada"le0 gra#%ical way.
•
(ark an order as %aing "een #rocessed and remoe it $rom t%e list o$ actie orders.
User Interface Specifications :ac% o$ t%e system com#onents will %ae t%eir own uni&ue inter$ace. %ese are descri"ed "elow.
Web r!erin" System 8sers o$ t%e we" ordering system will interact wit% t%e a##lication t%roug% a series o$ sim#le $orms. :ac% category o$ $ood %as its own $orm associated wit% it w%ic% #resents a dro# down menu $or c%oosing w%ic% s#eci$ic item $rom t%e category s%ould "e added to t%e order0 and a series o$ c%eck "oes and radio "uttons $or selecting w%ic% o#tions are to "e included. Adding an item to t%e order is accom#lis%ed "y a single "utton click. 8sers select w%ic% category o$ $ood t%ey would like to order0 and t%ere$ore w%ic% $orm s%ould "e dis#layed0 "y naigating a menu "ar0 an a##roac% w%ic% s%ould "e $amiliar to most users. :ntering deliery and #ayment deals is done in a similar manner. %e user is #resented wit% a $orm and must com#lete t%e re&uired $ields0 w%ic% include "ot% dro# down and tet "oes0 "e$ore c%ecking out and receiing a con$irmation num"er. One t%ing wort% noting %ere is t%at w%eneer #ossi"le dro# down "oes and "uttons were used oer $ree$orm in#ut in order to "ot% sim#li$y t%e ordering #rocess and reduce t%e #ossi"ility o$ and S; in-ection attem#t.
11
#enu #ana"ement System 8ser interaction wit% t%e menu management system is similar to t%at wit% t%e we" ordering system. 8sers naigate a tree structure to $ind t%e endor0 category0 or s#eci$ic $ood item t%at t%ey would like to modi$y and a$ter making t%eir selection t%ey are #resented wit% a $orm w%ic% dis#lays all o$ t%e current $ields and alues associated wit% t%at item0 all o$ w%ic% can "e modi$ied or remoed. %e $orm also #resents "uttons w%ic% allow t%e addition o$ new $ields and alues. 8nlike t%e we" ordering system0 %oweer0 most o$ t%e in#ut %ere will "e $ree$orm0 s#eci$ically in t%e $orm o$ tet "oes0 since t%ere is no $inite set o$ $ields w%ic% could "e added. %is does not raise a ma-or concern t%oug%0 as in#ut sanitation will "e #er$ormed0 and t%e user0 w%o is assumed to "e a restaurant em#loyee0 is less likely to "e malicious t%an a we" user.
r!er Retrie$al System
8ser interaction wit% t%e order retrieal will "e ery sim#le. %e a##lication will automatically $etc% new orders $rom t%e data"ase at regular interals and dis#lay t%e order num"ers0 along wit% deliery time0 in a #anel on t%e le$t %and side o$ t%e a##lication. o iew t%e details o$ an order0 t%e user must sim#ly click on t%at order num"er0 w%ic% will #o#ulate t%e rig%t%and #anel wit% t%e details0 dis#layed in an easy to read and naigate tree structure. %is structure can intuitiely "e e#anded and colla#sed to dis#lay only t%e desired in$ormation. Finally0 once and order is #rocessed0 t%e user clicks a single "utton0 la"eled C)rocessed0 to remoe it $rom t%e list o$ actie orders.
Non-functional Requirements
Because t%e design #atterns o$ t%e Online Ordering System are #retty muc% t%e standard $or a we" a##lication0 t%e non$unctional re&uirements o$ t%e system are ery straig%t$orward. Alt%oug% written using Eoogle 7e" oolkit0 t%e a##lication is crosscom#iled to <(; and JaaScri#t0 along wit% a )<) "ackend0 all o$ w%ic% are su##orted "y any reasona"ly well 12
maintained we" serer0 alt%oug% 3 would recommend A#ac%e20 and #articularly t%e $ree A()) distri"ution. All o$ t%e a##lication data is stored in a )ostgreS; data"ase0 and t%ere$ore a )ostgreS; serer must also "e installed on t%e %ost com#uter. As wit% A#ac%e20 t%is so$tware is $reely aaila"le and can "e installed and run under most o#erating systems. %e serer %ardware can "e any com#uter ca#a"le o$ running "ot% t%e we" and data"ase serers and %andling t%e e#ected tra$$ic. For a restaurant t%at is not e#ecting to see muc% we" tra$$ic0 or #ossi"ly doing only a limited test run0 an aerage #ersonal com#uter may "e a##ro#riate. Once t%e site starts generating more %its0 t%oug%0 it will likely "e necessary to u#grade to a dedicated %ost to ensure #ro#er #er$ormance. %e eact cuto$$s will need to "e determined t%roug% a more t%oroug% stress testing o$ t%e system.
System Evolution
As mentioned in t%e system model0 at t%e %eart o$ t%e entire ordering system is t%e data"ase. 3n $act0 t%e system could "e com#letely o#erational using not%ing "ut t%e data"ase and an a##ro#riate s%ell utility0 assuming t%at all users are wellersed in S; and en-oy using it to order $ood. 7%ile t%is would "e a "it etreme0 it does illustrate t%e #oint t%at t%e one #art o$ t%e system w%ic% will stay relatiely constant is t%e data"ase. On t%e ot%er %and0 it is ery #ro"a"le t%at t%e ot%er com#onents will continue to eole wit% time. For eam#le0 wit% t%e "ooming #o#ularity o$ mo"ile a##lications0 3 would really like to make t%e we" inter$ace aaila"le as a #%one a##lication as well. Also it may make sense to at some #oint migrate t%e menu management and order retrieal systems to we"0 or een mo"ile0 a##lications as well0 as some users may #re$er to use t%em as suc%.
13
3 am also certain t%at i$ t%is system goes into actual use0 many re&uests will arise $or additional $eatures w%ic% 3 %ad not #reiously considered0 "ut would "e use$ul to %ae. For t%is reason0 3 $eel as t%oug% t%e a##lication can "e constantly eoling0 w%ic% 3 consider a ery good t%ing.
14
Jackowitz – System Documentation [123!
Chapter %: System esi"n
System Desin
'e$el 1: The atabase & the % Components
%e structure o$ t%e system can "e diided into t%ree main logical com#onents. %e $irst com#onent must #roide some $orm o$ menu management0 allowing t%e restaurant to control w%at can "e ordered "y customers. %e second com#onent is t%e we" ordering system and #roides t%e $unctionality $or customers to #lace t%eir order and su##ly all necessary details. %e t%ird and $inal logical com#onent is t%e order retrieal system. 8sed "y t%e restaurant to kee# track o$ all orders w%ic% %ae "een #laced0 t%is com#onent takes care o$ retrieing and dis#laying order in$ormation0 as well as u#dating orders w%ic% %ae already "een #rocessed.
Web Ordering System
Customer
Database
Order Retrieval
Restaurant Employee
Menu Management
'e$el
2:
Web
r!erin"
System
Restaurant Employee
Components
%e we" ordering system is com#rised o$ G ma-or com#onents. %ese are t%e login $orm0 t%e main menu0 t%e account management $orm0 t%e order $orm0 t%e s%o##ing cart0 and t%e c%eckout $orm. 7%en t%e customer $irst arries at t%e site0 t%ey are #resented wit% t%e login $orm. A$ter eit%er signing in or0 i$ t%ey do not yet %ae an account0 $irst registering and t%en signing in0 t%e user is taken to a welcome #age wit% t%e main menu. From %ere0 t%ey %ae two o#tions , 15
Jackowitz – System Documentation [123!
t%ey can eit%er c%ange t%eir #assword and ot%er #re$erences t%roug% t%e account management $orm0 or t%ey can select an order $orm and "egin adding items to t%eir order. 3$ t%ey c%oose t%e second #at%0 t%ey can naigate t%e numerous order $orms using t%e main menu0 eac% o$ w%ic% corres#onds to a s#eci$ic category o$ order items0 adding items to t%eir s%o##ing cart along t%e way. At any time t%ey can iew and modi$y t%eir s%o##ing cart and w%en t%ey are $inally ready to #lace t%eir order0 t%ey can #roceed to t%e c%eckout $orm. %e c%eckout $orm uses t%e contents o$ t%e s%o##ing cart to #resent a summary o$ t%e order and to calculate t%e total cost0 in addition to allowing t%e user to s#eci$y all o$ t%e necessary deliery details.
Customer
Login Form
Main Menu
Order Form
ccount Management Form
Shopping Cart
Checkout Form
'e$el %: The 'o"in Form
%e login $orm is standard $or a $orm o$ t%is ty#e. 3t #roides tet $ields $or username and #assword0 w%ic% t%e user must enter "e$ore signing in. %is $orm also gies t%e o#tion $or a user to register $or t%e site i$ t%ey %ae not yet done so.
16
Jackowitz – System Documentation [123!
'e$el %: The #ain #enu
%e main menu0 $ound at t%e to# o$ t%e screen like in most a##lications0 #resents t%e user wit% two leels o$ selections. %ey must $irst c%oose t%e endor t%ey would like to iew and t%en c%oose a category o$ $ood. Once t%ey make t%ese two selections0 t%e a##lication generates an order $orm s#eci$ically $or t%at ty#e o$ $ood0 and dis#lays t%is $orm to t%e user.
'e$el %: The Account #ana"ement Form
'urrently t%e account management $orm only o$$ers t%e user t%e o#tion to c%ange t%eir #assword.
'e$el %: The r!er Form
%e order $orm0 w%ic% is dynamically generated "ased on selections $rom t%e main menu0
'e$el %: The Shoppin" Cart
%e s%o##ing cart #er$orms muc% like a s%o##ing cart in any ot%er a##lication. A$ter an item is added to t%e order0 it is dis#layed0 along wit% its #rice0 in t%e s%o##ing cart. %e s%o##ing cart also kee#s a running total o$ t%e current #rice o$ t%e w%ole order. By clicking on an item in t%e s%o##ing cart0 t%e user can reiew all o$ t%e details $or t%at #articular item. Finally0 t%e s%o##ing cart contains a "utton $or t%e user to #roceed to c%eckout.
'e$el %: The Chec(out Form
%e c%eckout $orm is t%e user@s last c%ance to eri$y t%at t%e contents o$ t%eir order are correct "e$ore actually #lacing it. %is $orm also #roides $ields $or t%e user to su##ly all o$ t%e necessary c%eckout and deliery details >#ayment ty#e0 deliery address0 etc.?.
'e$el 2: #enu #ana"ement System Components
3n order to make use o$ t%e menu management system0 t%e user must interact wit% t%e naigation tree0 w%ic% uses a %ierarc%ical tree structure to dis#lay all o$ t%e endors0 categories 17
Jackowitz – System Documentation [123!
o$ $oods0 and s#eci$ic $ood items stored in t%e system. 7%en t%e user selects an item $rom t%is tree0 t%ey are a"le to edit t%e item using t%e a##ro#riate $orm , a endor Form i$ a endor is selected0 a 'ategory Form i$ a category o$ $oods is selected0 and a Food Form i$ an indiidual $ood item is selected.
!endor Form
Employee
"avigation #ree
Category Form
Food Form
'e$el %: The )a$i"ation Tree
%e naigation tree is a leel >ecluding t%e root? %ierarc%ical arrangement0 wit% eac% lea$ corres#onding to a $orm. At t%e $irst leel are endors0 at leel two categories o$ $ood0 and at leel indiidual $ood items. 7%en a lea$ is selected0 it "rings u# a $orm corres#onding to t%e item at t%at lea$.
'e$el %: The Forms
%ere are t%ree ty#es o$ $orms in t%e menu management system endor Forms0 'ategory Forms0 and Food Forms. %e t%ree $orms are all similar0 allowing t%e user to add0 edit0 and remoe in$ormation releant to t%e selected item. 7%ere t%ey di$$er is in t%e s#eci$ic $ields t%at t%e user is a"le to edit. A$ter c%anges to any o$ t%e $orms are saed0 t%e necessary records in t%e data"ase are u#dated.
18
Jackowitz – System Documentation [123!
'e$el 2: r!er Retrie$al System Components
%e sim#lest o$ t%e t%ree com#onents0 t%e order retrieal system can "e "roken down into -ust two com#onents. %ey are t%e summary #anel0 w%ic% dis#lays a list o$ all currently actie orders0 and t%e order detail #anel0 w%ic% %ig%lig%ts -ust a single order. 7%en t%e a##lication $irst starts0 t%e order details $or t%e $irst order in t%e list are dis#layed. 3n order to iew t%e details o$ a di$$erent order0 t%e user must sim#ly select it $rom t%e list in t%e summary #anel.
Employee
Summary $anel
Order Detail $anel
'e$el %: Summary *anel
%e summary #anel0 located on t%e le$t side o$ t%e screen0 dis#lays a list o$ all currently actie orders0 along wit% t%eir deliery times and statuses. By c%anging t%e selected item in t%is list0 t%e user is a"le to control t%e contents o$ t%e order detail #anel.
'e$el %: r!er etail *anel
%e order detail #anel w%ic% contains a %ierarc%ical tree structure $or iewing all o$ t%e details related to t%e order w%ic% is currently selected in t%e summary #anel. %is com#onent also contains a "utton to mark t%e order as #rocessed and remoe it $rom t%e list o$ actie orders.
User Interface Desin
%e user inter$ace design #rinci#les can "e "roken into two grou#s. %e inter$ace in t%e we" a##lication is designed to limit $ree $orm user in#ut0 using mostly dro# down menus0 radio "uttons and c%eck "oes. %is is done $or two reasons , to sim#li$y t%e ordering #rocess as muc% as #ossi"le0 and to limit S; in-ection attem#ts. Free $orm in#ut is necessary in t%e menu management com#onent0 %oweer0 as all o$ t%e alues must "e user su##lied. %e inter$ace $or
19
Jackowitz – System Documentation [123!
t%is com#onent contains traditional $orms com#rised o$ tet $ields and corres#onding la"els0 along wit% sae and discard "uttons $or eac% $orm.
!elp System Desin
Due to t%e $orm"ased nature o$ t%e a##lications0 t%e design o$ t%e %el# systems will "e minimal. 3n "ot% t%e deskto# and we" a##lications0 it will "e accessed $rom t%e a##lication@s main menu and will o#en in a new window. (odeled a$ter t%e ty#ical %el# system design0 it will "e "ot% searc%a"le and include a naigation tree %ig%lig%ting common to#ics. %ere will "e a %el# #age $or eac% $orm ty#e0 descri"ing t%e signi$icance o$ eac% $ield on t%e #age.
20
Jackowitz – System Documentation [123!
Chapter +: Testin" esi"n
"estin
*hases
%e structure o$ t%e system can "e diided into t%ree main logical com#onents0 #lus t%e data"ase0 w%ic% is inisi"le to t%e end user. :ac% o$ t%ese com#onents must "e tested indiidually0 and t%e a##roac%es w%ic% will "e used $or eac% com#onent are descri"ed in t%e $ollowing sections.
Customer
Web Ordering System
Database
Order Retrieval
Restaurant Employee
Menu Management
atabase
Restaurant Employee
esting o$ t%e data"ase com#onent is ery straig%t$orward0 and %as actually already "een mostly com#leted. %e data"ase was t%e $irst com#onent designed and "e$ore "eginning work on any o$ t%e a##lications0 3 wrote all o$ t%e S; statements 3 e#ected to need and eecuted t%em directly0 essentially isolating t%e data"ase0 using t%e #s&l client. By doing t%is 3 was a"le to reeal0 and #rom#tly $i a large #ercentage o$ t%e errors wit%in t%e data"ase itsel$.
Web r!erin" System
esting o$ t%e we" ordering system will "e t%e most strenuous0 as it is t%e com#onent t%at will see t%e %ig%est $re&uency o$ use and will "e e#osed to t%e most users0 w%ic% leads to a %ig%er #otential o$ $ailure. esting %ere will "e diided into two #%ases. During normal use case testing 3 will eecute all o$ t%e $unctions aaila"le t%roug% t%e we" inter$ace using a "road 21
Jackowitz – System Documentation [123!
s#ectrum o$ reasona"le alues t%at a user would "e e#ected to in#ut. 3n addition to sim#ly o"sering t%e ina##lication e$$ects0 3 will also "e monitoring and ins#ecting t%e JSO9 re&uests and res#onses >using Fire"ug? to make sure t%at eer yt%ing is sent and receied correctly. 3n #%ase two 3 will #er$orm ece#tional use case testing0 w%ere 3 will arti$icially generate cases t%at s%ouldn@t arise0 "ut #ossi"ly could0 and monitor %ow t%e system %andles t%ese cases. %ese cases $all into one o$ two categories , w%en t%e mistake %a##ens in t%e "rowser and t%e serer %as to deal wit% it0 or t%e ot%er way around. 3 %ae tried to #lace a##ro#riate c%ecks on all alues "eing sent "ack and $ort% so t%e system realizes somet%ing is wrong "e$ore going to t%e data"ase and #otentially c%anging t%e state o$ t%e system0 "ut it will ery im#ortant to see i$ t%ere is anyt%ing 3 %ae not accounted $or.
#enu #ana"ement System
esting o$ t%e menu management system will "e ery similar to t%at o$ t%e we" ordering system0 as 3 will $irst run test cases w%ere t%e user su##lies acce#ta"le alues0 and a$terwards test %ow t%e system res#onds to une#ected in#ut.
r!er Retrie$al System
O$ all t%e com#onents0 testing o$ t%e order retrieal system will "e t%e sim#lest. Since it is sim#ly an inter$ace to dis#lay t%e results o$ data"ase &ueries and %as no #otential to c%ange t%e state o$ t%e system0 t%e only t%ing t%at really needs to "e tested is %ow t%e system res#onds w%en a result set is not in t%e $orm it is e#ecting. %is will "e done "y intentionally corru#ting t%e data"ase and analyzing t%e res#onse o$ t%e order retrieal system.
Requirements "raceability
3n t%e re&uirements document0 3 s#eci$ied t%e $ollowing $unctional re&uirements4 For t%e 7e" Ordering System4 22
Jackowitz – System Documentation [123!
•
'reate an account.
•
(anage t%eir account.
•
;og in to t%e system.
•
9aigate t%e restaurant@s menu.
•
Select an item $rom t%e menu.
•
'ustomize o#tions $or a selected item.
•
Add an item to t%eir current order.
•
6eiew t%eir current order.
•
6emoe an item/remoe all items $rom t%eir current order.
•
)roide deliery and #ayment details.
•
)lace an order.
•
6eceie con$irmation in t%e $orm o$ an order num"er.
For t%e (enu (anagement System4 •
Add a new/u#date/delete endor to/$rom t%e menu.
•
Add a new/u#date/delete $ood category to/$rom t%e menu.
•
Add a new/u#date/delete $ood item to/$rom t%e menu.
•
Add a new/u#date/delete o#tion $or a gien $ood item.
•
8#date #rice $or a gien $ood item.
•
8#date de$ault o#tions $or a gien $ood item. 23
Jackowitz – System Documentation [123!
•
8#date additional in$ormation >descri#tion0 #%oto0 etc.? $or a gien $ood item.
For t%e Order 6etrieal System4
•
6etriee new orders $rom t%e data"ase.
•
Dis#lay t%e orders in an easily reada"le0 gra#%ical way.
•
(ark an order as %aing "een #rocessed and remoe it $rom t%e list o$ actie orders.
3n order to assure t%oroug% testing0 3 will %ae to generate cases in w%ic% eac% o$ t%ese $unctions is #er$ormed0 not -ust wit% a single in#ut alue0 "ut an eam#le o$ eac% #ossi"le class o$ in#ut. %is may seem tedious0 "ut is a"solutely necessary since t%e system is so %eaily de#endent on user in#ut and must res#ond a##ro#riately to anyt%ing t%e user may do. %e good news is t%at "ecause t%e system was design to contain only t%e a"solutely necessary $unctionality0 t%e testing o$ t%e di$$erent $unctions s%ould $low smoot%ly into one anot%er.
"estin Sc#edule
%roug%out all o$ t%e design and deelo#ment #%ases0 3 %ae "een #er$orming unit tests on eac% com#onent0 assuring t%at it works #ro#erly "e$ore introducing it into t%e rest o$ t%e system0 "ut 3 #lan on "eginning rigorous testing o$ t%e system starting in t%e $irst week o$ Decem"er. 3 will "egin "y #utting t%e system t%roug% its normal #aces as a normal user would "e e#ected to. 3 will test t%e entire $unctionality o$ t%e system0 "ut will do so $ollowing t%e normal logical $low0 and only #roiding reasona"le alues $or user in#ut. Once 3 am %a##y wit% %ow t%e system #er$orms $or normal use cases >w%ic% %o#e$ully will "e com#leted "y Decem"er Ht%?0 3 will moe on to testing t%e ece#tional use cases. %ese are t%e use cases t%at would neer "e encountered "y t%e aerage user0 "ut0 w%et%er t%roug% con$usion 24
Jackowitz – System Documentation [123!
or malice0 may come u#. wo eam#les would "e adding %undreds o$ items to an order or attem#ting to su##ly an S; statement as a login credential. 3n t%e $inal #%ase o$ testing0 w%ic% 3 will "egin on Decem"er 1=t%0 3 will carry out stress and #er$ormance testing. 3n t%is #%ase0 3 will "om"ard t%e system wit% an increasing num"er o$ <) re&uests and t%en measure res#onse times and see at w%at #oint t%ings "egin to "reak down.
Recordin $rocedures
%e recording #rocedures 3 will use can "e diided into two categories. For t%e use case testing0 t%e tests will "e designed in a C)ass/Fail manner0 making recording t%e results ery sim#le. :ac% time a series o$ tests is run0 t%e results will "e recorded in a s#reads%eet0 w%ere eac% outcome can "e identi$ied "y t%e name o$ t%e test case along wit% t%e eecution date and time. For t%e stress and #er$ormance testing0 t%e #rocedure will "e similar. "ot% numerically and gra#%ically? on t%em to get a "etter idea eactly w%at t%e num"ers mean.
!ard%are and Soft%are Requirements
%e testing to "e #er$ormed will re&uire no s#ecial %ardware0 "ut some s#ecially designed so$tware may "e used0 #articularly w%en #er$orming stress testing. 3 #lan on writing and utilizing a multit%readed Jaa #rogram to "om"ard t%e system wit% an increasing num"er o$ <) re&uests and t%en measure res#onse times and see at w%at #oint t%ings "egin to "reak down. 3 also will "e using t%e Fire$o #lugin Fire"ug to monitor t%e JSO9 re&uests and res#onses. 25
Jackowitz – System Documentation [123!
Chapter ,: -ser #anual Introductory Manual
-sin" the es(top Application
7%en t%e system is $irst installed0 it contains no menu in$ormation. %ere$ore0 t%e $irst ste# in using t%e system is to add endor in$ormation. Start "y launc%ing t%e deskto# client.
#ana"in" .en!ors
9aigate to C(anagement I C(anage (enu in t%e tool"ar at t%e to# o$ t%e screen. %is will "ring u# t%e menu management iew. %e menu management iew #roides a sim#le gra#%ical inter$ace $or editing t%e content o$ t%e menu dis#layed to t%e customer.
'lick t%e C "utton to add a new endor0 t%en su##ly t%e name o$ t%e endor and click CSae. %is adds t%e endor to t%e naigation tree on t%e le$t. 3$ t%ere will "e multi#le endors using t%e system0 re#eat t%is #rocess $or eac% o$ t%em. 3$ at any #oint you would like to modi$y t%e endor names0 do so $rom t%is screen.
26
Jackowitz – System Documentation [123!
#ana"in" Cate"ories
'ategories re#resent a related grou# o$ $oods0 usually w%at would "e $ound as a menu %eading. 'ategories must "e associated wit% a endor0 so to add a new category select t%e a##ro#riate endor $rom t%e naigation tree on t%e le$t. 3n t%e category $ield0 click t%e C "utton to add a new category t%en su##ly t%e category name and click CSae.
9ow select t%e category you -ust created $rom t%e naigation tree. %is will "ring u# a new $orm. 3$ items $rom t%e category are aaila"le in multi#le sizes0 add t%ese sizes to t%e CSizes $ield. Some categories allow customers to s#eci$y additional o#tions. %ese o#tions are s#eci$ied in t%e CO#tions $ield. Finally0 t%e $ood items wit%in t%is category must "e added. %is is done "y clicking t%e C "utton in t%e CFood 3tems $ield and su##lying t%e name o$ t%e item. 7%en you are $inis%ed0 click CSae. 27
Jackowitz – System Documentation [123!
#ana"in" Foo!s
o edit $ood details0 select t%e $ood you wis% to modi$y $rom t%e naigation tree. From t%is screen you can now modi$y t%e #rices and de$ault o#tions $or t%e selected $ood item. 6e#eat t%is #rocess $or all items you %ae added. %e ordering system is now ready $or use. 3$ at any #oint you need to edit menu in$ormation you can return to t%ese screens t%roug%
t%e
C(anagement
ta"
on
t%e
a##lication tool"ar.
#ana"in" r!ers
o manage #laced orders0 naigate to COrders I Ciew Orders on t%e a##lication tool"ar. You will now see a list o$ all currently actie orders on t%e le$t side o$ t%e a##lication. o iew t%e details o$ a s#eci$ic order0 select t%at order $rom t%e list. Once an order %as "een #re#ared0 mark it as #rocessed "y clicking t%e C)rocessed "utton. As new orders are #laced0 t%ey will "e added to t%e list o$ actie orders.
28
Jackowitz – System Documentation [123!
-sin" the Web r!erin" System Si"nin" -p & Si"nin" /n
7%en a customer $irst isits t%e we"site0 t%ey must register "e$ore t%ey can "egin using t%e system. o do t%is0 click on t%e CSign 8# "utton on t%e main #age. %en $ill out t%e re&uired $ields and click C6egister. An email containing your #assword will "e sent to t%e s#eci$ied account and you can t%en "egin using t%e system.
Selectin" Foo! /tems
A$ter signing in on t%e main #age0 click C'%eck Out onig%t@s (enuK and select t%e category o$ $ood you would like to order. %is will "ring u# an order $orm s#eci$ic to t%at category. On t%is $orm0 select t%e $ood you would like to order0 s#eci$ying t%e desired size and selecting any a##ro#riate o#tions0 t%en click add to order. %is will add t%e item to your Cs%o##ing cart0 located on t%e $ar rig%t o$ t%e screen. 6e#eat t%is #rocess $or as many items as you would like to order.
29
Jackowitz – System Documentation [123!
*lacin" an r!er
7%en you are $inis%ed adding items to your order0 click C'%eck Out $rom wit%in t%e s%o##ing cart. You will t%en "e #resented wit% one $inal $orm to com#lete. A$ter su##lying t%e re&uired #ayment and deliery details0 click C)lace Order.
You s%ould t%en receie con$irmation t%at your order was #laced success$ully0 along wit% your order num"er0 com#leting t%e ordering #rocess.
-sin" the 0elp System
%e %el# systems in "ot% t%e deskto# a##lication and online ordering system can "e accessed t%roug% t%e C
30
Jackowitz – System Documentation [123!
document $or t%e deskto# a##lication will also "e distri"uted wit% t%e system as a .#d$ to make em#loyee training easier.
System Reference Manual
Ser$ices Alphabetical es(top Application
Adding 'ategories Adding Foods Adding endors Deleting 'ategories Deleting Foods Deleting endors (arking Orders as )rocessed (odi$ying 'ategories (odi$ying Foods (odi$ying endors 6etrieing Orders Web r!erin" System
Adding an 3tem to Your Order '%ecking Out (odi$ying an 3tem wit%in Your Order )lacing an Order 6emoing an 3tem $rom Your Order Selecting a Food 3tem Signing 3n Signing 8# 31
Jackowitz – System Documentation [123!
iewing t%e (enu 3rror Reco$ery
Because t%e all o$ t%e in$ormation releant to t%e $unctionality o$ t%e system is stored in t%e data"ase0 w%ic% is designed to maintain consistent state een w%en an a##lication error occurs0 t%e most e$$ectie way to recoer $rom an error is to restart t%e a##lication0 eit%er "y closing and restarting t%e a##lication >deskto# a##lication? or "y re$res%ing t%e "rowser >we" ordering system?. 3n eit%er case0 a restart s%ould %ae no negatie e$$ects on t%e data"ase and t%e a##lication s%ould $unction normally. 3$0 %oweer0 t%e same error continually occurs0 t%is likely indicates t%at t%e data"ase %as some%ow "een corru#ted. Alt%oug% measures %ae "een taken to #rotect t%e consistency o$ t%e data"ase0 t%ere may still "e a slig%t c%ance o$ t%is corru#tion occurring t%roug% eit%er user error or intentional tam#ering. 3$ t%e data"ase %as "ecome corru#ted0 a clean >destructie? reinstallation o$ t%e system must "e #er$ormed. %is can "e done $ollowing t%e same #rocess used to initially install t%e system.
/nstallation
%e installation #rocess consists mainly o$ t%e creation o$ t%e )ostgreS; data"ase t%at coordinates t%e entire system. At t%e #resent moment0 t%is creation is %andled "y a scri#t w%ic% must "e run $rom wit%in a )ostgreS; client >suc% as #s&l?. %is is not ideal0 %oweer0 and w%en t%e time comes $or t%e system to actually "e distri"uted to a restaurant $or testing0 t%is scri#t will "e wra##ed in an eecuta"le >most likely #lat$orm de#endent?0 w%ic% t%e user will sim#ly "e a"le to dou"leclick to com#lete t%e installation #rocess.
32
Jackowitz – System Documentation [123!
4lossary
7e" a##lication , an a##lication0 o$ten com#ara"le in $unctionality to a deskto# a##lication0 w%ic% is accessed oer a network0 o$ten ia a we" "rowser0 rat%er t%an %osted on t%e user@s mac%ine 9aigation tree , an e#anda"le and colla#si"le structure used to dis#lay large amounts o$ in$ormation in an easily naiga"le manner A##lication tool"ar , usually located at t%e ery to# o$ t%e window0 t%e a##lication tool"ar #roides t%e user wit% &uick access to many common $unctions 3na##lication %el# , most commonly accessed t%roug% t%e C
33