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-T14-2] eCardnomics #39

Open
wants to merge 541 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
541 commits
Select commit Hold shift + click to select a range
552d8b3
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
alwaysnacy Oct 28, 2020
f864b45
add Tag-DG
alwaysnacy Oct 28, 2020
ca17f2b
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
alwaysnacy Oct 28, 2020
e7995f0
Remove unused method and refactor delete branch for SLAP
LiewWS Oct 28, 2020
b1589d5
Update .gitignore to not track data/deckList.txt
LiewWS Oct 28, 2020
7cb8027
add TagFlow
alwaysnacy Oct 28, 2020
632852d
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
alwaysnacy Oct 28, 2020
217e7a7
Add one-shot delete deck command
LiewWS Oct 28, 2020
8be6150
update UG and DG
alwaysnacy Oct 28, 2020
4293095
Merge pull request #115 from alwaysnacy/master
alwaysnacy Oct 28, 2020
38221c9
Add one-shot add flashcard command
LiewWS Oct 28, 2020
39c2e00
Move confirmation methods to Ui
LiewWS Oct 28, 2020
050cc1e
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
LiewWS Oct 28, 2020
433adef
add one-shot delete delete command
LiewWS Oct 28, 2020
d79f978
refactor update for SLAP
LiewWS Oct 28, 2020
db8a093
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp
exuberant-duck Oct 28, 2020
4d24af2
Merge pull request #116 from LiewWS/master
zhixiangteoh Oct 28, 2020
e5e4078
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp
exuberant-duck Oct 28, 2020
105585d
update UG to include one-line commands
LiewWS Oct 28, 2020
3481c10
Merge pull request #117 from LiewWS/branch-UserGuide
LiewWS Oct 28, 2020
15b5125
update help command list for all modes
exuberant-duck Oct 28, 2020
53d1b84
fix checkstyle
exuberant-duck Oct 28, 2020
433a10b
Add DG for Storage class
wangwaynesg Oct 28, 2020
155e07f
Merge pull request #121 from wangwaynesg/branch-StorageDG
wangwaynesg Oct 28, 2020
219aa46
Merge pull request #119 from zhixiangteoh/master
zhixiangteoh Oct 28, 2020
2e190b3
update ug with proposed feature
exuberant-duck Oct 30, 2020
16f66d9
Merge branch 'master' into master
zhixiangteoh Oct 30, 2020
dfd8296
Merge pull request #124 from zhixiangteoh/master
zhixiangteoh Oct 30, 2020
2fa37f9
add examples
alwaysnacy Oct 30, 2020
317717d
Add Class and Method conventions in DG
wangwaynesg Oct 31, 2020
ac9e75b
Merge pull request #153 from wangwaynesg/master
wangwaynesg Oct 31, 2020
b596fe3
Add checking for corrupted Storage file
wangwaynesg Oct 31, 2020
1c93440
Merge pull request #155 from wangwaynesg/master
wangwaynesg Oct 31, 2020
792c444
update .gitignore
LiewWS Oct 31, 2020
98d1f16
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
LiewWS Oct 31, 2020
4129639
update ug help commands, and command summary
exuberant-duck Oct 31, 2020
5b8d369
add update command to command summary
exuberant-duck Oct 31, 2020
ee27946
update toc
exuberant-duck Oct 31, 2020
6008254
Merge pull request #156 from zhixiangteoh/master
zhixiangteoh Oct 31, 2020
6326f37
fix wild 0 in deck's start command
exuberant-duck Oct 31, 2020
41c7413
Fix Storage check corruption bugs
wangwaynesg Oct 31, 2020
7572c9d
Merge pull request #157 from zhixiangteoh/master
LiewWS Oct 31, 2020
3e72fab
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
LiewWS Oct 31, 2020
6db2668
Merge pull request #159 from wangwaynesg/master
wangwaynesg Oct 31, 2020
b49eaa3
Fix bugs discovered in PED
LiewWS Oct 31, 2020
d734b64
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
LiewWS Oct 31, 2020
312a2c8
Refactor method for pretty printing to Ui
LiewWS Oct 31, 2020
3b39fe9
Merge pull request #160 from LiewWS/master
zhixiangteoh Nov 1, 2020
08faecb
add zhixiangteoh tentative PPP
exuberant-duck Nov 1, 2020
20db763
Merge pull request #161 from zhixiangteoh/master
zhixiangteoh Nov 1, 2020
971ec52
update AboutUs links
exuberant-duck Nov 1, 2020
46ec96d
update AboutUs PPP links
exuberant-duck Nov 1, 2020
b3f3641
Merge pull request #162 from zhixiangteoh/master
zhixiangteoh Nov 1, 2020
d98022d
add GameEngine, GameParser, GameStorage tests
exuberant-duck Nov 1, 2020
fb83d79
Merge pull request #163 from zhixiangteoh/master
zhixiangteoh Nov 1, 2020
ed7c9b5
Fixed some PE-D and Peer Review DG bugs
Nov 3, 2020
0f689ef
Fixed index error messages
Nov 3, 2020
97903ae
Update Text-Ui-Test
Nov 3, 2020
74a3a04
Merge pull request #164 from kaijiel24/master
kaijiel24 Nov 3, 2020
f53e78b
update add flashcard command description
LiewWS Nov 4, 2020
df9b64a
update DG for pretty print
LiewWS Nov 4, 2020
725dd71
update DG for Ui
LiewWS Nov 4, 2020
d3fefa9
update Commands, Game Mode sections, add Exceptions section to DG
exuberant-duck Nov 4, 2020
64aceb2
Merge pull request #166 from zhixiangteoh/master
zhixiangteoh Nov 4, 2020
7377c15
Merge branch 'master' into master
zhixiangteoh Nov 4, 2020
87c05fc
update PPP
exuberant-duck Nov 4, 2020
c051896
Merge pull request #167 from zhixiangteoh/master
zhixiangteoh Nov 4, 2020
6ff570a
Update PPP
LiewWS Nov 5, 2020
ced462e
Merge pull request #165 from LiewWS/master
LiewWS Nov 5, 2020
f2b71b7
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
LiewWS Nov 5, 2020
93a6d94
Update PPP
LiewWS Nov 5, 2020
923c321
Merge branch 'master' of https://github.com/LiewWS/tp into master
LiewWS Nov 5, 2020
2c93fc4
Merge pull request #168 from LiewWS/master
LiewWS Nov 5, 2020
9e4b5aa
update DG with class and method font styles, update PPP
exuberant-duck Nov 5, 2020
bd26926
Merge pull request #169 from zhixiangteoh/master
zhixiangteoh Nov 5, 2020
d26d793
shorten PPP UG and DG extracts
exuberant-duck Nov 5, 2020
8ef1042
Merge pull request #170 from zhixiangteoh/master
zhixiangteoh Nov 5, 2020
cd9f57a
fix bug where entering just punctuation as answer can lead to 100.0 s…
exuberant-duck Nov 5, 2020
c024d68
add unit tests for getMatchPercentage
exuberant-duck Nov 5, 2020
45b5716
add functional and test code for extra restrictions on question and a…
exuberant-duck Nov 6, 2020
5115b3a
Merge pull request #171 from zhixiangteoh/master
LiewWS Nov 6, 2020
f477e18
implement pretty print for game mode output
LiewWS Nov 6, 2020
d0e4726
Implement log to file
LiewWS Nov 6, 2020
ebc1d6e
update .gitignore
LiewWS Nov 6, 2020
cad1c77
Merge pull request #172 from LiewWS/master
kaijiel24 Nov 6, 2020
593b3cc
cut PPP UG and DG extracts images
exuberant-duck Nov 6, 2020
3e334bf
Merge pull request #173 from zhixiangteoh/master
zhixiangteoh Nov 6, 2020
e8972e9
Add Original Color option for pptx
Nov 6, 2020
0dd6740
Merged with upstream
Nov 6, 2020
dff6791
Fixed logger merge issue in NormalParser and Ui
Nov 6, 2020
8ef1872
Add Default Color Scheme options to pptx
Nov 6, 2020
9d826f9
Update UG for pptx Color options
Nov 6, 2020
ed07128
Merged from master
Nov 6, 2020
a48f7da
Fixed length issue in help command
Nov 6, 2020
1bf1430
Merge pull request #175 from kaijiel24/master
LiewWS Nov 6, 2020
8953ed9
Fix index out of bounds error when -cs option is used
LiewWS Nov 6, 2020
35f6ee3
Merge pull request #176 from LiewWS/master
kaijiel24 Nov 6, 2020
b6496d7
Fixed help printing issue
Nov 6, 2020
369d50e
Fixed help printing issue
Nov 6, 2020
97ac72a
Add PPP for wangwaynesg
wangwaynesg Nov 6, 2020
323ec7f
Merge pull request #177 from kaijiel24/master
kaijiel24 Nov 6, 2020
ff535b6
fix broken links to commands in UG
LiewWS Nov 6, 2020
9043007
update FAQ section of UG
LiewWS Nov 6, 2020
18682ab
Merge pull request #180 from LiewWS/master
LiewWS Nov 6, 2020
f2a6430
Merge branch 'branch-wangwaynesgPPP' of https://github.com/wangwaynes…
wangwaynesg Nov 6, 2020
636b7bc
Add wangwaynesg PPP
wangwaynesg Nov 6, 2020
87c4b47
update PPP
LiewWS Nov 6, 2020
19d73cc
update documentation
LiewWS Nov 6, 2020
86485d1
Merge pull request #182 from LiewWS/master
LiewWS Nov 6, 2020
6e9c470
Merge pull request #181 from wangwaynesg/master
LiewWS Nov 6, 2020
f356d21
add DuplicateDeckException
alwaysnacy Nov 7, 2020
d49c93b
fix duplicate decks
alwaysnacy Nov 7, 2020
2d0707e
fix multiple /tags in CreateCommand
alwaysnacy Nov 7, 2020
d01ab9b
update Tag and Untag Command
alwaysnacy Nov 7, 2020
3fac370
fix checkstyles
alwaysnacy Nov 7, 2020
03525d5
Merge pull request #183 from alwaysnacy/Trang-fix-2.0
alwaysnacy Nov 7, 2020
b49f651
add tag to DecksCommnad output without pretty 1-liner
alwaysnacy Nov 7, 2020
2d04903
Merge pull request #184 from alwaysnacy/Trang-fix-2.0
alwaysnacy Nov 7, 2020
0126acb
clean codes
alwaysnacy Nov 7, 2020
56e6393
no message
alwaysnacy Nov 7, 2020
0426e84
Merge pull request #185 from alwaysnacy/Trang-fix-2.0
alwaysnacy Nov 7, 2020
e5976f7
Update kaijiel24 PPP
Nov 7, 2020
77f2ba3
Fix Storage bugs
wangwaynesg Nov 7, 2020
82ec912
Merge pull request #186 from wangwaynesg/master
wangwaynesg Nov 7, 2020
4dfe2d5
Fix Storage bugs where decks with no tags are not loaded
wangwaynesg Nov 7, 2020
35057d3
Fix Storage bugs where decks with no tags are not loaded and remove "…
wangwaynesg Nov 7, 2020
b2577d1
Fix List Command regarding incorrect "/ans" argument
wangwaynesg Nov 7, 2020
64f0f19
Fix minor Storage bug
wangwaynesg Nov 7, 2020
de874d5
Merge pull request #206 from wangwaynesg/master
wangwaynesg Nov 7, 2020
963257f
Update pptx Color Options
Nov 7, 2020
c67506e
Resolve merge conflict
Nov 7, 2020
870e394
Fix force y output and dash line to 80 char
Nov 7, 2020
dd6f819
Merge pull request #207 from kaijiel24/master
kaijiel24 Nov 7, 2020
c9bd172
fix FlashCard test case
LiewWS Nov 7, 2020
8234a7b
Merge pull request #209 from LiewWS/master
LiewWS Nov 7, 2020
0aa7fef
Update UG and DG
Nov 7, 2020
daf0e0b
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp
Nov 7, 2020
5a81bfc
Merge pull request #210 from kaijiel24/master
kaijiel24 Nov 7, 2020
5fa55de
update empty deck list message
LiewWS Nov 8, 2020
2241574
fix one-line add command
LiewWS Nov 8, 2020
5dba136
update help command
LiewWS Nov 8, 2020
75a439a
separate lines when updating flash card
LiewWS Nov 8, 2020
05e8402
update UG
LiewWS Nov 8, 2020
4acdb17
fixes #201
exuberant-duck Nov 8, 2020
07c02bf
update UG
LiewWS Nov 8, 2020
3fc304c
fixes #204
exuberant-duck Nov 8, 2020
894c0f8
fixes #212
exuberant-duck Nov 8, 2020
9360ad4
fixes #190
exuberant-duck Nov 8, 2020
c8c858a
fixes #203
exuberant-duck Nov 8, 2020
45c3c4f
fix checkstyle indentation
exuberant-duck Nov 8, 2020
393e921
Add Storage check for non-alphanumeric question and answer.
wangwaynesg Nov 8, 2020
3e22ed8
Fix minor checkstyle issue
wangwaynesg Nov 8, 2020
7551b7b
refine tag and untag
alwaysnacy Nov 8, 2020
aac644b
Merge pull request #213 from zhixiangteoh/master
zhixiangteoh Nov 8, 2020
4281b0e
Merge branch 'master' into master
zhixiangteoh Nov 8, 2020
ea83b98
Merge pull request #214 from wangwaynesg/master
LiewWS Nov 8, 2020
2c16f4b
Update UG and DG
LiewWS Nov 8, 2020
a396fe7
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
LiewWS Nov 8, 2020
57c745e
update help in deck mode inUG
LiewWS Nov 8, 2020
3854daa
furether refinement for tag and untag
alwaysnacy Nov 8, 2020
8c9db70
Merge pull request #215 from LiewWS/master
LiewWS Nov 8, 2020
0c95ae6
update UG
alwaysnacy Nov 8, 2020
a96741a
update from remote
alwaysnacy Nov 8, 2020
58375c2
Merge branch 'master' into Trang-v2.1
alwaysnacy Nov 8, 2020
be126c8
Merge branch 'master' into Trang-v2.1
alwaysnacy Nov 8, 2020
ea8b81c
fix checklists
alwaysnacy Nov 8, 2020
1974455
Merge branch 'Trang-v2.1' of https://github.com/alwaysnacy/tp into Tr…
alwaysnacy Nov 8, 2020
2609dda
no message
alwaysnacy Nov 8, 2020
b38b611
fix checkstyles
alwaysnacy Nov 8, 2020
c6cc79c
remove MulitpleLabelInputException
alwaysnacy Nov 8, 2020
86b578f
Merge pull request #216 from alwaysnacy/Trang-v2.1
alwaysnacy Nov 8, 2020
6ad8435
add deque to glossary
exuberant-duck Nov 8, 2020
6f6f764
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp
exuberant-duck Nov 8, 2020
bbcc5a5
Merge pull request #217 from zhixiangteoh/master
zhixiangteoh Nov 8, 2020
ef7dafc
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp
exuberant-duck Nov 8, 2020
5479c25
update DG manual testing instr. with game mode
exuberant-duck Nov 8, 2020
20a0905
fix double spaces
alwaysnacy Nov 8, 2020
50ba7d0
Merge pull request #221 from alwaysnacy/master
alwaysnacy Nov 8, 2020
c050ed4
Merge pull request #220 from zhixiangteoh/master
alwaysnacy Nov 8, 2020
58556c5
update UG
alwaysnacy Nov 8, 2020
520795f
Clean codes
alwaysnacy Nov 8, 2020
1b123da
Update pptx DG, glossary, manual test, and JUnit Test
Nov 8, 2020
a1cab89
Fixed DG merge conflict
Nov 8, 2020
04934e6
Update UG with information regarding editing the save data file
wangwaynesg Nov 8, 2020
8f10b02
Merge pull request #223 from wangwaynesg/master
wangwaynesg Nov 8, 2020
93bd109
Fix minor UG issue where missing one link
wangwaynesg Nov 8, 2020
feae39c
Merge pull request #224 from wangwaynesg/master
wangwaynesg Nov 8, 2020
106fdbd
fix tagcommand
alwaysnacy Nov 8, 2020
48a5549
add Parser diagram
alwaysnacy Nov 8, 2020
25d6cb5
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
alwaysnacy Nov 8, 2020
95149db
fix broken link to About US
LiewWS Nov 9, 2020
8bae893
fix broken link to storage FAQ in UG
LiewWS Nov 9, 2020
8671a2f
update version number in case we forget later
LiewWS Nov 9, 2020
b423af5
update ppp name to format required
LiewWS Nov 9, 2020
861f6b7
Rename LiewWS.md to liewws.md
LiewWS Nov 9, 2020
c72ea5b
Fix image size
wangwaynesg Nov 9, 2020
2d70802
Merge pull request #228 from wangwaynesg/master
wangwaynesg Nov 9, 2020
fc760b6
clarify requirements of adding question and answer in UG
LiewWS Nov 9, 2020
48c6cf0
Block user from entering non-alphanumeric qn and ans in update
LiewWS Nov 9, 2020
897f863
update UserGuide to be specific about updating question and answers t…
LiewWS Nov 9, 2020
71cf17b
Fixed typos in DG
Nov 9, 2020
b1a8402
Update Storage format read and write
wangwaynesg Nov 9, 2020
60c3ef0
Update UG to match changes in Storage format
wangwaynesg Nov 9, 2020
7c66fd7
Merge pull request #229 from wangwaynesg/master
wangwaynesg Nov 9, 2020
dc3b3b3
Update picture size to fit within 100px
Nov 9, 2020
3370912
Update PPP
Nov 9, 2020
c564821
Merge pull request #222 from kaijiel24/master
kaijiel24 Nov 9, 2020
e85f5b3
update profile picture
LiewWS Nov 9, 2020
6d2faa2
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
LiewWS Nov 9, 2020
1964914
update about us to include profile pic
LiewWS Nov 9, 2020
0e89e13
Updated PPP and DG
Nov 9, 2020
83d2322
Merge pull request #230 from kaijiel24/master
kaijiel24 Nov 9, 2020
a400f45
Merge pull request #227 from LiewWS/master
kaijiel24 Nov 9, 2020
2bb16fc
Update PPP
Nov 9, 2020
ac964bb
Merge pull request #231 from kaijiel24/master
kaijiel24 Nov 9, 2020
14b1a76
Update PPP
Nov 9, 2020
9745d2b
Merge pull request #232 from kaijiel24/master
kaijiel24 Nov 9, 2020
36805c1
update DG and UG
alwaysnacy Nov 9, 2020
d4597a1
Add files via upload
alwaysnacy Nov 9, 2020
5cf44fa
update PPP link
exuberant-duck Nov 9, 2020
d6ab7dc
update UG, DG and PPP
alwaysnacy Nov 9, 2020
db8e7bc
Merge pull request #233 from zhixiangteoh/master
zhixiangteoh Nov 9, 2020
a3b03f5
Merge branch 'alwaysnacy-Trang-addTests' into master
alwaysnacy Nov 9, 2020
b388f89
no message
alwaysnacy Nov 9, 2020
a28ab1c
update toc dg ug
exuberant-duck Nov 9, 2020
dcca2af
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp …
alwaysnacy Nov 9, 2020
c57d351
Merge pull request #235 from zhixiangteoh/master
zhixiangteoh Nov 9, 2020
278c563
no message
alwaysnacy Nov 9, 2020
8e29b7d
Merge pull request #236 from alwaysnacy/master
alwaysnacy Nov 9, 2020
ee764af
Fixed bugs for pptx in deck mode and updated UG and DG
Nov 9, 2020
6974215
Fixed bugs for pptx in deck mode and updated UG and DG
Nov 9, 2020
14334c2
Update DG Storage sequence diagram to have transparent background
wangwaynesg Nov 9, 2020
84a79d5
Merge pull request #239 from kaijiel24/master
kaijiel24 Nov 9, 2020
ca79bb9
Merge pull request #240 from wangwaynesg/master
wangwaynesg Nov 9, 2020
ed8a42a
Update DG diagram
Nov 9, 2020
41bccf5
Merge pull request #241 from kaijiel24/master
kaijiel24 Nov 9, 2020
01b27ef
fix white bg images
LiewWS Nov 9, 2020
23b3f01
Merge pull request #242 from LiewWS/master
LiewWS Nov 9, 2020
0e60f53
fixes #237
exuberant-duck Nov 9, 2020
23185be
Merge branch 'master' of https://github.com/AY2021S1-CS2113-T14-2/tp
exuberant-duck Nov 9, 2020
c42be13
update UG setup instructions
exuberant-duck Nov 9, 2020
2641cd3
Merge pull request #243 from zhixiangteoh/master
zhixiangteoh Nov 9, 2020
d2f258b
Add files via upload
alwaysnacy Nov 9, 2020
bafa094
Add files via upload
alwaysnacy Nov 9, 2020
4e65518
Delete alwaysnacy.png
alwaysnacy Nov 9, 2020
3e4ae0f
Add files via upload
alwaysnacy Nov 9, 2020
b6f37a3
Delete alwaysnacy.png
alwaysnacy Nov 9, 2020
c8ad9df
Add files via upload
alwaysnacy Nov 9, 2020
2fe00cc
Delete alwaysnacy.png
alwaysnacy Nov 9, 2020
e76fc64
Add files via upload
alwaysnacy Nov 9, 2020
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
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ src/main/resources/docs/
*.iml
bin/

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
ACTUAL.TXT
data/deckList.txt
10 changes: 8 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,12 @@ repositories {
dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.0'

compile group: 'org.apache.poi', name: 'poi', version: '4.1.2'
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '4.1.2'
}


test {
useJUnitPlatform()

Expand All @@ -29,11 +33,11 @@ test {
}

application {
mainClassName = "seedu.duke.Duke"
mainClassName = "seedu.ecardnomics.Main"
}

shadowJar {
archiveBaseName = "duke"
archiveBaseName = "ecardnomics"
archiveClassifier = null
}

Expand All @@ -43,4 +47,6 @@ checkstyle {

run{
standardInput = System.in
enableAssertions = true

}
43 changes: 43 additions & 0 deletions data/deckList.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
deck | 0
name | Micro-Economics
tags | Economics | EC1301
size | 5
Q | What is the Law of demand?
A | When the price of a good rises, the quantity of the good demanded will fall, ceteris paribus.
Q | What is the Law of supply?
A | When the price of a good increases, the quantity supplied increases, ceteris paribus.
Q | What is price elasticity of demand?
A | Percentage change in quantity demanded caused by a 1 percent change in price.
Q | What is price elasticity of supply?
A | Percentage change in quantity supplied caused by a 1 percent change in price.
Q | What is Market Failure?
A | Market failure is the economic situation defined by an inefficient distribution of goods and services in the free market.
================================================================================
deck | 1
name | Macro-Economics
tags | Economics | EC1301
size | 6
Q | What are ways GDP can be calculated?
A | Three ways: Expenditure approach, Value-addedd approach and Factor payments approach.
Q | What is the GDP formula using the Expenditure approach?
A | GDP = C + I + G + NX
Q | Define frictional unemployment.
A | Unemployment related to time taken for people to find new jobs.
Q | Define seasonal unemployment.
A | Unemployment related to changes in weather, tourist patterns, or other seasonal factors.
Q | Define structural unemployment.
A | Unemployment related to skill mismatch between workers' skills and employers' requirements.
Q | Define cyclical unemployment.
A | Unemployment arising from changes in production over the business cycle.
================================================================================
deck | 2
name | Object-oriented Programming
tags | Computer Science | CS2113
size | 3
Q | What are the programming paradigms based on OODP?
A | Abstraction, Polymorphism, Inheritence, Encapsulation
Q | What are access modifiers?
A | Access level modifiers determine whether other classes can use a particular field or invoke a particular method.
Q | How do you represent for and while loops in a sequence diagram?
A | Using the "loop" notation.
================================================================================
10 changes: 5 additions & 5 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

Display | Name | Github Profile | Portfolio
--------|:----:|:--------------:|:---------:
![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Liew Wei Siew | [Github](https://github.com/LiewWS) | [Portfolio](docs/team/johndoe.md)
![](https://drive.google.com/file/d/1fQ9JzgtHyf3kMaUv22z2-oRKUuYSsPse/view?usp=sharing) | Zhixiang Teoh | [Github](https://github.com/zhixiangteoh) | [Portfolio](docs/team/zhixiangteoh.md)
![](https://via.placeholder.com/100.png?text=Photo) | Trang | [Github](https://github.com/alwaysnacy/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Kai Jie | [Github](https://github.com/kaijiel24) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Wang Wayne | [Github](https://github.com/wangwaynesg/) | [Portfolio](docs/team/johndoe.md)
266 changes: 259 additions & 7 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,277 @@
# Developer Guide

## Design & implementation
## Design

{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
### Application Architecture
![Architecture](images-dg/Architecture.png)

The **Architecture Diagram** given above explains the high-level design of the Flash Card Manager Application.

`Main` is responsible for initializing the other components in the program and linking them up correctly.

* `Ui` Takes in instructions from user and displays the output to the user
* `Logic` Consists of the `Parsers` and the `Commands`. The `Parser` decipher the user input and executes the specific `Command` that affects the change the user wishes.
* `Model` Holds the data that is in memory as the program runs. It consists of the 3 components:
* `Flash Card` : A single question and answer pair.
* `Deck` : A list of `Flash Card`s under a common topic.
* `Deck List` : A complete list of all the `Deck`s in memory.
* `Storage` Reads and writes data from and to a text file.

#### How to **components** interact with one another

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This part is a bit confusing? Perhaps you can elaborate more?

image

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

![Sequence Diagram](images-dg/Sequence%20Diagram.png)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can consider resizing your diagram such that the text size in the diagram matches the the text size of the main text of the diagram.

image

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be a dotted arrow?

image

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

I believe that you should add a cross at the end of the life for the NormalCommand object. Furthermore, I believe from your logic class diagram below, you state that the parser is the one that creates the Command object. I take this to mean you instantiate a new Command object. In this case, you should point the arrow of execute to the constructor of the NormalCommand object.

This is found in your later diagrams.
image

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this part necessary? It is neither a method call nor a return value.
image

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi maybe a short explanation can be given to help readers understand your sequence diagram better?

The **Sequence Diagram** above shows how the components interact for a basic `create <deck name>` command where a new deck is created and added in to the `Deck List`.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
I believe the return arrow should be a dotted line

The arrows coming into the UI class shouldnt be into or from the middle of the box, should be from the top or bottom of the box

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


### User Interface

**API**: [seedu/ecardnomics/Ui.java](https://github.com/AY2021S1-CS2113-T14-2/tp/tree/master/src/main/java/seedu/ecardnomics/Ui.java)

The UI contains String constants that represent the outputs
that the application is defined to produce.

The `UI` component has two main purposes:
* Reading user input from the console.
* Printing program output to the console.

Reading of user input is done using the method `readUserInput()`
which reads one line of user input. The other methods within `UI` are
called when a specific output needs to be printed.

The `UI` component passes the user input to the `NormalParser` and
`DeckParser` components that will extract the relevant information.
The `UI` component provides its printing methods to `NormalParser`
and `DeckParser` for printing the appropriate output when required.

### Logic
#### Overall Logic
![DG-Overall Logic UML](./images-dg/Logic-DG.png?raw=true "Overall Logic Diagram")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Unclear whether you are indicating they are all interactions or are some of them supposed to indicate inheritence?

Use triangle and arrows to differentiate between them.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should these arrows be triangular if you are trying to symbolize inheritance?
image

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this part be triangular arrow if you means inheritance?
image


1. The overall logic component consists of the Parser class and Command class.
2. The Parser parses the user input and creates the respective Command object.
3. This command will be executed by the Main class.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You might have missed out bolding the classes here

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As the names of the classes are in-line code, should there be back-ticks around them?
e.g. Parser class

4. The command execution then can affect the Model (e.g. creating a new deck)

#### Commands

![DG-Design Commands UML](./images-dg/DG-Design-Commands.png?raw=true "Commands UML Class Diagram")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you would like to break this diagram into two parts, so that it is less complicated?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed, thanks!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Triangles, not arrows, should be used to indicate inheritance of abstract classes

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zhixianteoh

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed, thanks!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Hi as all the arrow head are the same, the relationship between Nomral and Deck parser is confusing. Is it inheritance too?


**API**: [seedu.ecardnomics/command](https://github.com/AY2021S1-CS2113-T14-2/tp/tree/master/src/main/java/seedu
/ecardnomics/command)

Commands are primarily classified into three categories, `NormalCommand`, `DeckCommand`, and `GameCommand`,
corresponding to the application's Normal, Deck, and Game Modes, respectively. All three are abstract children
derived from the overarching abstract class `Command`. The basis `Command` class is defined as such:

```java
public abstract class Command {
public abstract void execute();
}
```

It only requires that all derived children implement the `execute()` method. The only two classes not belonging to
individual modes are `ExitCommand` and `VoidCommand`. The former is so that users can call the command `exit` from
anywhere in the application, while the latter is a catch-all "command" for all erroneous commands a user enters.

The `Parser` classes play important roles in execution of specific commands, e.g. `CreateCommand`, because
they define methods that check and ensure the conformity of user input to the commands' expected input. Below is a
sequence diagram showcasing this interaction, for execution of a `CreateCommand`, e.g. `create
microeconomics`:

![DG-Design CreateCommand Sequence UML](./images-dg/DG-Design-Sequence-Diagram.png?raw=true "CreateCommand UML

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can consider terminating CreateCommand

image

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Won't terminate CreateCommand here because this just shows the creation of CreateCommand, returning createCommand object whose sole purpose of life is to have its execute() method called, but in this sequence diagram that is essentially a snippet of the lifeline of createCommand I cannot also include its interactions with Main class because that's out of scope here; the point is that createCommand does exist for the whole duration shown here.

Although, I should include some textual description of the gist of what I am conveying here, thanks!

Sequence Diagram")

### Deck Model

![DG-Design Model UML](./images-dg/DG-Design-Model.png?raw=true "Model UML Class Diagram")

**API**: [seedu/ecardnomics/deck](https://github.com/AY2021S1-CS2113-T14-2/tp/tree/master/src/main/java/seedu/ecardnomics/deck)

The Deck Model component is made up of three parts:
* `DeckList`
* `Deck`
* `FlashCard`

The `FlashCard` component represents a flashcard, storing question
and answer data. The `Deck` represents a collection of flashcards
related by a common topic. The `DeckList` represents the collection
of all the `Deck` objects that the user has.

Only the `Command` components can modify the `DeckList`, `Deck` and
`FlashCard` components. However, `Ui`, `DeckParser` and `NormalParser`
are able to read data from the `DeckList`, `Deck` and `FlashCard`
components.

### Storage

#### Loading the deckList data

![Storage Sequence Diagram](./images-dg/Storage.png?raw=true "load Storage sequence diagram")

**API**: [seedu/ecardnomics/storage](https://github.com/AY2021S1-CS2113-T14-2/tp/blob/master/src/main/java/seedu/ecardnomics/storage)

Storage of this application uses basic `.txt` read and write functions.
Upon start of the program, the application checks whether there is a `./data` folder and creates one is there isn't.
Then, it reads from the storage file `deckList.txt` line by line to create:
* new `Deck`
* new `FlashCard`

and adds them to the current `deckList` passed into the `load` method call.

#### Writing the deckList data

Similarly, for writing the data into `.txt` file, the Storage will loop through all the current `Decks` and their
current `FlashCards` and write them in a specific format in the text file in the `./data` folder.

## Implementation - Features

### Print to PowerPoint SlideShow

An additional feature targeted at students who wish to use add more style to their flash cards outside of the command
line option to allow keep things interesting when they are revising.

The `PowerPointCommand` is parsed by `NormalParser` but the "Print to PowerPoint" command can be called from both Normal

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should there be a return to PowerpointCommand after Powerpoint is created in the sequence diagram?

I believe that the box to contain the "opt" is wrong, you may refer to the notes again, it should be a sharp box with a chip of the corner.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and Deck Mode.

The following diagram shows how the `PowerPointCommand`'s `execute()` calls the `createNewPowerPoint()` method of `PowerPoint`.
![PPTX Sequence Diagram](images-dg/DG-PPTX-Sequence-Diagram.png)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you missing the return arrows?

image

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you want to have return arrows for these method calls just to be consistent with other diagrams on the DG?
image


The `newIntroSlide()`, `newSlide()` and `exportSlide()` method of `PowerPoint` uses a third party library - Apache POI
to create new slides, populate them with the questions and answers from the deck and finally print them out to a new PowerPoint
file in the `pptx` folder under the name `<deck name>.pptx`.

The following are the Classes/ Enum of the third part package `org.apache.poi.xslf.usermodel` which are used:
* `SlideLayout` - Enum representing the Slide Layouts available
* `XMLSlideShow` - Class representing an entire Slide Show
* `XSLFSlide` - Class representing a single Slide
* `XSLFSlideLayout` - Class representing the layout of a slide
* `XSLFSlideMaster` - Class representing the default slides layouts
* `XSLFTextShape` - Class representing a shape within a slide
* `XSLFTextParagraph` - Class representing a paragraph of text within a shape
* `XSLFTextRun` - Class representing the properties of the text within a paragraph

### Pretty Printing (Wei Siew)

The purpose of this feature is to improve the readability of the
question and answer fields of a flashcard for the user. Without this
feature, long question and answer fields will follow the default
wrapping style of the console. When words are truncated unnecessarily,
it is going to be distracting and annoying for students trying to
study. We illustrate the problem in the following example:
```
This is a long question (or maybe answer) field. Suppose tha
t our console is 60 characters wide, we see that the word "t
hat" was truncated in the first line and again in the second
line.
```
In this section, we define the following terms:
* `lineLength` is the maximum number of characters on a line,
set to be equal to Ui.DASH_LINES.length(). This is also the number of
characters between the start of line and end of line.
* `label` can be "Question: " or "Answer: " and is used to indicate
whether a field is the question or answer of the flashcard.
* `usableLength` is the number of characters that can be used for
printing a field. This is also the number of characters between the end
of `label` and end of line.

The following sequence diagram illustrates the call to the
`toString(boolean isQuestion, int offset)` method of a `FlashCard`
object.

![DG-Implementation-Features-PP-Sequence](./images-dg/PP-Sequence.png?raw=true)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you labelling correct? Perhaps it should be toString(isQuestion, offset) and formatResponse(isQuestion, offset)

image

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


The `offset` parameter specifies the number of characters already
printed on the line before the flashcard field will be printed.
The `offset` is used by the `formatResponse()` method to determine
`usableLength`.

`formatResponse()` places as many words as possible on each line until
the next word does not fit within the `usableLength` of the current
line. This word is therefore placed on the next line and the process
repeats until all the words have been formatted into the response. If
the length of a single word exceeds the `usableLength`, the word is
split across multiple lines to prevent the program from looping
infinitely as it would never be able to fit the word on any line.

Take note that infinite loops can still occur if
* formatResponse() is called with offset >= `lineLength` or
* toString(boolean, int) is called with offset >= `lineLength` - length
of `label`

#### Design Consideration:

In order to maximize `usableLength`,
`toString(boolean isQuestion, int offset)` is designed to take
parameter `offset` instead of hardcoding `offset` to be
`"2147483647. ".length()` which is the maximum possible index when
listing flashcards. As a result, flashcards with different number of
digits in the index will be misaligned when listing flashcards.

### Tags for grouping and searching decks
The purpose of this feature is to provide a mean to group the decks based on their subjects
and search for relevant decks related to one or more relevant subjects in a robust way. Each created deck will
tagged to their respective field.

![DG-Implementation-Features-TagArchitecture](./images-dg/TagFeature-UML.png?raw=true)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
minor issue but the overlapping arrows here make it seems a bit confusing. can be nicer


The user can also modify to tags of the decks by using tag or untag command, and uses search by tag to find
a group of decks he/she is interested in.

![DG-Implementation-Features-TagSequence](./images-dg/Tag.png?raw=true)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Should there be a return arrow? Prof said that it is optional if a void function is called

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you missing a return arrow here?

image

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A minor comment: For the sequence diagram below, would it be better if Main class is put on the left-most side? Because I misunderstood it first.
image

I believe the idea we were trying to convey is that the user does not interact directly with the Main class, but directly with the Ui class instead via the Ui's readUserInput() method.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

I believe that you can terminate the Ui class after printing the required statement

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Random arrow that is not common notation.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


### Saving to text file (Wayne)

### Game Mode

eCardnomics' quintessential mode. Game Mode can be started from either Normal Mode or Deck Mode. The `start` command
is parsed by `NormalParser` (see [Commands](#commands)).

Game Mode contains two main components: a storage component, `GameStorage`, and a logic component, `GameEngine`. The
former handles all data structures used by Game Mode, and stores the original deck (`originalDeck`), question pool
(`deque`), and retest question pool (`retestStore`). The latter executes the main game loop (`runGameLoop()`), and
interacts with `GameStorage` on package-private basis; i.e., `GameEngine` and `GameStorage` have full mutual
access as if they were a single class. This is one of the main intentional design decisions.

![DG-Implementation-Features-Game-Mode-Architecture](./images-dg/Game-Mode-Design.png?raw=true "Game Mode

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you would like to split up this digram into two parts, so that it is less complicated?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed, thanks!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Is the GameStartCommand object still kept in reference? Will it still be used later? It is not indicated in the sequence diagram and an X can be added.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is actually not! Good catch! Changed, thanks!

Architecture Diagram")

**See also**: [Gameplay description](./UserGuide.md#gameplay)

The actual "game" aspect of eCardnomics is essentially summarised in the `runGameLoop()` high-level overview above
. For a textual gameplay description, check out the "See also" link.

The following elaborates the execution flow of Game Mode, from after a `start` command has been parsed in Normal Mode:

![DG-Implementation-Features-Game-Mode-Sequence](./images-dg/Game-Mode-Sequence.png?raw=true "Game Mode UML Sequence

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it would be better to simplify this diagram/ split them up into smaller parts, so that it would be easier to follow?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed with reference frames, thanks!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some return arrows are missing

image

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the input! Return arrows are not mandatory, so this was intentional.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi is objects like game:Game still kept in reference and used at the end? Can object deletion be used?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Diagram")

**API**: [seedu/ecardnomics/game](https://github.com/AY2021S1-CS2113-T14-2/tp/tree/master/src/main/java/seedu/ecardnomics/game)

## Product scope

### Target user profile

{Describe the target user profile}
Junior College Economics Students.

Anybody > Students > Students in courses with high amount of content > Economics students > **Junior College
Economics students** (focus on theory than calculations)

### Value proposition

{Describe the value proposition: what problem does it solve?}
Flashcard application that allows students to quickly create new flashcards and access flashcards quickly on the
command line to enhance their studying experience, and ultimately be an aid for [active recall](https://getatomi.com/blog/what-is-active-recall-and-how-effective-is-it).

## User Stories

|Version| As a ... | I want to ... | So that I can ...|
|Version| As a(n) ... | I want to ... | So that I can ...|
|--------|----------|---------------|------------------|
|v1.0|new user|see usage instructions|refer to them when I forget how to use the application|
|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list|
|v1.0|poor student|have small computer programs|run it on my old computer|
|v1.0|fast typist|have an easily-navigable interface to type up notes and store them|create and manage notes quickly and efficiently|
|v1.0|smart student|be able to use the system effectively and efficiently|save time and maximise my productivity|
|v1.0|JC econs student|quickly create short notes of key concepts|keep up during lectures and tutorials|
|v1.0|tech-savvy student|have a software tool to store my notes|stop needing to worry about losing my hardcopy notes|
|v1.0|lazy student|create flashcards to keep my notes concise|learn at a comfortable, incrementing pace|
|v2.0|organised student|have my notes be stored in a systematic way|retrieve them quickly and easily|
|v2.0|student|have a system that can categorise material into different topics|quickly revise all the content for a topic when studying for an exam|
|v2.0|hardworking student|have a studying system that can help me memorise content in a non-traditional manner|remember all the facts during an exam through active recall|

## Non-Functional Requirements

Expand Down
5 changes: 3 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Duke
# eCardnomics

{Give product intro here}
eCardnomics is a **desktop flashcard application to quickly create, manage, and access new flashcards via a Command
Line Interface (CLI)**.

Useful links:
* [User Guide](UserGuide.md)
Expand Down
Loading