Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CS2113-W12-1] QuizHub #8

Open
wants to merge 511 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
511 commits
Select commit Hold shift + click to select a range
a532495
Merge pull request #134 from yeo-menghan/branch-CommandUGs
yeo-menghan Oct 31, 2023
7e61a4e
Update DG for version 2.0 release
lisizhuang-0121 Oct 31, 2023
f02392f
Merge pull request #136 from lisizhuang-0121/master
lisizhuang-0121 Oct 31, 2023
a348efe
Add commandShuffleTest
yeo-menghan Oct 31, 2023
a1460fe
Rectify formatting issues for markdiff implementation
yeo-menghan Oct 31, 2023
fa4c4c7
Deconflict merge
yeo-menghan Oct 31, 2023
4691120
Merge pull request #138 from yeo-menghan/branch-CommandUGs
yeo-menghan Oct 31, 2023
ea8a147
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp …
yeo-menghan Oct 31, 2023
eba8681
Merge pull request #139 from yeo-menghan/branch-CommandShuffleTest
yeo-menghan Oct 31, 2023
066fd84
Add assertions for Parser class
lisizhuang-0121 Nov 1, 2023
9bf2ecf
Merge pull request #140 from lisizhuang-0121/master
lisizhuang-0121 Nov 1, 2023
a9796ed
Halfway implement MCQ feature
James-Hong-Jey Nov 1, 2023
603696c
Merge pull request #147 from James-Hong-Jey/master
James-Hong-Jey Nov 1, 2023
45822eb
UG Markdiff command format fix
spinoandraptos Nov 2, 2023
0ed9c6d
Merge pull request #148 from spinoandraptos/master
spinoandraptos Nov 2, 2023
2b08390
add MCQ class, command, edit and parse methods
StevenGX12 Nov 3, 2023
5932320
Merge pull request #185 from StevenGX12/branch-feature-mcq
StevenGX12 Nov 3, 2023
d4ff87c
Update user guide to resolve misinformation
lisizhuang-0121 Nov 3, 2023
fa92c42
Merge pull request #186 from lisizhuang-0121/master
lisizhuang-0121 Nov 3, 2023
e2360b0
Add escape sequence for illegal characters.
lisizhuang-0121 Nov 3, 2023
1f6fdd2
Merge pull request #187 from lisizhuang-0121/master
lisizhuang-0121 Nov 3, 2023
5dad37a
Fix case sensitivity when loading from file
lisizhuang-0121 Nov 3, 2023
aec0e76
Fix invalid difficulty handling when parsing from storage file.
lisizhuang-0121 Nov 3, 2023
91dfed7
Merge pull request #188 from lisizhuang-0121/master
lisizhuang-0121 Nov 3, 2023
e586295
Fix M shown as S when listed
yeo-menghan Nov 4, 2023
d43719b
Merge pull request #190 from yeo-menghan/branch-startMCQ
yeo-menghan Nov 4, 2023
83577fb
Integrated mcq and shortans into /start command
yeo-menghan Nov 4, 2023
ca52777
Remove commented code
yeo-menghan Nov 4, 2023
ee914ee
Merge pull request #191 from yeo-menghan/branch-startMCQ
yeo-menghan Nov 4, 2023
ae2708c
Add Ui elements
yeo-menghan Nov 4, 2023
3246aa2
Resolve issue #168 on shuffle command not having ui feedback
yeo-menghan Nov 4, 2023
d37a39d
Merge pull request #192 from yeo-menghan/branch-smallIncrements
yeo-menghan Nov 4, 2023
1639fd6
Fix some bugs related to mcq parsing and storage
StevenGX12 Nov 4, 2023
54a3925
Fix checkstyle errors
StevenGX12 Nov 4, 2023
827d1f9
Merge pull request #193 from StevenGX12/branch-code-refactor
StevenGX12 Nov 4, 2023
728db77
Updated PPP, fixed typo in parseEditCommand
spinoandraptos Nov 7, 2023
9f6b26e
Merge pull request #194 from spinoandraptos/PPP
spinoandraptos Nov 7, 2023
b39b553
Implement methods for converting questions to strings
lisizhuang-0121 Nov 7, 2023
99fb70f
Fix checkstyle violation
lisizhuang-0121 Nov 7, 2023
77b5b4a
Update tests
lisizhuang-0121 Nov 7, 2023
f1b069d
Merge pull request #195 from lisizhuang-0121/master
lisizhuang-0121 Nov 7, 2023
f2294e6
Fix styling issues in documentations
lisizhuang-0121 Nov 7, 2023
4a7f49d
Remove steven halim image
lisizhuang-0121 Nov 7, 2023
b5853d0
Update documentations
lisizhuang-0121 Nov 7, 2023
7200ca9
Merge pull request #196 from lisizhuang-0121/master
lisizhuang-0121 Nov 7, 2023
ee30932
Add Guan Xiao PPP
StevenGX12 Nov 7, 2023
abc2ea6
Merge pull request #197 from StevenGX12/master
StevenGX12 Nov 7, 2023
1054987
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp …
yeo-menghan Nov 8, 2023
4c71e59
Add boundary checking for invalid int and out of array bounds for mcq
yeo-menghan Nov 8, 2023
395dd42
Ensure 'Your Answer' is replicated per wrong input when doing boundar…
yeo-menghan Nov 8, 2023
efdee7b
Add blank answer check
yeo-menghan Nov 8, 2023
1b0f0fa
Add exitquiz to exit in the middle of the quiz
yeo-menghan Nov 8, 2023
37d5a66
Merge pull request #199 from yeo-menghan/branch-startMCQ
yeo-menghan Nov 8, 2023
5fe6eb3
Integrate question type for StartCommand to filter /mix or /short or …
yeo-menghan Nov 8, 2023
212ef87
Init qntype
yeo-menghan Nov 8, 2023
2a427f6
Integrate /mix /mcq /short into start command
yeo-menghan Nov 8, 2023
d8a3d47
Merge pull request #200 from yeo-menghan/branch-startMCQ
yeo-menghan Nov 8, 2023
ceb4dda
Ui abstraction of print statements
spinoandraptos Nov 8, 2023
6e122fd
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp …
spinoandraptos Nov 8, 2023
d8404f4
Refactor question and questionlist in displaying
lisizhuang-0121 Nov 8, 2023
6384a44
Merge pull request #201 from lisizhuang-0121/master
lisizhuang-0121 Nov 8, 2023
787cc56
UI Abstraction of print statements
spinoandraptos Nov 8, 2023
13c2ab3
Merge pull request #202 from spinoandraptos/UI_refactor
spinoandraptos Nov 8, 2023
ef01d2c
Improve code quality in questionlist
lisizhuang-0121 Nov 8, 2023
ac42cfe
Update question list
lisizhuang-0121 Nov 8, 2023
e9d748f
Merge pull request #203 from lisizhuang-0121/master
lisizhuang-0121 Nov 8, 2023
ca4949b
UI Abstractions to remove print statements
spinoandraptos Nov 8, 2023
a19fd62
Merge pull request #204 from spinoandraptos/UI_refactor
spinoandraptos Nov 8, 2023
0b9f8e9
Catch duplicate options in mcq
James-Hong-Jey Nov 8, 2023
44b57ca
Merge pull request #206 from James-Hong-Jey/master
James-Hong-Jey Nov 8, 2023
954d6a6
Fix bug for mcq indexing
yeo-menghan Nov 8, 2023
8329f2e
Merge pull request #207 from yeo-menghan/branch-StartCommandRefactor
yeo-menghan Nov 8, 2023
d772c7b
Update user guide
lisizhuang-0121 Nov 8, 2023
3657614
Code abstraction for CommandStart
spinoandraptos Nov 8, 2023
161dd82
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp …
spinoandraptos Nov 8, 2023
e9699ac
Remove comments
yeo-menghan Nov 8, 2023
e153643
Merge pull request #210 from yeo-menghan/branch-StartCommandRefactor
yeo-menghan Nov 8, 2023
de67605
Start on ppp
James-Hong-Jey Nov 8, 2023
b79416e
Update ui displaymessage to include static method
spinoandraptos Nov 8, 2023
25709f0
Merge pull request #211 from spinoandraptos/UI_refactor
spinoandraptos Nov 8, 2023
b88ba14
Merge pull request #209 from lisizhuang-0121/master
lisizhuang-0121 Nov 8, 2023
2704980
Code abstraction for addQnFromFile
spinoandraptos Nov 8, 2023
3c3c47c
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp …
spinoandraptos Nov 8, 2023
04f20aa
Add protection against \exitquiz for shortans
yeo-menghan Nov 8, 2023
eb9af66
Merge pull request #212 from yeo-menghan/branch-exitQuiz
yeo-menghan Nov 8, 2023
e38a27e
Update user guide with latest commands and features
lisizhuang-0121 Nov 8, 2023
de51cd3
Merge pull request #213 from lisizhuang-0121/master
lisizhuang-0121 Nov 8, 2023
76e05e2
Update tests
lisizhuang-0121 Nov 8, 2023
aa4381c
UI Abstraction to abstract out string literals and remove print state…
spinoandraptos Nov 8, 2023
44f5b33
Merge pull request #214 from lisizhuang-0121/master
lisizhuang-0121 Nov 8, 2023
1a9fc27
Refactor start command
yeo-menghan Nov 8, 2023
1bc4148
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp …
spinoandraptos Nov 8, 2023
680cf6c
Merge pull request #215 from spinoandraptos/UI_refactor
spinoandraptos Nov 8, 2023
64b322d
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
yeo-menghan Nov 8, 2023
1229888
Fixed wrong abstraction
spinoandraptos Nov 8, 2023
f4c56f2
Merge pull request #216 from spinoandraptos/UI_refactor
spinoandraptos Nov 8, 2023
c4e899c
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
yeo-menghan Nov 8, 2023
c4a4d72
Revert refactoring of StartCommand
yeo-menghan Nov 8, 2023
8e09b8f
Change bracket for checkstyle
yeo-menghan Nov 8, 2023
17344a8
Merge pull request #217 from yeo-menghan/master
yeo-menghan Nov 8, 2023
22ce273
Edit tests
lisizhuang-0121 Nov 8, 2023
ef3f09c
Merge pull request #218 from lisizhuang-0121/master
lisizhuang-0121 Nov 8, 2023
bfab8ee
Fix bug on exitquiz
yeo-menghan Nov 8, 2023
fcb57ed
Merge pull request #219 from yeo-menghan/master
yeo-menghan Nov 8, 2023
277c14f
Refactor code related to start quiz command
lisizhuang-0121 Nov 8, 2023
70ea840
Merge pull request #221 from lisizhuang-0121/master
lisizhuang-0121 Nov 8, 2023
bcc7165
Add DG diagrams
James-Hong-Jey Nov 8, 2023
61ea56c
Merge pull request #223 from James-Hong-Jey/master
James-Hong-Jey Nov 8, 2023
b787495
Review user guide and fix bugs
lisizhuang-0121 Nov 8, 2023
5159ef7
Merge pull request #224 from lisizhuang-0121/master
lisizhuang-0121 Nov 8, 2023
5491129
DG Refactoring
spinoandraptos Nov 9, 2023
4ec25ac
Merge pull request #225 from spinoandraptos/master
spinoandraptos Nov 9, 2023
0c8ecf9
Add Meng Han's PPP
yeo-menghan Nov 9, 2023
e8915a8
Change Meng Han's Profile picture
yeo-menghan Nov 9, 2023
3814165
Merge pull request #226 from yeo-menghan/master
yeo-menghan Nov 9, 2023
a9fc8d1
Update DG Command Markdiff sequence diagram
yeo-menghan Nov 9, 2023
a310bcd
Update CommandMarkDiff class diagram
yeo-menghan Nov 9, 2023
c48ee0c
Update StartCommand details in accordance with the user guide's update
yeo-menghan Nov 9, 2023
4479fa3
Update command exit uml
yeo-menghan Nov 9, 2023
7752e81
Update command Start developer guide + command Start display score af…
yeo-menghan Nov 9, 2023
9728993
Update command markdiff developer guide
yeo-menghan Nov 9, 2023
940debf
Add comand Shuffle invalid commands developer guide
yeo-menghan Nov 9, 2023
43cb518
Update Invalid qn type in start parser
yeo-menghan Nov 9, 2023
42c5314
Reorganisation of UML diagrams and Implemented standardised styling a…
spinoandraptos Nov 9, 2023
a150ead
Merge pull request #228 from spinoandraptos/master
spinoandraptos Nov 9, 2023
43cba2c
Update DG for CommandEdit
StevenGX12 Nov 9, 2023
7095ff7
Merge pull request #229 from StevenGX12/branch-developer-guide
StevenGX12 Nov 9, 2023
8c24ba1
Add tolowercase() to parserStart to allow for non-case-sensitive comm…
yeo-menghan Nov 9, 2023
6927ab9
Add to startparser to prevent additional input after /qntype
yeo-menghan Nov 9, 2023
8a46b54
Update edit command DG along with potential bug fixes
yeo-menghan Nov 9, 2023
a4a27f4
Resolve merge conflicts
yeo-menghan Nov 9, 2023
57f049a
Merge pull request #230 from yeo-menghan/master
yeo-menghan Nov 9, 2023
ec344d6
Added overall class interactions UML diagram, updated overall archite…
spinoandraptos Nov 9, 2023
3fb5194
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
spinoandraptos Nov 9, 2023
09bf6b0
Remove Steven Halim again
James-Hong-Jey Nov 9, 2023
af7b14b
Add links to ppp, halfway implement
James-Hong-Jey Nov 9, 2023
9a9342d
Changed Overall architecture diagram, overall class diagram and appli…
spinoandraptos Nov 9, 2023
e46f908
Merge branch 'master' of https://github.com/spinoandraptos/tp
spinoandraptos Nov 9, 2023
e3df231
Fixed checkstyle error
spinoandraptos Nov 9, 2023
629bf9c
Merge pull request #231 from spinoandraptos/master
spinoandraptos Nov 9, 2023
8bb501a
Update class structures for start, markdiff and shuffle
yeo-menghan Nov 9, 2023
17554c5
Update class structure for edit command
yeo-menghan Nov 9, 2023
4380ac8
Update edit parser to reject \exitquiz as answer
yeo-menghan Nov 9, 2023
716a0ba
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
yeo-menghan Nov 9, 2023
d6d5231
Merge pull request #232 from yeo-menghan/master
yeo-menghan Nov 9, 2023
5787175
Updated parseCommand UML diagram to standardise style and add vaue
spinoandraptos Nov 9, 2023
6954a17
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
spinoandraptos Nov 9, 2023
afacef2
Merge pull request #233 from spinoandraptos/master
spinoandraptos Nov 9, 2023
c22ab1b
Updated addShortAns UML diagram to standardise style and changed to s…
spinoandraptos Nov 9, 2023
d1079be
Merge pull request #234 from spinoandraptos/master
spinoandraptos Nov 9, 2023
c11800b
Fixed formatting errors in DG Parser
spinoandraptos Nov 9, 2023
e6e28d1
Fixed diagram errors
spinoandraptos Nov 9, 2023
b12c2cd
Merge pull request #235 from spinoandraptos/master
spinoandraptos Nov 9, 2023
5ced9ae
update DG diagrams for storage and ui
StevenGX12 Nov 9, 2023
5c2cf16
Merge pull request #236 from StevenGX12/branch-developer-guide
StevenGX12 Nov 9, 2023
5fd5eac
Formatted UML diagrams
spinoandraptos Nov 10, 2023
60a9d9e
Merge pull request #238 from spinoandraptos/master
spinoandraptos Nov 10, 2023
7ad4046
Merge branch 'master' of https://github.com/James-Hong-Jey/tp
James-Hong-Jey Nov 11, 2023
c6b0d97
Change Edit and Reformat Diagram
James-Hong-Jey Nov 11, 2023
a850ad8
Complete James PPP
James-Hong-Jey Nov 11, 2023
e1a02f4
Merge pull request #239 from James-Hong-Jey/master
James-Hong-Jey Nov 11, 2023
e6486f4
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
yeo-menghan Nov 11, 2023
4128618
Remove sequence diagrams for command markdiff and exit. Add expected …
yeo-menghan Nov 11, 2023
85d49b4
Update DG for short command
yeo-menghan Nov 11, 2023
9888c96
Update DG for mcq command
yeo-menghan Nov 11, 2023
c1bb391
Resolve BUG: extra argument after difficulty for mcq command. Update …
yeo-menghan Nov 11, 2023
43561e3
Update DG for list command
yeo-menghan Nov 11, 2023
0194c6e
Update DG for delete command
yeo-menghan Nov 11, 2023
7834e80
Update DG for find command
yeo-menghan Nov 11, 2023
773adf2
Merge pull request #240 from yeo-menghan/branch-DGIncrement
yeo-menghan Nov 11, 2023
56a93a0
Complete lisizhuang-0121 project portfolio page
lisizhuang-0121 Nov 12, 2023
f54787f
Merge pull request #243 from lisizhuang-0121/master
lisizhuang-0121 Nov 12, 2023
25fa427
update DG for storage and ui
StevenGX12 Nov 12, 2023
1b44021
Merge pull request #244 from StevenGX12/branch-developer-guide
StevenGX12 Nov 12, 2023
22132c4
Assert duplicate
yeo-menghan Nov 12, 2023
86f07e3
Merge pull request #245 from yeo-menghan/master
yeo-menghan Nov 12, 2023
f28c92b
Updated DG UML diagram, updated Juncheng PPP, updated Juncheng AboutUs
spinoandraptos Nov 12, 2023
c071b09
Merge pull request #247 from spinoandraptos/master
spinoandraptos Nov 12, 2023
eb0df18
Juncheng PPP update
spinoandraptos Nov 12, 2023
4b85a90
Merge pull request #248 from spinoandraptos/master
spinoandraptos Nov 12, 2023
34200a8
Add FAQ to UG
James-Hong-Jey Nov 12, 2023
39f9c8f
Fix broken link in aboutus page.
lisizhuang-0121 Nov 12, 2023
9332ba7
Update aboutus.md
lisizhuang-0121 Nov 12, 2023
89ba36b
Merge pull request #250 from lisizhuang-0121/master
lisizhuang-0121 Nov 12, 2023
91e1fbd
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
James-Hong-Jey Nov 12, 2023
7cc304e
Merge pull request #251 from James-Hong-Jey/master
James-Hong-Jey Nov 12, 2023
22e1e1b
Update sizhuang PPP for submission with pagebreak
lisizhuang-0121 Nov 12, 2023
6a04700
Merge pull request #252 from lisizhuang-0121/master
lisizhuang-0121 Nov 12, 2023
d90f310
Update sizing of image
lisizhuang-0121 Nov 12, 2023
7d54cf6
Merge pull request #253 from lisizhuang-0121/master
lisizhuang-0121 Nov 12, 2023
944eff9
Update Juncheng PPP
spinoandraptos Nov 12, 2023
bb49546
Merge pull request #254 from spinoandraptos/master
spinoandraptos Nov 12, 2023
cef570f
Update Juncheng PPP
spinoandraptos Nov 12, 2023
650e49d
Merge pull request #255 from spinoandraptos/master
spinoandraptos Nov 12, 2023
0cfdb2d
update Guan Xiao PPP
StevenGX12 Nov 12, 2023
ea72f09
Merge pull request #256 from StevenGX12/master
StevenGX12 Nov 12, 2023
7b30af5
update Guan Xiao PPP
StevenGX12 Nov 12, 2023
af206cd
Merge pull request #257 from StevenGX12/master
StevenGX12 Nov 12, 2023
bf9e63e
no message
StevenGX12 Nov 12, 2023
70db269
Merge pull request #258 from StevenGX12/master
StevenGX12 Nov 12, 2023
9b510ac
Modify page break for li-sizhuang ppp
lisizhuang-0121 Nov 13, 2023
b546ab4
Merge pull request #259 from lisizhuang-0121/master
lisizhuang-0121 Nov 13, 2023
8b4db31
Update UG for pagination
lisizhuang-0121 Nov 13, 2023
7120e1b
Update developer guide
lisizhuang-0121 Nov 13, 2023
f6ea8d2
Merge pull request #260 from lisizhuang-0121/master
lisizhuang-0121 Nov 13, 2023
cff8fbf
Update UG pagination
lisizhuang-0121 Nov 13, 2023
7c23678
Merge pull request #261 from lisizhuang-0121/master
lisizhuang-0121 Nov 13, 2023
431598f
Update userguide formatting
lisizhuang-0121 Nov 13, 2023
ddbd9fb
Merge pull request #262 from lisizhuang-0121/master
lisizhuang-0121 Nov 13, 2023
b9a1c34
Change James PPP
James-Hong-Jey Nov 13, 2023
c35d4b4
Merge pull request #263 from James-Hong-Jey/master
James-Hong-Jey Nov 13, 2023
11ab1f3
Update DG on edit \exitquiz
yeo-menghan Nov 13, 2023
ab310f1
Fix bug for MCQ editing
lisizhuang-0121 Nov 13, 2023
c302492
Merge pull request #264 from lisizhuang-0121/master
lisizhuang-0121 Nov 13, 2023
6d4ee88
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
yeo-menghan Nov 13, 2023
45a9548
Update white space for Edit DG
yeo-menghan Nov 13, 2023
6737662
Merge pull request #265 from yeo-menghan/master
yeo-menghan Nov 13, 2023
0245a26
Edits to DG
yeo-menghan Nov 13, 2023
d8b77f6
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
yeo-menghan Nov 13, 2023
da1b912
Merge pull request #266 from yeo-menghan/master
yeo-menghan Nov 13, 2023
f246173
Edits to DG uml diagrams size
yeo-menghan Nov 13, 2023
abad8c3
Merge pull request #267 from yeo-menghan/master
yeo-menghan Nov 13, 2023
687dcdd
Edits to DG uml diagrams size for overall flows
yeo-menghan Nov 13, 2023
e211c16
Merge pull request #268 from yeo-menghan/master
yeo-menghan Nov 13, 2023
ea4ae78
Reformat size for Edit Command diagrams
yeo-menghan Nov 13, 2023
8aee65f
Merge pull request #269 from yeo-menghan/master
yeo-menghan Nov 13, 2023
59d3190
Add page breaks for DG
yeo-menghan Nov 13, 2023
86540e7
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
yeo-menghan Nov 13, 2023
7110fcb
Merge pull request #270 from yeo-menghan/master
yeo-menghan Nov 13, 2023
0a4327c
Reformat page breaks for DG
yeo-menghan Nov 13, 2023
b433780
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
yeo-menghan Nov 13, 2023
6dcefff
Merge pull request #271 from yeo-menghan/master
yeo-menghan Nov 13, 2023
030c95e
UG typo
spinoandraptos Nov 13, 2023
b59fa88
Merge branch 'master' of https://github.com/AY2324S1-CS2113-W12-1/tp
spinoandraptos Nov 13, 2023
43a89ff
Update DG and UG
spinoandraptos Nov 13, 2023
747d3b3
Merge pull request #272 from spinoandraptos/master
spinoandraptos Nov 13, 2023
375ab9a
Update UG and bug in parsing edit command
lisizhuang-0121 Nov 13, 2023
eddbf69
Merge pull request #273 from lisizhuang-0121/master
lisizhuang-0121 Nov 13, 2023
fe560ce
Fix bug in edit command to disallow forward slash
lisizhuang-0121 Nov 13, 2023
b97d0b4
Merge pull request #274 from lisizhuang-0121/master
lisizhuang-0121 Nov 13, 2023
f467a27
Fix bug in edit command again
lisizhuang-0121 Nov 13, 2023
aad0d75
Merge pull request #275 from lisizhuang-0121/master
lisizhuang-0121 Nov 13, 2023
f09efbd
Update CommandShuffle when array empty:
yeo-menghan Nov 13, 2023
8ce79e7
Merge pull request #276 from yeo-menghan/master
yeo-menghan Nov 13, 2023
dc417b6
Update broken link in userguide
lisizhuang-0121 Nov 13, 2023
709c71f
Merge pull request #277 from lisizhuang-0121/master
lisizhuang-0121 Nov 13, 2023
dee992d
update Guan Xiao PPP
StevenGX12 Nov 13, 2023
e412a47
Merge pull request #278 from StevenGX12/master
StevenGX12 Nov 13, 2023
0b6325c
Fix dead link JC PPP
spinoandraptos Nov 13, 2023
d5dcfbf
Merge pull request #279 from spinoandraptos/master
spinoandraptos Nov 13, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update class structures for start, markdiff and shuffle
  • Loading branch information
yeo-menghan committed Nov 9, 2023
commit 8bb501acdce71199c132d0adc55400410c3cdfdd
69 changes: 53 additions & 16 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,28 @@ to quiz themselves on alongside whether to randomize the questions or use their
#### Command Syntax
- `start /[quiz mode] [start details] /[qn mode] /[qn type]`

#### Class Structure of Start Command
The `CommandStart` class is integral to the QuizHub application, facilitating the initiation of a quiz session. It inherits from the abstract `Command` superclass and specializes in handling the 'start' command functionality.

Attributes:
- `startMode`: A string that denotes the quiz mode, which dictates how questions are selected for the quiz. It can be 'all' to include all questions or 'module' for module-specific questions.
- `startDetails`: A string providing supplementary information for the `startMode`. If `startMode` is 'module', `startDetails` will specify the particular module.
- `startQnMode`: A string indicating how the quiz questions should be arranged; either 'random' for a shuffled order or 'normal' for sequential order.
- `startQnType`: A string that filters the quiz questions by type, which can be 'short' for short-answer questions, 'mcq' for multiple-choice questions, or 'mix' for a combination of both.

Constructor:
- `CommandStart(String startMode, String startDetails, String startQnMode, String startQnType)`: Constructs a new `CommandStart` instance with the specified modes and details for the quiz.

Methods:
- `executeCommand(Ui ui, Storage dataStorage, QuestionList questions)`: Executes the start quiz command by preparing the list of questions according to the specified modes and initiating the quiz through the `QuestionList`.

The class utilizes the following components from the QuizHub application:
- `Ui`: For user interaction, providing prompts, and displaying messages.
- `Storage`: To potentially save any quiz-related data or state changes.
- `QuestionList`: To retrieve and organize the list of questions based on the user's chosen modes.

Upon execution, the `CommandStart` class will first gather the matching questions using the `startMode` and `startDetails`, filter them by `startQnType`, arrange them according to `startQnMode`, and then proceed to start the quiz session via the `QuestionList`. It handles any errors or invalid input by providing feedback through the `Ui`.

#### Sequence Diagram of Start Command

![commandStartLoop.png](UML/Images/commandStartLoop.png)
Expand Down Expand Up @@ -544,14 +566,25 @@ The Shuffle command in QuizHub is designed to **PERMANENTLY** randomize the orde
This contrasts with the temporary randomization available in the Start Command's /random mode.

#### Command Syntax
- `shuffle`
`shuffle`

#### Class Structure of Shuffle Command
The `CommandShuffle` class is tasked with executing the shuffle operation within the QuizHub application.
It inherits from `Command`: As a subclass, it inherits methods and attributes from the `Command` superclass.

Constructor:
- `CommandShuffle()`: Initializes the `CommandShuffle` object with the `SHUFFLE` command type.

Methods:
- `executeCommand(ui : Ui, dataStorage : Storage, questions : QuestionList) : void`: This method is called to execute the shuffle command. It invokes the `shuffleQuestions` method on the `QuestionList` object to randomly reorder the questions.

- The Shuffle command resides within the quizhub.command package and is responsible for interacting with the QuestionList class from the quizhub.questionlist package.
- When invoked, it permanently modifies the order of questions in the storage, thereby affecting all future accesses to the question list.
The `CommandShuffle` class does not have its own attributes but utilizes those from its superclass. It interacts with the following components:

![ShuffleToStorage-Shuffle_to_Storage_Flow.png](UML%2FCommands%2FShuffleToStorage-Shuffle_to_Storage_Flow.png)
- `Ui`: Used to interact with the user and potentially display messages or shuffle results.
- `Storage`: If the shuffle should result in a permanent change, `Storage` would be used to persist the new question order.
- `QuestionList`: Contains the list of questions that will be shuffled.

![ShuffleToStorage-Shuffle_to_Storage_Flow.png](UML/Images/ShuffleToStorage-Shuffle_to_Storage_Flow.png)

#### Operational Flow

Expand Down Expand Up @@ -597,12 +630,22 @@ This feature allows for the categorization of questions by difficulty, aiding in

![commandMarkDiffClass.png](UML/Images/commandMarkDiffClass.png)

- The `CommandMarkDifficulty` class is responsible for interpreting and executing the `markdiff` command.
- It utilizes the following key fields:
- `qnIndex`: An integer identifying the question number.
- `qnDifficulty`: An enumeration value representing the difficulty level (easy, normal, hard).
- The class collaborates with `QuestionList` and `Question` classes to apply the difficulty level to the appropriate question.
- The sequence and class diagrams provide a visual representation of the workflow and class relationships.
The `CommandMarkDifficulty` class is responsible for the command operation that marks a question with a specified difficulty level in the QuizHub application. It extends the base `Command` class and includes specific attributes and methods for the marking process.

- `qnIndex`: An integer representing the index of the question whose difficulty is to be marked.
- `qnDifficulty`: An enumeration of type `Question.QnDifficulty` representing the difficulty level to be assigned to the question.

The class interacts with the following components:

- `Ui`: Used to interact with the user for input and to display messages.
- `Storage`: Handles the persistence of changes made to the question list after the difficulty level has been marked.
- `QuestionList`: Contains the list of questions and provides methods to update the difficulty level of a question.

Constructor:
- `CommandMarkDifficulty(int qnIndex, Question.QnDifficulty qnDifficulty)`: Initializes a new command with the given question index and difficulty level.

Methods:
- `executeCommand(Ui ui, Storage dataStorage, QuestionList questions)`: Executes the mark difficulty command. It validates the difficulty level and, if valid, calls the `markQuestionDifficulty` method on the `QuestionList` to update the question's difficulty. The `Storage` component is then used to save the updated question list.

#### Operational Flow of Markdiff Command
1. **Command Reception:**
Expand All @@ -618,12 +661,6 @@ This feature allows for the categorization of questions by difficulty, aiding in
6. **User Feedback:**
- The user is provided with feedback indicating the successful marking of the question's difficulty.

#### User Guide for Markdiff Command
- Users can change the difficulty level of questions using the `markdiff` command followed by the question number and desired difficulty.
- Difficulty level input is not case-sensitive.
- The application supports a fixed set of difficulty levels: `easy`, `normal`, and `hard`.
- If an invalid question number or difficulty level is entered, the user is prompted to retry the command.

#### Expected Invalid Commands for Command Markdiff
Assuming 2 current questions: <br>
1: [S][ ] question / answer | number | EASY <br>
Expand Down
45 changes: 45 additions & 0 deletions docs/UML/Puml/commandStartClass.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
@startuml
!include Style.puml
Title: Command Start Class Diagram

' Abstract class Command from which CommandStart inherits
abstract class Command {
{abstract} +executeCommand(ui : Ui, dataStorage : Storage, questions : QuestionList) : void
}

' CommandStart class with visibility indicators for members
class CommandStart {
-startMode : String
-startDetails : String
-startQnMode : String
-startQnType : String
+executeCommand(ui : Ui, dataStorage : Storage, questions : QuestionList) : void
-getMatchedQuestions(questions : QuestionList) : ArrayList<Question>
-filterQuestionsByType(matchedQuestions : ArrayList<Question>) : ArrayList<Question>
-arrangeQuestions(matchedQuestions : ArrayList<Question>) : void
+CommandStart(startMode : String, startDetails : String, startQnMode : String, startQnType : String)
}

' Other classes used by CommandStart
class Ui {
}

class Storage {
}

class QuestionList {
}

class Question {
}

' Inheritance relationship
Command <|-- CommandStart

' Dependency relationships
CommandStart ..> Ui : uses
CommandStart ..> Storage : uses
CommandStart ..> QuestionList : uses
CommandStart ..> Question : uses

@enduml