From 6a3cc7ccb69eb522a3df0964f910074762699b3c Mon Sep 17 00:00:00 2001 From: muhdbhz Date: Tue, 12 Nov 2024 13:30:04 +0800 Subject: [PATCH 1/4] UserGuide: Nitpick changes --- docs/DeveloperGuide.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 2afd4572ea7..a27b0f4738f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -852,6 +852,12 @@ The `listing` command adds a `listing` to EZSTATES. **Implementation** ![AddListingCommandSequence](images/dg/AddListingCommandSequence.png) +1. User runs the `listing` command with the required property details (e.g., name, price, area, region, address, seller). +2. The `EzstatesParser` parses this command and creates an `AddListingCommand` instance containing the provided details. +3. `AddListingCommand` uses these details to create a new `Listing` object. +4. `AddListingCommand` then calls the `Model` to add the newly created Listing to the system. +5. If the addition is successful, a `CommandResult` is returned with a success message. If there are validation issues or missing required fields, a `CommandException` is thrown with an appropriate error message. + #### Edit listing **Overview** @@ -881,6 +887,12 @@ The `deletelistings` command deletes a `listing`. **Implementation** +1. User runs the `deletelisting` command with the specific listing identifier or index. +2. The `EzstatesParser` parses this command and creates a `DeleteListingCommand` instance with the provided identifier. +3. `DeleteListingCommand` accesses the `Model` to retrieve the `Listing` associated with the identifier. If the listing is found, it proceeds to delete it. +4. If the `Listing` is not found, a `CommandException` is thrown with an appropriate message. +5. Upon successful deletion, a `CommandResult` is returned with a confirmation message indicating the listing has been deleted. + #### Show listing **Overview**
@@ -888,6 +900,12 @@ The `showlistings` command shows all `listings`. **Implementation** +1. User runs the `showlistings` command. +2. The `EzstatesParser` parses this command and creates a `ShowListingsCommand` instance. +3. `ShowListingsCommand` accesses the Model to retrieve the complete list of Listings. +4. If there are no Listings available, a `CommandResult` is returned with a message indicating that no listings are available. +5. If listings exist, a `CommandResult` is returned displaying the list of Listings along with a success message. + #### Clear listing **Overview**
@@ -895,6 +913,24 @@ The `clearlisting` clears all `listings`. **Implementation** +1. User runs the `clearlisting` command. +2. The `EzstatesParser` parses this command and creates a `ClearListingsCommand` instance. +3. `ClearListingsCommand` accesses the Model and calls the clearAllListings() method to delete all listings from the system. +4. If there are no listings to clear, a `CommandResult` is returned with a message indicating that no listings were available to clear. +5. If listings are successfully cleared, a `CommandResult` is returned with a success message confirming that all listings have been removed. + +#### Find Listing +**Overview** +
+The `findlisting` command searches for and lists all `Listings` where the listing name contains any of the specified keywords. + +**Implementation** + +1. User runs the `findlisting` command with one or more keywords. +2. The `EzstatesParser` parses this command and creates a `FindListingCommandParser` instance, which processes the keywords and creates a `FindListingCommand` with a `ListingNameContainsKeywordsPredicate` that contains the user’s keywords. +3. `FindListingCommand` updates the Model with the given predicate to filter the list of `Listings` based on names that match any of the provided keywords. +4. If listings matching the keywords are found, `FindListingCommand` returns a `CommandResult` with a success message and the filtered list. If no matches are found, it returns a message indicating no listings match the search criteria. + ### Utility #### Chat Window From 5aa356f0606ae8a71b097d5a4e910e162ab6d9c6 Mon Sep 17 00:00:00 2001 From: muhdbhz Date: Tue, 12 Nov 2024 13:36:30 +0800 Subject: [PATCH 2/4] DeveloperGuide: Update diagrams --- docs/DeveloperGuide.md | 1 + docs/diagrams/FindListingSequenceDiagram.puml | 77 ++++++++++++++++++ docs/images/dg/FindListingSequenceDiagram.png | Bin 0 -> 46407 bytes 3 files changed, 78 insertions(+) create mode 100644 docs/diagrams/FindListingSequenceDiagram.puml create mode 100644 docs/images/dg/FindListingSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index a27b0f4738f..8a20f178fa5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -925,6 +925,7 @@ The `clearlisting` clears all `listings`. The `findlisting` command searches for and lists all `Listings` where the listing name contains any of the specified keywords. **Implementation** +![FindListingSequenceDiagram.png](images/dg/FindListingSequenceDiagram.png) 1. User runs the `findlisting` command with one or more keywords. 2. The `EzstatesParser` parses this command and creates a `FindListingCommandParser` instance, which processes the keywords and creates a `FindListingCommand` with a `ListingNameContainsKeywordsPredicate` that contains the user’s keywords. diff --git a/docs/diagrams/FindListingSequenceDiagram.puml b/docs/diagrams/FindListingSequenceDiagram.puml new file mode 100644 index 00000000000..ed6a5d44caa --- /dev/null +++ b/docs/diagrams/FindListingSequenceDiagram.puml @@ -0,0 +1,77 @@ +@startuml +!include style.puml +skinparam ArrowFontStyle plain +skinparam ParticipantBackgroundColor LOGIC_COLOR + +title Find Listing Sequence Diagram + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":EzstatesParser" as EzstatesParser LOGIC_COLOR +participant ":FindListingCommandParser" as FindListingCommandParser LOGIC_COLOR +participant "f:FindListingCommand" as FindListingCommand LOGIC_COLOR +participant "r:CommandResult" as CommandResult LOGIC_COLOR +end box + +note left of LogicManager +cmd: +"findlisting mansion villa" +keywords: +"mansion villa" +end note + +box Model MODEL_COLOR_T1 +participant "m:Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute(cmd) +activate LogicManager + +LogicManager -> EzstatesParser : parseCommand(cmd) +activate EzstatesParser + +create FindListingCommandParser +EzstatesParser -> FindListingCommandParser +activate FindListingCommandParser + +FindListingCommandParser --> EzstatesParser +deactivate FindListingCommandParser + +EzstatesParser -> FindListingCommandParser : parse(keywords) +activate FindListingCommandParser + +create FindListingCommand +FindListingCommandParser -> FindListingCommand : +activate FindListingCommand +FindListingCommand --> FindListingCommandParser +deactivate FindListingCommand + +FindListingCommandParser --> EzstatesParser : f +deactivate FindListingCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +FindListingCommandParser -[hidden]-> EzstatesParser +destroy FindListingCommandParser + +EzstatesParser --> LogicManager : f +deactivate EzstatesParser + +LogicManager -> FindListingCommand : execute(m:Model) +activate FindListingCommand + +FindListingCommand -> Model : updateFilteredListingList(predicate) +activate Model +Model --> FindListingCommand +deactivate Model + +create CommandResult +FindListingCommand -> CommandResult +activate CommandResult +CommandResult --> FindListingCommand +deactivate CommandResult + +FindListingCommand --> LogicManager : r +deactivate FindListingCommand + +[<-- LogicManager : r +deactivate LogicManager +@enduml diff --git a/docs/images/dg/FindListingSequenceDiagram.png b/docs/images/dg/FindListingSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..7447319a5cc0da132e5ed981cdc7d1df72e69bfa GIT binary patch literal 46407 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
Ug0XC^kXGBVxk<0U>-Ie-8 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 literal 0 HcmV?d00001 From c899c597766e6e0f58af41870f841eb711cf2b2f Mon Sep 17 00:00:00 2001 From: muhdbhz Date: Tue, 12 Nov 2024 13:44:03 +0800 Subject: [PATCH 3/4] DeveloperGuide: Update diagrams --- docs/DeveloperGuide.md | 2 + .../ClearListingsSequenceDiagram.puml | 57 ++++++++++++++++++ .../diagrams/ShowListingsSequenceDiagram.puml | 51 ++++++++++++++++ .../dg/ClearListingsSequenceDiagram.png | Bin 0 -> 33993 bytes .../images/dg/ShowListingsSequenceDiagram.png | Bin 0 -> 37309 bytes 5 files changed, 110 insertions(+) create mode 100644 docs/diagrams/ClearListingsSequenceDiagram.puml create mode 100644 docs/diagrams/ShowListingsSequenceDiagram.puml create mode 100644 docs/images/dg/ClearListingsSequenceDiagram.png create mode 100644 docs/images/dg/ShowListingsSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8a20f178fa5..deee53b2131 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -899,6 +899,7 @@ The `deletelistings` command deletes a `listing`. The `showlistings` command shows all `listings`. **Implementation** +![ShowListingsSequenceDiagram.png](images/dg/ShowListingsSequenceDiagram.png) 1. User runs the `showlistings` command. 2. The `EzstatesParser` parses this command and creates a `ShowListingsCommand` instance. @@ -912,6 +913,7 @@ The `showlistings` command shows all `listings`. The `clearlisting` clears all `listings`. **Implementation** +![ClearListingsSequenceDiagram.png](images/dg/ClearListingsSequenceDiagram.png) 1. User runs the `clearlisting` command. 2. The `EzstatesParser` parses this command and creates a `ClearListingsCommand` instance. diff --git a/docs/diagrams/ClearListingsSequenceDiagram.puml b/docs/diagrams/ClearListingsSequenceDiagram.puml new file mode 100644 index 00000000000..d28fc2d810e --- /dev/null +++ b/docs/diagrams/ClearListingsSequenceDiagram.puml @@ -0,0 +1,57 @@ +@startuml +!include style.puml +skinparam ArrowFontStyle plain +skinparam ParticipantBackgroundColor LOGIC_COLOR + +title Clear Listings Sequence Diagram + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":EzstatesParser" as EzstatesParser LOGIC_COLOR +participant "c:ClearListingsCommand" as ClearListingsCommand LOGIC_COLOR +participant "r:CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant "m:Model" as Model MODEL_COLOR +participant "l:Listings" as Listings MODEL_COLOR +end box + +[-> LogicManager : execute("clearlistings") +activate LogicManager + +LogicManager -> EzstatesParser : parseCommand("clearlistings") +activate EzstatesParser + +EzstatesParser --> LogicManager : c +deactivate EzstatesParser + +LogicManager -> ClearListingsCommand : execute(m:Model) +activate ClearListingsCommand + +' Create a new empty Listings instance +create Listings +ClearListingsCommand -> Listings +activate Listings +Listings --> ClearListingsCommand : l +deactivate Listings + +' Set the new Listings in the Model +ClearListingsCommand -> Model : setListings(l:Listings) +activate Model +Model --> ClearListingsCommand +deactivate Model + +' Create a CommandResult to confirm the clear operation +create CommandResult +ClearListingsCommand -> CommandResult +activate CommandResult +CommandResult --> ClearListingsCommand +deactivate CommandResult + +ClearListingsCommand --> LogicManager : r +deactivate ClearListingsCommand + +[<-- LogicManager : r +deactivate LogicManager +@enduml diff --git a/docs/diagrams/ShowListingsSequenceDiagram.puml b/docs/diagrams/ShowListingsSequenceDiagram.puml new file mode 100644 index 00000000000..19c9be8216a --- /dev/null +++ b/docs/diagrams/ShowListingsSequenceDiagram.puml @@ -0,0 +1,51 @@ +@startuml +!include style.puml +skinparam ArrowFontStyle plain +skinparam ParticipantBackgroundColor LOGIC_COLOR + +title Show Listings Sequence Diagram + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":EzstatesParser" as EzstatesParser LOGIC_COLOR +participant "s:ShowListingsCommand" as ShowListingsCommand LOGIC_COLOR +participant "r:CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant "m:Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("showlistings") +activate LogicManager + +LogicManager -> EzstatesParser : parseCommand(cmd) +activate EzstatesParser + +EzstatesParser --> LogicManager : +deactivate EzstatesParser + +LogicManager -> ShowListingsCommand : execute(m:Model) +activate ShowListingsCommand + +ShowListingsCommand -> Model : updateFilteredListingList(PREDICATE_SHOW_ALL_LISTINGS) +activate Model +Model --> ShowListingsCommand +deactivate Model + +alt list is empty + ShowListingsCommand -> LogicManager + deactivate ShowListingsCommand +else else + create CommandResult + ShowListingsCommand -> CommandResult + activate CommandResult + CommandResult --> ShowListingsCommand + deactivate CommandResult + ShowListingsCommand --> LogicManager : r + deactivate ShowListingsCommand +end + +[<-- LogicManager : r +deactivate LogicManager +@enduml diff --git a/docs/images/dg/ClearListingsSequenceDiagram.png b/docs/images/dg/ClearListingsSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ad53fdc3f44ac6595eb53820ea71431145549a2b GIT binary patch literal 33993 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 literal 0 HcmV?d00001 diff --git a/docs/images/dg/ShowListingsSequenceDiagram.png b/docs/images/dg/ShowListingsSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f83ed5953c8cec81f6b0e6406bdb36719b23a4 GIT binary patch literal 37309 zcmd432T)Yo)-|f4pyUjKf+$Lkk`WLPkRUlq&Y31d6O|k#3zCD9a}G_CXp>Wloo*{hEoYrv2m!UQ$urHYxlZep6gOP z)7$278=C%-nOzIR?c*$OjPpQ^r%4PozC&@&ZT#Job-^*%z;C99v)2B{B|DU@<}J(# zMZy{Ni@b2W%;Ved(yek&ijV>GZ03FVn0#~zD#Knj21yg#8T{-ax%b)qQO~^|8k0mm zlpc~dy+b7J50^)mjvhCDibDL|h>x`1eI0-D;R}MIj2eS^K5tbF6BNytLZgMAv3l(K zQN4p~8BNP_>Z$0dk?7>3&LL)^R$heAs!Lj0I+ZfNOHVt7!z$EFygHqZtmb<%?1Qy0Mn8jbme}D3SfU+O;(X#`y)ShvEUlpy1 zw}3?j=e+5{#o+3P{QAn-N;!AZ)mDUTPCqjn181YiC-a!!>qVh9srHr!lz3Pr8n_L! zWt{L-k9YYW@=im}BYd7eQ2)YdS%1NgvO#cK!no;2C|m+buV47=cJ#@2=Dn%=vXS&9 ze#PZ_nt8h|mo1s9;l?@HV2RVE%@Lug-Z(OKaXPkJjD}Q5wTcq??N-_Y?MHi-b;YKQ zO2yArw9HPQYbX;<%M<2Mcw53<_{dzh*Q1a?01J4GR`<$63!U-aV za%$C!GXjH6$K7^MKgsW%d~fO>QYxEdV69;1^?JY5q<37IQB=G;WXX6zSjxIn?1;u- zP(VrYs%r&~Gs#l-w9>1qi&x;n?Wa9+a;U;}x_fKqWQL26_?-UnNAY0F`FmWI0q(CY z9icYb7rS?U)<1G=P~9;+@y5K4_;pynW>=Y*z7r;~cdq>GI$>sr2E9VrjDn3kn~k8xx0xH2 zG=!$uXsq|gR{Rg*-L*=GzHkZusFwH#bZ0{B9_GsdSh7}!{ci0Y#Ayb^Cpz~R^`4Eb zcXa;jzW(r|wQ&sNQ1jNU54R-W2rIklY^K~(C(=L(INc&1SHDffKi)o8Mc%Q!Jyqqj z)vuy9u1-*<*{a?_j0Y<)aM9Oy89Kh+7GUR}dnm3Y7T9wvu+!$S{pF=;f4lJYN__mM zC0#u~f67DqY90_PN_4bgu6tLP=jxe=$^>GoVq6Dhm$C$l zdj&sOWf&iTS51&J+MFo+5kphMMq{_wj)I0AJA=oWr<8M5d#cvsk3piCEu&GW&erol z-0&2MC|j*C9e6JriReq>77f6}t9M>#xm^jFD9td=Dv2L2(dD+D;?RM)8i-C#PBQ5> z&6F#INg?2I9raJZ=ytZYCtEf1cTi9|MijEdGrW#ACn*QoSuwMQZ#G~MK2>Gu-*Whp z=3OF(D=!pj#5VeZFOEb!^vVGNH|A|M+njCSES1$Ec@X<4g zPnA{&heJi0+>FIC7e3K_bReUrzM2B&Exi4uEvC!(f$E&|S zlBbBm!cqdp*`BFW@{$&}wJpubp*h$CgOIT35Hb)E69?R>jx%$(zVd{@JWk79Pp>ZB zad2?LeovGcDhknNVVShAr*nsH%uldP2&(c{1r$k@9?`D z4+itPtgk$eWKb(ER4==e^*uXg{=U;Na%G zqbJU{JHt}^Q$l5Ze0*4yH}4c0zJC3ok}v>RV*tE|HB5E6KLw*lGUi3!&kWHFMq(R3 z$sf_r8PrSD!+B{jUi$tJ4i$SI&0(&1g1){nlII&ADI1%_VeZ2oOJ~D_1ar1Qst5G+u@@HBFk@sf-SmeLCxiHDOFcEHt>m9)a5*%j3+2O0i z4CLH4S_&GCZcZ0gQvkB@`V$Vh!4NR%Z|91o!2vjw#cb42#@KPvy;IYXT!qdEh*gU-0lDs1)uQ*A z0)lP#rNxtzlXurvyC}Wi2prwFkowF>_d-8T#r=a(mR6;iLND!l*}V7Fsi{IIu_%hU z6~Miz3?w^d7E!llUn1vol8>eb>!Z?IpI;`%k$l7gW<>ryq?|P$EO&-hzA~L}>&-?{ zOGZ;m#jXOw+GQoLpz#k3%z2kYi~w&;-Z%b6q56aYsvLVfm?c3=$e@bJe08#C=xQ-u ztSu@k%2bS`kK;D%3`=-?SgKyTlf(_tiwP#638>ncZ>D6vhfx_Uuan`XS#2c@9V^u6 z@9($ABdl}UP_4F_?452Sl#u8Wy1r1-5&}5FWc@yNUg(4e=MDne8550)!J}Qb#=8mot)gj zaE_dzpZX*K0SPW@Xe^xJJ^H|B2FT^vAqFAshp45P*V!^(pCg&EJc>zt(cc{b-X;TQ`<@ zDI@ub@EyA~m)UwJ*U4|vB!=ytl{vC0_e$-!r`DSVRJ!J2_!(<1CYJ>r$0 zYx3lWlSZ$ii(H%?S{nWqjizBoSWj0MDeRq0g_5v1Z%(iowBNU@;VvZOL{_=(E`03k zf@=c2#kmw80!#PEDf6Sc1PcpGED5t#5VGYX3PJ$5Wi!7&&V04aET8w)#lnK#9? z*`nNa1cd;**TqR;StJQ(Kgx){@sc@tX`i({6B{d_&8kN-1b< zX~{s0C*Nb`c>(FmTMqa%m-%oRAl+H7i77Nb@p zu`a+xaG4vp!+r|e6)Tv4*h^PDQXn5a9P#(!4J&F1F{Jo54e0L6PYci8f(B zx4UCq=3vlF21)4g&OF4h$w7G})IHM!CA$0bj~R$p8T$BsLIr_#{?sCPV+?!~y$;cZCYuR11gXHl{y;D!;qmd=! zt*I)p>(Wk~(6Au+IinxZqjBE=yoi6fOy+lCmQCgny4Y>YewXyb6d*)b4+aTydN}EN zB$eo=$Na?L5My8vxY#J?E9Yrcm@G6WWi*D25#(0hSaOaD~J2|y3PbEG*a#-%oQz`fy&MUI^=+Psq zUhi5!2%>818Dm{qKHR1S42N=zc0}Iei?|USgG&6GYx$hA^V8#`_T)euN^t;ue#p=C zD(Fd#!0}DsxlVqSBw!mAf&SV6)=e~CjaPE~4@C)W!Y803^M8I`AI*M4|{| z(q#e=JAHN?>FvDeR!HG<0;a?AV)9KUjMyQLQ3DB{X8ZaBZzo{{-XiW{xxS?u`J z#ho4dbMW@zjg5^7=*La~xhq7u#h&}I)5AmAWAOseu9@Fgu7*8)Y4y}*%m2-H_HQMG zx$mp!3l(~qZ-}OV`_awbn4t)7PS=z;8t%0R6U4lDNB=?}1-%*YmYvap_|apA$ww`ch$s!xg^FiLv}__Ns~#CG#uAA}ioN9uQddQ1k+i#mLL zvla|DTty}pxzLJ28+4#jt04LIZ8td0)Iy({{QUh}H6Zg%)_W}eRM}Ai7TLXkMf{ov zaJ|@x0DC&^aUp4W3r_-(JxNWjHZ=@(F6-L?>Z>W%l!low@h!LhI*n zK!lqlb76oqP%bVlDFNuHG#{Rtnj&UYxBd0q|1(qO%jOHD^cQyH%Ii@3Ua8lwUxRb} z609hoJcSw+*rcqt(ij-Y*)ZEYV*dY*s)XRRcFhqFU&i5z+^4EHK>p7Aykga9cH#Lm zGS3qY*Xax=8p1%oBk_=9)y0=8;g4_K8MB1;n}l`Jg=?Z7J{DE}vN-d)sVEml=?|B_ zPvy6YOJ8D<3nP<QwaQ8LE?wLz;!oMQbF5Wz3Qt;l- z&ZB4|$HgUnWaVa=^- zDTbO%T*1sY*<9E>ld_J8<69&6`Et0Vrd%qAIkOj8Ut%b7x+eR~uuI0eSch}1#2={x zGqdp6NzKFWvzf;xDwerF2yXmiRT$rgr)4z2(n~vCc0^UJ*i}TJftT3cSl%bpx!39( z*cw~<7S-d^%8(U*tj6iZmWLuxlII`JhG*liMem#p_{`|L0I2{fiDoJ~YoTNdCD-&j6JKckbQ|c%0(*7MEfzdETt^%UzZcJ({0y$eGe9gaXxL<* zW##zL^m6TWWiISh$bh3b&waB6LGn7QjL9mC2Wz-I4C`q^IDzAfH1Mmd7Y_d4GcVRv zc*t_+dfYEuZQlm1VONrKi=f<*iNm3Mf5t)eMok{7LQn)}uzAlKm%|hpOM=%V;&|8+em1 zJPbqNAR@2vbgybbL;8D~APEX~vloNw*EJ1p`W+WQh9XJ32D4geWD^e5^6Q+LM&^Z- zUyZ$R)Tj?^y(1(v{1^}JCK5E4j?90-7t5WG`Q_28b(|il``fERKB!?eg*)6YTsM2u z@syZ0vIyu)RC8f|>bGkkNyVF}r~yJygZeV6S2M25n9Y$NBNMOyh|DWNodD1=fE_9P z;C=O=$xDE+>HGqEvec!I^i~kQADjW+Q4}%y0bW1^jMWb}QxsTX2GZj7pI|3)e~=0s z40$MLI@035P#CEJ=eJv2-=6Jq-r|dTlcMYO<&`nq4bgd_^GNW*dG%*=y-V8HNA#zR zZigX90u0Wd?FZY}*G4U+94WQmT!TmNYrq@wbwb&QEW#Mnm;%@{4Emf7g$zCOVDE$L zk^QNSHSepMlasMy2EM(os+(|wzdPIF^*DKVd3Fhpo6dVgeX12ga%}!n@0ZU#wAks> zf)6PwS>h%5&#M_o-W8_eKldQxd{5{pK@yC2vzbna+1c7z*DjA@E}?ca@kzvlMoFCg zmNIzZ=j$L`g6q-HKoBJ+`1fFChp|Zq)4;icq}62+DaGl4E4LMoNL@-Zdh-=u!P_XN zkmu18zAiB@vSQItg9ZK^ek(4k#lT;seaVgc97K!b{w#`60cL{of9wZM#Ykd?Wu?koW5kMLVZsCB z##@&pEZbRDAIL@+rZ@Z&zQHD==wyeL*hgazo`g#v!Vx!yxD_|fq*MRgZutG!H4EqZ z-f+2~z04L-+%>X!gkG9W6miLSS`Q~DB;+z^H#WXBEpu~fDb|jNJM{VT@{-L8vSUho z=&}uy@a#*Jh^turNct6axc<0?=j|Iomucr6uVTyb3b@;Y|` z#2>#pskB=nfPbF9+4wey(Mw7fPqYb%O=jx$75vdrjbCbioHvn@*{svNphO(1eJ&KaY*n3&t;l_Prjgh!%PaYzSZ5wqROs>z z=~c8U549T_l7CLiBKxbg^%tUtGKzk>lGmSXX~lAq`&lO)Qpxl`&(6I}%am}+J`SC2ZRhz6gF z;4?TG9D~9CmeYo_s*P+%$m8wF{YU+Mha2aumF+)pjFSuA_yXAQx;(r{U{lkq;(Kn9 z4vS}LuCrU3%~iNwAA!f+M#B;0gvXNj>$fq>CD>veF&0BI3btnl^w(B#_eJ82+ICx8 zIwP9-JWdenqt|iEY2Jd!X-K?ySgm4SbcWN0l1f2hf0pdBP|{*$_?6}OmD>1JjZioN z)4?6fuNRs{SHOs0TM1;q`jXO=tL>Zx1FUH!?px+5HZ{5@Rns4ptGjHLpyAx1q8xIz z8Qc5~CR)nyEhW@C^qziFC`RK1XQP|GuCDpuVwM=U*#fuyZz3yo^K(%s6AUYwCS1b_ zviLJ!^Oz?f@G;HR9G1ZM@>29&kvvL7sy}-smY{BiqEnIw2|~q&APjejQFH8o*R~V$ zTC-;E$8ZI9SyWf@S8fP(oM72z0V+ZJ7Jrfh2Jbt%7Y2nU6AHc z-enMZKW2K>&wJ6svhtH^PDxn@|KW|T*CA~fG^~x+H#I}m_O?f+v)bkt^TL=0yV`c!HeCyO6ak){V$)e*IRGyDqB&_njCP@DM zN`O*Wg+C5`x9R%>2D3_0@x^rpt_ofr?VrtlG0s*`IBLSuFLAycqZJ(u|z9IUZv!zO`lF zf-_8X^W0)J)YDVXkwQV` zd%Q}A@6hM5u(3(V!g1_ZDR&rY_W7}y^gE;IN*o(}>~r5GrM3(yblUmIMJx6=ZEWkK z%{Ei6A`S^t3~@rZ@eT-^RpgQ=VO-3?}n(+sQ0$ZLS>O z3B~1N@nTB%eiY85r_;0pw;V(&U7Tc$_-fABRrkA7mJGc(^C1|O}kQeOG{&xvKwLcmq%O!3u+}S zOzQMgcQ+4_^R=U#BGBUz>xTyy{+d1q2J2NS9sOYNc^j1{u`m z7K|V_W*JFMurlKtVHhNH;#0g|b=|@j$yQra?nC#aLEajTyzhrc2A)#Kk%DIo zdR51j*z@X^{gqaJ=U4XZy6qiDU1KL-k@?svUWUF}&^ZmKeI5pV7^QXhJS>q?6M1*SA_yJ7?93U4|qE z_(rpSPvhm>;#wuAGnDmEewt$SdaDsl0__w2V;!B!88g*6PVCc#hSX8A5Vz)E1gR$} zTudo&@>yWbaasAWKx~0H=Be8pt_QUD?LGt`0Ph~h*Hu^Tu=0}U+#usS zMDG=klOz^}5SKQhNTJO!I*F}~a{b8%b<9VugFmcX_m{uOCg-o}LZAB~>+9!Q$0Bj( z2+EiPsTx>O%s$7QipL)Bw0)xR{Fw5*dAMy+M>VsWw!$V2tug)Pc=U$3Xl|ZsD$g`7+a~XPP1};HtQY()&8}vu! z;uRzL6!sHK$oX5udIJU#(k%W(nUs5$!e?(kpvZZk+Oq2s5g*?+v>Mtk7jR3)z<4P| z>9yOc>EUI2mORgU!oxH_b@J{l;(7iJ=~an6Ui}c2>0$Am^0?9C4OBC4eRY1(lE4pH zT-s-UHE>VubFpyWRp-`@+qS5%qR!j>k0vQ!HJDj+?5sxv`c8Wc#7TDpy`I`w@l0e& zcPG`HlT{Iry5R_4!bc|aV1ucUbXZqJ^9LbG7VpbL4|R1Obl|FD`mZ_Et*|y!iA>fCnX~$n)Yp7+$Pv5qbZ4P82Y=CxS~hp7^UKv{fmE21&L}zg-N^0_ zA70lPa9KLr_k2c+r0#WHXd$pe=qT!JKFh_aF0F;!*4+GlPa5GLm?Cg4)udA9-2ofU zp8Wvz3kVQRZO>Mnn|P8@&z;f>XDF6O&sRQ0i~i^ta(jVhgr*z-N3eCK*5`$3hLUxz zsNv#S^U%OMB#gCK5`HlnubKj^pUyc(HA)Wh9z8ocOybTkhMz1t=w*p}#WOeJQSJ-o z!SY4JWuS=TaJ@)Uiy9l#J+4?Ag6}#n#kIOrDC`$SL#fm8pGoNCDXp9UW+0n#cFbEn z^v!dy*0Ad(aWnBxREFnp+8~YJhN9Oz^ziIT# zoW9g68J|a37 zW$HiOn{+#*H`-JmcHTX{PKUJx>IMuNcn5QV^F$2Ch+-F~WjVTcR5(Jz*UlP3%qgHu zbCs^ubbXy`Bvqhx#DKCQO}e?#aLGN=SM4NTjGmWFVGj>^UNnawy|#BA@f2UE%?n+>%K3{J z=)gD5nny|?vy=0ch6@!dJxVI zCA0phjPL+cJ3vwinkArH3}ezvjkYmpdvMECVj}vk*N)4YJ+Tcv1;a=E1uGh_W>FRq zk?(d_ZIXC2D43lh(Cd>W@z*WxcE5=G(%+fU(XsG&UvbJBF5ae-gz6j81~t4abKDD4 z{w5XBEi2@H^h(hFcb(&ajki*Rv=A1H54fbywh@~uA`j-jivB|0nmtga8z1$l;>UGbiVRf~sbvFHW_k&6^- zu?ZLl$zhcK2EpSua{scPV(pjK(9L&Qr{!885UMbledBp~mfh%Utgjn7AUh!eoN7?x z(z3I}rW+R61_(T^#_cdGm&CU{^YTJ)Ca`+%1#7V6J}#VUQ7MLT z2_=8wJGXA}ynZ+R#$6IB7nX`#p9-&fxSxgTjfL?5Z{F-^A+qGUv*@Qr!gflEdpIbJ zGdH{Mt{(jUvY4i!Wv6+GgdaY)8niEs^6FAnU036wpaoDv`T-vg6R}zUa61O06(qAcV-pF0p;mWiWF(vij=s-HKka z!64>x;3)KnQN6yBU^s4kk(@mC<6XlJCi=$4v{ssS)UL74>;TFjOY>cAjt}K6_32tA zI{tdTx{YVV&Y?v#y~v3&67l`VmCvQm3N;L;#^rN?Xa7p$H3c#g5dsq@6Bs{9?1)rF zq0gq1h`G7K9=oetJR}Qz-g%4PF2rbH9eBT*;0to{meoPEQfC9o);oIv_*{>^Ao;|u zUI3{J&AX&TH)0Zrj^`>g6@=oC?o&Q}rHHRFn(b|nK@6RIZnaSqZ)dR|^E7NhK!&|d(Bhe5Pz z$L^gfk<=CO4rKd~(cK_tw>(W-(!tGjA3=oh44(=@H~z zMvYwPl90RG>_K#}i1_B;6NWcGQCg&YND^O+D(Fseaxhs@LBh4dum$fLZxU|Of@ag?1><_8QaI6G@*PTboP8(O}mqhlv*{a(ICErai`)?cfP_#cA-uRtFR}u|UH9}DQ zk+P+S$#`Ai4IwdKWMp07hwFR650LxDm&I%f3fD|GcXd#=w#)@1l z$7Xz`0C52Nz<4A>YuRmj2xA~9GtSaO4uo&Af}h};m8-v?`!>H~j~2zcK@P6n6XPty zK&)-7D4V6;`;23vXCtpxa!*JUQ3Z1LgXl8ja%oYr~N-t^2gJ!|3CiVCdDlCMHoKcO&y}QLC3vTljE>b1}}?Z$uQ~D zhi_e|n2lNa+1pX8D&+LrB0dTm;DB%gEo|TIg-rG&yrIDV{(0& z0=5E*a%R5H``^RB<}hcM;*~|#jTCT~OGMBO)|;;M&#E;G&fAsYJ<=9%7vC8a`=b`D zpf=Yf5cr8j)9JNNju#ZYOa5$yjy+phtT5I7g?lLCetm?2oc^F!rxG>Q|`u0UZO?w%dPHXEH@= zxgSK_7Wv0U$FJgUzx!_Z;qRKa0VljCP`mKKzb-p|gL!x`z38xrjR)oPvKQd)!8qhP z)}NIjT#+E`e?9}0$KM13*!y2pdqPHOSty;$Ui@n!U?}8XRRUpwf{xd>D9+YKNmoo< z5rj&3acsP!bBf8#>KiTie@Liyasj9v3HN#?Kr+Q3`qOEsFI_(YA{~O?xNm zO$S5?P5NiH*PwEz*o2RG@u|_L`Z9wW&Q%U747*b3l(-fV^-iWM1M?+T;y`xLPVwiq zq$?p(fLs^|Ef_6@WP$X98#0F(UsYBH)Y8;m6g;*q#awrDvy4DKzE8}^v#>a%6U&(>mLlxCoStSrJX7Z5x`sGpciDd0;36bnJ@Nsk zL7iYG$*=3yP3dh_3VM3-K2{M3l=76SJ}m=5@XA0Mr9V&%wcgvAYa|EqIUymT9_M8b zC&b~QCyO?`DqSwk+!#KBZyau-V7dun*iUuKebe#OlJ*M2H9H3;eQtD`7A++l<^Q(Z zohK}Gnx%TeKzD*pNXzQD`V%OxN77k=u8_^?;$#nK&V_#g=`7Hxzj?{w?BGD4)YjGp zq^YX8@);hdNGx(LMh=dV`T1rb2coR!BAc#(Kv+qC3W6L8ul?@?K~FyVMi?v~2&nj7 zwt=Kp*jB6uC>`}RGQ%WKG`_yYV82q11YG)uP~JYE{(Fq z+E&I|UI$`$RMzW8w-iu}DfKuVl=)&mF_jJETyY~-=SP~fn3PSl?nf7O4kT;y-r1`T zU7z?z3%DH|do{jEEeZRY9B*3>ZG@Av7-+11RWF0byeJX{lHME!<=nvj{S}tyCT{{I zW3ne2j>|gEbx~5E6#acrfo8=c71{sgCEA!P5NhVq&)~@h!+~&{TKcmUFr?JfRG^dP zwwZZtoFyKkIlV<3!d@Hn-9{rXmN zm1d2Ncm*>1ZPfR+wx#vag3$ss&`3Z<&-Px~X0rSq6Ob9k0-?Rj&YTm_;K`*4CaiC4 zkOQr(&pqh{&nl})p|v4iaCD694BL`<8y-C>FV^*@zRCKckdajAS$VKy{W(@^x76f) zO>qb$fPU;#)6+oRMZrQ9#l^*SLie6oqx`Gm+K~7@Vj_+~Eu{FyzF0|>shCwEe1FA!{48qY?Jf)TXBD9me5I^EDlh z>#qN=C313VM2A^Mb>`3@+sf}Bxgfi%Pvzey7SybFAHp$M!bn(BnK19J+>lNYyhV6tERnQ?u&rHp1H_o9=7@hq`uk*W$@^lj3;a?mP~GbN^0G5x z2O)N?j*i|DLZk`QjT~7O75l$`#Gs&{#5|XF27=OZK*M58XEzR2+E%+6ai@)4){p z+X5u9?%cU^)61jVj2#?%7QX^E8EBrr=K@vfAdr+|K4d3-rl3PY5)bs=Z(s89^7a8G znLmhn`V-imfgTz4R;@au%Z?zkSO_IHrI)2VE$G3KmK(TLyNN_dSdLo6F{k)aft2Xn zHxXz&(>aulek9=u@~-3WSXubFD#@1!Zrhx zKau~ibA=89Wb65=Mf6$@K(O!Z?2IelZ3(z2&SSpc2!#I~9T8$+!c3{=7#JA7)gjZS z-lvFophOQ!vIF=q4W#e6wllSM9r2;90T}@zP_|H4OdBBbRfmI)8Tq6A{ZLAwE6}b5 z+ChMv8&mtr#R%^Ukf%pI6>E2J0v#ESwzjO|nXuyGVxS}SJlUm!1N6Spgf=$|!FxV4 zNv8=4B$Fd7M#-q(C1$!EE-zvMJ^bbQKyO?@Y0a_ah)iN7b{s9{Bc6iSABPs#3j>gu z!qrx%Q#F+68`|aV+#2Pv@;bWn$H4C-vFc+bo}R#ZzEmvy%-E0HagZ<7`-1n3m|^1q zm0#qd-cL{t3MvBVBr-`{)~TCk~EWf z>;NjF@lw2UEiEcya+6NsJA^^^+kHTv1rsy;{oQf~adqG;8O?x}weu|y)z1M-QqEJ< z*VY@|H5_~maw4h=%-X1Js`|NqEJ)<6Jz^a=9RH4NNkh<~p(^vfYMq*q7izDW_az^h zS!zD~?Wq`C)cIG5(6yH4OfIW+B7Y$XR~R;MbSxh44S+vd>SSsg0Puf(d2D@34VV)3 z(d$2Gknez!P86UcKx&T$H{%tK0{Uhlw}b9XB%&vNaVkHy1~PwhWORH%(-0pm?b}#i zUth><{qshS#J(!6I{P8%(3Yah%gdV<5*k_`!NHf0X6=1=6;1=&K%&RqrFnhhTqply z4h7Gy%%mdrRM^7`t;7PUxK8bcPsGNQX)XW>o}HT#6c+~$<xX8RJ)bX$nP2hPE);&1R4UYTQJob35%o+MRFNd( zw`r|ri|R;fZxu#A#wyKSwnCdOq@Mlzn3z}5 z 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 Date: Tue, 12 Nov 2024 13:45:57 +0800 Subject: [PATCH 4/4] Update DG --- docs/DeveloperGuide.md | 42 ++++++++++++++++----- docs/diagrams/BetterModelClassDiagram.puml | 1 - docs/images/BetterModelClassDiagram.png | Bin 14116 -> 16025 bytes 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 2afd4572ea7..039cbfac07f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -139,7 +139,7 @@ The sections below give more details of each component.]--> The **API** of this component is specified in [`Ui.java`](https://github.com/AY2425S1-CS2103T-F11-4/tp/blob/master/src/main/java/seedu/address/ui/Ui.java) -The `UI` component uses the JavaFx UI framework. The layout of these UI parts are defined in matching `.fxml` files that are in the `src/main/resources/view` folder. For example, the layout of the [`MainWindow`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/MainWindow.java) is specified in [`MainWindow.fxml`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/resources/view/MainWindow.fxml) +The `UI` component uses the JavaFx UI framework. The layout of these UI parts are defined in matching `.fxml` files that are in the `src/main/resources/view` folder. For example, the layout of the [`MainWindow`](https://github.com/AY2425S1-CS2103T-F11-4/tp/blob/master/src/main/java/seedu/address/ui/MainWindow.java) is specified in [`MainWindow.fxml`](https://github.com/AY2425S1-CS2103T-F11-4/tp/blob/master/src/main/resources/view/MainWindow.fxml) The `UI` component, @@ -682,11 +682,12 @@ The `editclient` command edits a `client`. 1. User runs a `editclient` command with valid `INDEX` and valid prefixes. 2. Command is parsed by `EzstatesParser` and a `EditClientCommandParser` is created to parse the `editclient` command which creates `EditClientCommand`. -3. `EditClientCommand` retrives the list of `Persons` from `Model` and attempts to set a new `Person` using +3. `EditClientCommand` creates a new `EditPersonDescriptor` and uses it to create a new `Person` +4. `EditClientCommand` retrieves the list of `Persons` from `Model` and attempts to set the newly created `Person` using `setPerson()`. -4. `setPerson()` creates a new edited `Person` with the edited fields. If this new `Person` already exists, a `CommandException` +5. `setPerson()` creates a new edited `Person` with the edited fields. If this new `Person` already exists, a `CommandException` is thrown, else it the original `Person` is removed from the `Model` and the new one is added. -5. Finally, `EditClientCommand` returns a `CommandResult` with a corresponding successs message. +6. Finally, `EditClientCommand` returns a `CommandResult` with a corresponding successs message.
@@ -859,6 +860,13 @@ The `listing` command adds a `listing` to EZSTATES. The `editlisting` edits a `listing`. **Implementation** +1. User runs a `editlisting` command with valid `INDEX` and valid prefixes. +2. Command is parsed by `EzstatesParser`, and a `EditListingCommandParser` is created to parse the arguments which creates + an `EditListingCommand`. +3. `EditListingCommand` creates a new `EditListingDescriptor` and uses it to create a new `Listing` +4. `EditListingCommand` then retrieves the list of `Listings` from `Model` and attempts to set the newly created `Listing` using `setListing()` +5. If the newly created `Listing` already exists, a `CommandException` is thrown. Else, the original `Listing` is removed and replaced with the new one. +6. Finally, `EditListingCommand` returns a CommandResult with a corresponding success message. #### Add buyers to listing **Overview** @@ -866,6 +874,14 @@ The `editlisting` edits a `listing`. The `addlistingbuyers` command adds buyers to a `listing`. **Implementation** +1. User runs a `addlistingbuyers` command with valid `INDEX` and valid prefixes. +2. Command is parsed by `EzstatesParser`, and a `AddBuyersToListingCommandParser` is created to parse the arguments which creates + an `AddBuyersToListingCommand`. +3. `AddBuyersToListingCommand` retrieves the list of `Persons` from `Model` and checks for the validity of its arguments (check the validity of the Buyers that it receives). +4. An updated `Listing` is created with the correct Buyers added to it. +5. `AddBuyersToListingCommand` then retrieves the list of `Listings` from `Model` and attempts to set the newly created `Listing` using `setListing()` +6. If the newly created `Listing` already exists, a `CommandException` is thrown. Else, the original `Listing` is removed and replaced with the new one. +7. Finally, `AddBuyersToListingCommand` returns a CommandResult with a corresponding success message. #### Remove buyers from listing **Overview** @@ -873,6 +889,14 @@ The `addlistingbuyers` command adds buyers to a `listing`. The `removelistingbuyers` command adds buyers to a `listing`. **Implementation** +1. User runs a `removelistingbuyers` command with valid `INDEX` and valid prefixes. +2. Command is parsed by `EzstatesParser`, and a `RemoveBuyersFromListingCommandParser` is created to parse the arguments which creates + an `RemoveBuyersFromListingCommand`. +3. `RemoveBuyersFromListingCommand` retrieves the list of `Persons` from `Model` and checks for the validity of its arguments (check the validity of the Buyers that it receives). +4. An updated `Listing` is created with the correct Buyers added to it. +5. `RemoveBuyersFromListingCommand` then retrieves the list of `Listings` from `Model` and attempts to set the newly created `Listing` using `setListing()` +6. If the newly created `Listing` already exists, a `CommandException` is thrown. Else, the original `Listing` is removed and replaced with the new one. +7. Finally, `RemoveBuyersFromListingCommand` returns a CommandResult with a corresponding success message. #### Delete listing **Overview** @@ -1335,7 +1359,7 @@ testers are expected to do more *exploratory* testing. 6. **Editing a Listing** - **Use**: `d` + **Use**: `editlisting 1 n/Eddie House` **Expected output**: Listing is edited, and a success message is displayed. @@ -1345,12 +1369,12 @@ testers are expected to do more *exploratory* testing. 8. **Adding Buyers to Listing** - **Use**: `addlistingbuyers 1 buy/2 buy/3` + **Use**: `addlistingbuyers 1 buy/1 buy/3` **Expected output**: Buyers are added to the listing, and a success message is displayed. 9. **Removing Buyers from Listing** - **Use**: `removelistingbuyers 1 buy/2` + **Use**: `removelistingbuyers 1 buy/1` **Expected output**: Buyers are removed from the listing, and a success message is displayed. @@ -1406,9 +1430,9 @@ testers are expected to do more *exploratory* testing. ### Saving data -1. Dealing with missing/corrupted data files +1. Dealing with corrupted data files - 1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_ + 1. _Delete the corrupted data files and run the jar file again. The data files should be automatically repopulated with data_ ### Future Enhancements diff --git a/docs/diagrams/BetterModelClassDiagram.puml b/docs/diagrams/BetterModelClassDiagram.puml index 8d83e624965..813c79389f7 100644 --- a/docs/diagrams/BetterModelClassDiagram.puml +++ b/docs/diagrams/BetterModelClassDiagram.puml @@ -14,7 +14,6 @@ Person <|-- Seller Person *--> Name Person *--> Phone Person *--> Email -Person *--> Property Person *--> Appointment Person *--> "0..*" Tag @enduml diff --git a/docs/images/BetterModelClassDiagram.png b/docs/images/BetterModelClassDiagram.png index 02a42e35e76b2a1b61e7feade34a0271e0640aec..967c9cb543642d1dfd34ed75841381c812d92844 100644 GIT binary patch literal 16025 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 OKavuY7cCPu^!*>s>u#|C literal 14116 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