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-1] TheGreatDetective #41

Open
wants to merge 659 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
659 commits
Select commit Hold shift + click to select a range
d0f10a6
Merge pull request #131 from arcturusz/narrative-lines-command
serenakemono Oct 29, 2021
10f8a0d
Merge pull request #132 from arcturusz/ending-scenes
serenakemono Oct 29, 2021
6971bd7
Update both ending narratives
serenakemono Oct 30, 2021
31b84b4
add InvalidNote exception & easier way to select option
peng-217 Oct 30, 2021
96fba55
Merge branch 'master' of https://github.com/AY2122S1-CS2113-T14-1/tp …
peng-217 Oct 30, 2021
4f3cc38
Update some instructions and ending
serenakemono Oct 30, 2021
0028d96
Add note search exception and note command exception, simplfy the use…
peng-217 Oct 30, 2021
b05cc6b
Fix code syntax
peng-217 Oct 30, 2021
8bc6024
Syntax fix
peng-217 Oct 30, 2021
a3c4eca
Update investigation to fix bug
MaifengNg Oct 30, 2021
a320a2a
Merge pull request #134 from WU-LUOYU-SERENA/branch-v2.1-ending-fix
asdzxc270697 Oct 30, 2021
75f1489
Merge remote-tracking branch 'origin' into update_investigation
MaifengNg Oct 30, 2021
c512ba2
Combined exceptions
peng-217 Oct 30, 2021
39000a8
Syntax fix
peng-217 Oct 30, 2021
09916f5
Update investigation
MaifengNg Oct 30, 2021
2a91932
Fix checkstyle not working
MaifengNg Oct 30, 2021
73b9c17
Update fix intro scene bug
MaifengNg Oct 30, 2021
6e069a3
Add try-catch for getSuspectNameFromIndex
MaifengNg Oct 30, 2021
08bbea6
Merge pull request #136 from MaifengNg/update_investigation
asdzxc270697 Oct 30, 2021
9166a31
Remove unused methods
peng-217 Oct 30, 2021
70050c5
Merge pull request #135 from peng-217/branch_note_newest
asdzxc270697 Oct 30, 2021
2eb8e6d
Add more scenario for note process to print error message and allow u…
peng-217 Oct 31, 2021
731211a
Syntax fix
peng-217 Oct 31, 2021
ccf3d52
minor change
peng-217 Oct 31, 2021
e7528df
Merge pull request #212 from peng-217/branch_note_newest
Herrekt Oct 31, 2021
2dffce9
Dynamic note
Herrekt Oct 31, 2021
aa2f8f2
Making /note take in more arguments while including latest PR
Herrekt Oct 31, 2021
d068d49
Refactoring SuspectListBuilder
Herrekt Oct 31, 2021
8cc9794
Merge pull request #215 from Herrekt/SuspectListBuilder
asdzxc270697 Oct 31, 2021
50382b0
Improve SLAP on narrative class
asdzxc270697 Oct 31, 2021
3506348
Add javadocs
asdzxc270697 Oct 31, 2021
951f6a1
Add punctuation to javadocs
asdzxc270697 Oct 31, 2021
ca703fb
Add javadocs
asdzxc270697 Oct 31, 2021
965979d
Add missing puncutations
asdzxc270697 Oct 31, 2021
c1b04e7
Add more javadocs for narrative class
asdzxc270697 Oct 31, 2021
8b2c440
Add javadocs for SceneList and SceneListBuilder class
asdzxc270697 Oct 31, 2021
12d8e4d
Minor changes
asdzxc270697 Oct 31, 2021
e9ab3fc
Update fix code quality'
MaifengNg Oct 31, 2021
e6b15da
Add fix input errors for guess killer scene
MaifengNg Oct 31, 2021
db941de
Merge pull request #214 from arcturusz/code-quality
serenakemono Nov 1, 2021
0cc6dd8
Merge branch 'master' into correctbranch
Herrekt Nov 1, 2021
4e14bee
Update based on review comments
Herrekt Nov 1, 2021
5a9d17b
checkstyle changes
Herrekt Nov 1, 2021
77e4db5
fixed if else condition for startswith
Herrekt Nov 1, 2021
b833f9b
Merge pull request #213 from Herrekt/correctbranch
peng-217 Nov 1, 2021
56c6f49
Update bug where code breaks when giving large number such as 9999999…
MaifengNg Nov 1, 2021
03c5da1
Merge branch 'master' into update_mf_code_quality
MaifengNg Nov 1, 2021
40cd557
Update remove unneeded code
MaifengNg Nov 1, 2021
1380222
Merge branch 'update_mf_code_quality' of https://github.com/MaifengNg…
MaifengNg Nov 1, 2021
f02518d
Merge pull request #216 from MaifengNg/update_mf_code_quality
asdzxc270697 Nov 1, 2021
13a5697
Update fix /back command. During investigation scene ie selecting clu…
MaifengNg Nov 1, 2021
940d874
Improve code quality according to Stephanie's comments
serenakemono Nov 1, 2021
9ef7025
Improve introduction, content page and FAQ for UG
serenakemono Nov 1, 2021
0b2cf3b
Merge pull request #217 from MaifengNg/update_back_command
asdzxc270697 Nov 1, 2021
06956b0
Merge pull request #219 from WU-LUOYU-SERENA/branch-improve-UG-v2.1
asdzxc270697 Nov 2, 2021
61f22cd
Improve Javadoc code quality
serenakemono Nov 2, 2021
f8a01fc
Update Javadoc
serenakemono Nov 2, 2021
ccf0e20
Merge branch 'master' into branch-improve-code-quality
serenakemono Nov 2, 2021
2b6be1e
Merge pull request #218 from WU-LUOYU-SERENA/branch-improve-code-quality
asdzxc270697 Nov 2, 2021
f29b6ea
Update fix /back command bug + add javadocs
MaifengNg Nov 2, 2021
67a791d
Update UG
MaifengNg Nov 2, 2021
6b70656
update javadocs
MaifengNg Nov 2, 2021
139a82d
Update UG again
MaifengNg Nov 2, 2021
c644523
Javadocs for certain class creation that differs from the rest, and s…
Herrekt Nov 2, 2021
ffa5ad8
Use minimal notation for overall sequence diagram
serenakemono Nov 3, 2021
75864c4
Update sequence diagram for command class
serenakemono Nov 3, 2021
bcca69e
Update command class diagram and description
serenakemono Nov 3, 2021
28843ca
Add output messages specific to no searched clues found.
serenakemono Nov 3, 2021
368cb0e
Make view command insensitive to letter casing of user input
serenakemono Nov 3, 2021
eb5886a
Fix checkstyle errors
serenakemono Nov 3, 2021
9a945b9
Removed extra line in params for NoteCommand
Herrekt Nov 3, 2021
7708ead
Merge pull request #223 from WU-LUOYU-SERENA/branch-improve-view-command
asdzxc270697 Nov 3, 2021
e494afa
Grammar fixing
Herrekt Nov 3, 2021
ddb1d01
Merge pull request #222 from WU-LUOYU-SERENA/branch-improve-DG-Stephs…
asdzxc270697 Nov 3, 2021
9a11a18
Merge pull request #221 from Herrekt/javadocs
asdzxc270697 Nov 3, 2021
43c4bde
Update DG and narratives
serenakemono Nov 3, 2021
9a5376a
Update fix javadcos
MaifengNg Nov 3, 2021
08ae9fe
Merge pull request #225 from WU-LUOYU-SERENA/branch-change-narrative
asdzxc270697 Nov 3, 2021
41f3eec
Implement Encryption
ShaoYurui Nov 4, 2021
28b8f4c
Check Style
ShaoYurui Nov 4, 2021
4bf64ef
Check Style
ShaoYurui Nov 4, 2021
b10e82f
Fix CI test
ShaoYurui Nov 4, 2021
35232e6
Fix CI test
ShaoYurui Nov 4, 2021
adce1a7
Fixed Ui for invalid suspect and clue
Herrekt Nov 4, 2021
0592023
Ui changes
Herrekt Nov 4, 2021
52a0818
Ui changes again
Herrekt Nov 4, 2021
3b0e4dd
Fixed suspectListBuilder sequence diagram
Herrekt Nov 4, 2021
8f84cb5
Created constructors for Scene and Suspect puml
Herrekt Nov 4, 2021
3f26f51
checkstyle fix
Herrekt Nov 4, 2021
07fe4df
Merge branch 'AY2122S1-CS2113-T14-1:master' into master
MaifengNg Nov 4, 2021
b3e65fb
Update javadcos
MaifengNg Nov 4, 2021
7a30eb7
Merge branch 'master' of https://github.com/MaifengNg/tp
MaifengNg Nov 4, 2021
399557c
Fix error with javadcos
MaifengNg Nov 4, 2021
373e6f8
Fix error with javadcos
MaifengNg Nov 4, 2021
101a6d8
Update DG
MaifengNg Nov 4, 2021
49f97aa
Update change magic number in InvestigateCommand
MaifengNg Nov 4, 2021
f3265a5
Update fix checkStyle failing
MaifengNg Nov 4, 2021
ba54967
PPP features
Herrekt Nov 4, 2021
4a321c5
Merge pull request #220 from MaifengNg/master
asdzxc270697 Nov 4, 2021
fc6d712
Merge pull request #229 from MaifengNg/fix_dg
asdzxc270697 Nov 4, 2021
a7d5b68
Merge pull request #228 from Herrekt/UIFix
asdzxc270697 Nov 4, 2021
80f664a
Merge branch 'master' into master
ShaoYurui Nov 4, 2021
1a6595a
Update BackCommand.java
ShaoYurui Nov 4, 2021
7acf993
Update SceneList.java
ShaoYurui Nov 4, 2021
56f22a2
Update SceneList.java
ShaoYurui Nov 4, 2021
c06885b
Merge pull request #227 from ShaoYurui/master
asdzxc270697 Nov 4, 2021
1bcb813
Update add ppp for maifeng
MaifengNg Nov 4, 2021
d16b873
Merge pull request #230 from MaifengNg/mf_ppp
asdzxc270697 Nov 4, 2021
e306da3
Update mf ppp v2
MaifengNg Nov 5, 2021
1d475ba
Update UG
MaifengNg Nov 5, 2021
053a6a0
FIxed note-related issues
peng-217 Nov 5, 2021
07d0525
Removing unused lines
peng-217 Nov 5, 2021
a4306c6
Merge pull request #232 from MaifengNg/update_ppp_mf_2
asdzxc270697 Nov 5, 2021
d07d493
code syntax fix
peng-217 Nov 5, 2021
9ce48cd
syntax fixed
peng-217 Nov 5, 2021
9a35538
Update changed ppp name to lower case
MaifengNg Nov 5, 2021
15f2de4
Merge pull request #234 from MaifengNg/update_ppp
asdzxc270697 Nov 5, 2021
4987676
Merge pull request #233 from peng-217/Branch_note_issue_fixing
asdzxc270697 Nov 5, 2021
ddee507
Fix some javadocs formatting
asdzxc270697 Nov 5, 2021
48f8298
Add investigation class diagram and update sequence diagram
asdzxc270697 Nov 5, 2021
4d4e9e2
Update UG and DG
asdzxc270697 Nov 5, 2021
050b238
Merge branch 'master' of https://github.com/AY2122S1-CS2113-T14-1/tp
ShaoYurui Nov 6, 2021
29b1c4c
Merge pull request #235 from arcturusz/developer-guide
serenakemono Nov 6, 2021
af2cd37
update DG
serenakemono Nov 6, 2021
447efe8
Add priorities description
serenakemono Nov 6, 2021
c4d0d96
Merge pull request #236 from WU-LUOYU-SERENA/branch-update-DG-v2.1
asdzxc270697 Nov 6, 2021
696f8c2
Rename Storage to GameNoteFileManager, implment encryption to notes
ShaoYurui Nov 6, 2021
040f6f1
Fix CI
ShaoYurui Nov 6, 2021
b08c0c7
fix check style
ShaoYurui Nov 6, 2021
f7cb9a1
Check Style
ShaoYurui Nov 6, 2021
4a28390
First implementation of PPP
peng-217 Nov 6, 2021
2b3cd17
Merge branch 'master' of https://github.com/AY2122S1-CS2113-T14-1/tp …
peng-217 Nov 6, 2021
d02ded8
Add PPP
peng-217 Nov 6, 2021
00c0e5d
Update DG
ShaoYurui Nov 6, 2021
d7d74a8
Update user guide and fix a bug in NoteList
peng-217 Nov 6, 2021
2cb2654
Update UG and PPP
peng-217 Nov 6, 2021
5444d1a
Merge pull request #238 from ShaoYurui/master
asdzxc270697 Nov 6, 2021
da8a3fa
Merge pull request #239 from ShaoYurui/Update_DG
asdzxc270697 Nov 6, 2021
f302685
Update DG
asdzxc270697 Nov 6, 2021
b7e0565
Update Ui UML and PPP
peng-217 Nov 6, 2021
80a28ca
Merge branch 'master' of https://github.com/AY2122S1-CS2113-T14-1/tp …
peng-217 Nov 6, 2021
84804f2
Add note related-command to command summary
peng-217 Nov 6, 2021
f6c8fc8
syntax fix
peng-217 Nov 6, 2021
1a41b9f
Update PPP
asdzxc270697 Nov 6, 2021
ca0e919
PPP updates
Herrekt Nov 6, 2021
502f019
PPP updates on Scenes
Herrekt Nov 6, 2021
5faa92b
Update PPP
asdzxc270697 Nov 6, 2021
5f6baca
Add punctuation at end of each sentence
asdzxc270697 Nov 6, 2021
224a54e
Merge pull request #240 from peng-217/branch_update_DG_UG
asdzxc270697 Nov 6, 2021
6baf22f
Add spaces between each part of ppp
asdzxc270697 Nov 6, 2021
f849e78
Merge pull request #237 from arcturusz/developer-guide
MaifengNg Nov 6, 2021
eaec8d0
Update Javadoc and PPP
peng-217 Nov 6, 2021
49b97a7
Update MF PPP. Update DG and UG
MaifengNg Nov 6, 2021
1bee64e
Update add investigate suspect enhancement in ppp
MaifengNg Nov 6, 2021
12203a1
Merge pull request #241 from Herrekt/PPP
asdzxc270697 Nov 6, 2021
3d97e87
Update duke
MaifengNg Nov 6, 2021
b96a70e
Merge pull request #242 from MaifengNg/update_mf_ppp_and_ug
asdzxc270697 Nov 6, 2021
296bb96
Update PPP (Incomplete)
serenakemono Nov 6, 2021
e5013ea
Merge branch 'master' of https://github.com/AY2122S1-CS2113-T14-1/tp …
peng-217 Nov 6, 2021
8b28938
Update PPP and UG
peng-217 Nov 6, 2021
7a55cad
Update table of contents in UG
serenakemono Nov 6, 2021
6190882
Update examples for view command
serenakemono Nov 6, 2021
1ae672b
Add key architecture and feature
serenakemono Nov 6, 2021
1d237af
Add cosmetic changes
serenakemono Nov 6, 2021
36c5b07
Add documentation part of contribution to PPP
serenakemono Nov 6, 2021
d21e255
Reorder architecture and sequence diagram of main architecture in DG
serenakemono Nov 6, 2021
eac5fc7
Combine choosing suspect feature and clean up
serenakemono Nov 6, 2021
6a1ca00
Merge pull request #245 from WU-LUOYU-SERENA/branch-improve-DG-io
asdzxc270697 Nov 7, 2021
928d7ba
Merge pull request #243 from WU-LUOYU-SERENA/branch-PPP
MaifengNg Nov 7, 2021
aceb60d
Update Javadoc format
peng-217 Nov 7, 2021
5629278
Update UG
asdzxc270697 Nov 7, 2021
77d6c04
Merge pull request #244 from peng-217/branch_update_DG_UG
asdzxc270697 Nov 7, 2021
952af61
Merge pull request #246 from arcturusz/developer-guide
serenakemono Nov 7, 2021
c9a65df
rename ppp file
asdzxc270697 Nov 7, 2021
b5c0d03
Changes to multiple note inputs
Herrekt Nov 7, 2021
17741b4
Merge pull request #247 from arcturusz/ppp
serenakemono Nov 7, 2021
f52d8c9
Update Ui UML
peng-217 Nov 7, 2021
326ef9e
Update test cases and DG
MaifengNg Nov 7, 2021
448730c
Merge pull request #248 from peng-217/branch_update_DG_UG
asdzxc270697 Nov 7, 2021
7ba09dd
Update Ui UML
peng-217 Nov 7, 2021
e522049
Update Ui UML
peng-217 Nov 7, 2021
9a2093f
Update UG
MaifengNg Nov 7, 2021
5660a15
Update fix checkStyle
MaifengNg Nov 7, 2021
76d6e15
Update Note UML
peng-217 Nov 7, 2021
c98f696
Update UG
peng-217 Nov 7, 2021
f4b9508
Update fix checlstyle again
MaifengNg Nov 7, 2021
d77e97e
Merge pull request #249 from peng-217/branch_update_DG_UG
asdzxc270697 Nov 7, 2021
c9ef1e8
Merge pull request #250 from MaifengNg/fix_test_bug
asdzxc270697 Nov 7, 2021
b420f75
Merge pull request #251 from Herrekt/UG
asdzxc270697 Nov 7, 2021
87cacac
Update UG again
MaifengNg Nov 7, 2021
a32350d
Update change note UG
MaifengNg Nov 7, 2021
51bf18f
Fix merge conflict
MaifengNg Nov 7, 2021
de381bb
Bug Fix
ShaoYurui Nov 7, 2021
a1fdf34
update UG formatting
MaifengNg Nov 7, 2021
2710231
Update restructure UG
MaifengNg Nov 7, 2021
8feac6a
Remove line separator and update PPP
peng-217 Nov 7, 2021
eb3d836
Merge pull request #252 from ShaoYurui/master
asdzxc270697 Nov 7, 2021
114712c
Merge pull request #254 from peng-217/branch_update_DG_UG
asdzxc270697 Nov 7, 2021
c038469
Merge pull request #253 from MaifengNg/update_again_v2
asdzxc270697 Nov 7, 2021
26ca842
Remove line separator and bug fix
peng-217 Nov 7, 2021
cdd2d5c
Merge pull request #255 from peng-217/branch_update_DG_UG
asdzxc270697 Nov 7, 2021
23f5889
Fix Javadoc issues
peng-217 Nov 7, 2021
4e7d620
Minor fix
peng-217 Nov 7, 2021
fd01744
Merge pull request #257 from peng-217/branch_update_DG_UG
asdzxc270697 Nov 7, 2021
9cac85e
Add more test for scene and suspect
asdzxc270697 Nov 7, 2021
06eaca0
Improve clue coverage
asdzxc270697 Nov 7, 2021
7e074b3
Update UG text formatting and mf ppp
MaifengNg Nov 7, 2021
2095aed
Fix some javadocs formatting and combine exceptions to 1 package
asdzxc270697 Nov 7, 2021
fc0cee2
Merge pull request #256 from arcturusz/junit-test
serenakemono Nov 7, 2021
0093ea2
Update list of available commands in both intro and help command
serenakemono Nov 7, 2021
2111c56
Remove footboxes in uml diagram
serenakemono Nov 7, 2021
f37abdb
Update Wu Luoyu's PPP
serenakemono Nov 7, 2021
af0541e
Merge pull request #258 from WU-LUOYU-SERENA/branch-final-fixes
asdzxc270697 Nov 7, 2021
9022fb1
Update ppp
asdzxc270697 Nov 7, 2021
005965e
Update ppp v2
asdzxc270697 Nov 7, 2021
84480a2
Merge pull request #259 from arcturusz/ppp
serenakemono Nov 7, 2021
1270419
update DG
ShaoYurui Nov 7, 2021
a0de22d
Update scenelist test cases
MaifengNg Nov 7, 2021
0a95893
Update PPP
peng-217 Nov 7, 2021
12c9f52
Update remove redundant code
MaifengNg Nov 7, 2021
c0a41ef
Update remove redundant code in SceneListTest
MaifengNg Nov 7, 2021
4f676ff
Update add test for Command Class
MaifengNg Nov 7, 2021
228029d
Merge branch 'master' into mf_pp_v3
MaifengNg Nov 7, 2021
61e4902
Fix merge conflict
MaifengNg Nov 7, 2021
9f7d2e3
Fix merge conflict
MaifengNg Nov 7, 2021
16e2ef8
Merge pull request #260 from ShaoYurui/master
asdzxc270697 Nov 7, 2021
491dafd
Merge pull request #261 from peng-217/branch_update_DG_UG
asdzxc270697 Nov 7, 2021
b5fa4f5
Merge pull request #262 from MaifengNg/mf_pp_v3
asdzxc270697 Nov 7, 2021
fb08535
Changed javadocs in mf ppp
MaifengNg Nov 7, 2021
d154d22
Merge pull request #263 from MaifengNg/mf_ppp_v4
asdzxc270697 Nov 7, 2021
331a1a5
Update PPP, UG, DG
ShaoYurui Nov 7, 2021
39ded29
Bug fix
peng-217 Nov 8, 2021
656aaee
syntax fix
peng-217 Nov 8, 2021
338cf53
minor fix
peng-217 Nov 8, 2021
81d0f06
Merge pull request #265 from peng-217/branch_update_DG_UG
Herrekt Nov 8, 2021
2a1047b
Project management, other contributions, bolding
Herrekt Nov 8, 2021
6eaddec
Merge pull request #264 from ShaoYurui/master
serenakemono Nov 8, 2021
6867974
Update PPP
ShaoYurui Nov 8, 2021
cb7a9af
Merge pull request #266 from ShaoYurui/master
Herrekt Nov 8, 2021
70fed81
Updates to PPP again
Herrekt Nov 8, 2021
739b38d
Merge pull request #267 from Herrekt/PPPupdates
ShaoYurui Nov 8, 2021
4327fb1
Update PPP
peng-217 Nov 8, 2021
8bef885
Merge pull request #268 from peng-217/branch_update_DG_UG
ShaoYurui Nov 8, 2021
b03e501
Fix end scene bug
asdzxc270697 Nov 8, 2021
2b0e759
Merge pull request #269 from arcturusz/ending-scenes
asdzxc270697 Nov 8, 2021
feba1ec
Update about us and UG
serenakemono Nov 8, 2021
f521bdf
Merge pull request #270 from WU-LUOYU-SERENA/master
asdzxc270697 Nov 8, 2021
aa9c3ce
Update DeveloperGuide.md
serenakemono Nov 8, 2021
c0296d1
Update DeveloperGuide.md
serenakemono Nov 8, 2021
3823311
Merge pull request #271 from AY2122S1-CS2113-T14-1/WU-LUOYU-SERENA-pa…
serenakemono Nov 8, 2021
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
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,9 @@ bin/

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
MANIFEST.MF

# Ignore GameData.txt
/data/GameData.txt
TP.jar
/data/notes.txt
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,5 @@ checkstyle {

run{
standardInput = System.in
enableAssertions = true
}
11 changes: 6 additions & 5 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

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) | Herrick Koh Yu Kan | [Github](https://github.com/Herrekt) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Wu Luoyu Serena | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Eljer Chua | [Github](https://github.com/arcturusz) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Shao Yurui | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Mai Feng | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Peng Fei | [Github](https://github.com/peng-217) | [Portfolio](docs/team/johndoe.md)
Binary file added docs/Command_Class_Diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions docs/Command_Class_Diagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
@startuml

allowmixing
skinparam componentStyle rectangle

class Duke


component Ui {
}
component Storage {
}
component Investigation {
}
component SceneList {
}
component Parser {
}

component Command {
abstract class Command
Class XYZCommand
}


Duke --> Parser
Duke ..> Command: execute >
Parser ..> XYZCommand: create >
Command <|-- XYZCommand
Command ..> Storage
Command ..> Ui

Investigation <.left. Command

SceneList <.. Command
note bottom of XYZCommand: XYZCommand = ViewCommand, NextCommand, etc

hide members

@enduml
291 changes: 274 additions & 17 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,294 @@

## Acknowledgements

{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}
The plot of the game was adopted from one of the games available in the Mini Program in WeChat called Ju Ben Sha. The original story was in Chinese and was translated to English with the help of Google Translate.

## Design & implementation
## Content Page
* [Architecture](#Architecture)
* [Main Components of the Architecture](#Main-components-of-the-architecture)
* [Parser Component](#Parser-component)
* [Note Component](#Note-component)
* [UI Component](#UI-component)
* [Command Component](#Command-component)
* [Investigation Component](#Investigation-component)
* [Scene Component](#Scene-component)
* [Storage Component](#Storage-component)
* [Suspect Component](#Suspect-component)
* [Implementation](#Implementation)

Choose a reason for hiding this comment

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

Perhaps add the appropriate links to correct the navigation as currently, it does not navigate to the correct sub-header.


{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}

Choose a reason for hiding this comment

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

I feel that there could be a section here to cover the target user and the value proposition of the product, as well as maybe a brief overview of what it does.

## Design
Copy link

Choose a reason for hiding this comment

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

May want to increase the font size of your sequence diagrams as it is abit difficult to read.


### Architecture
![High Level Architectural design](./main_architecture.png)
Copy link

Choose a reason for hiding this comment

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

image

You may want to change the return arrows to dotted arrows by using <..

Copy link

Choose a reason for hiding this comment

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

Perhaps you can also add a : to all your class names, like :Duke or :Ui.

Choose a reason for hiding this comment

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

image
I think the returning arrows should be dotted instead of a solid line

Choose a reason for hiding this comment

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

Perhaps add a : to the name of the classes too.

Choose a reason for hiding this comment

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

Is this diagram needed here? As it is repeated again below at line 53.


## Product scope
### Target user profile
![High Level Architecture Diagram](./high_level_architecture.png)

{Describe the target user profile}
The _**Architecture Diagram**_ given above explains the high-level design of the App.

### Value proposition
Given below is a quick overview of main components and how they interact with each other.

{Describe the value proposition: what problem does it solve?}
###Main components of the architecture

Choose a reason for hiding this comment

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

image

Need to add a space between ### and Main, or else markdown will not generate header

Copy link

Choose a reason for hiding this comment

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

You may want to add a space after your ### to allow GitHub pages to render properly

Choose a reason for hiding this comment

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

image
Adding a space after ### would allow GitHub to render the header correctly.


`Duke` is responsible for,

* At app launch: Initializes the components in the correct sequence, and connects them up with each other.
* During the game: Takes in user input and coordinates other components to parse and execute the input in a while loop, until the game is shut down.

The rest of the App consists of eight components.

`Parser`:
`Ui`:
`Command`: The command executor.
`Investigation`:
`Scene`:
`Suspect`:
`Note`:
`Storage`:

**How the architecture components interact with each other**

The Sequence Diagram below shows how the components interact with each other for the scenario where the user issues the command `/next`.

Choose a reason for hiding this comment

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

image

If the image is a sequence diagram shouldn't there be activation bars?
Also note the returning arrows, I think it should be dotted lines as well.


![High Level Sequence Diagram for main architecture](./main_architecture.png)

Choose a reason for hiding this comment

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

Is this image supposed to be here or in line 23? Because I notice that it is the same exact image main_architecture.png.


### Parser component
**API:** Parser.java

The parser component is used to parse the input given by the user.

The Sequence Diagram below illustrates the interactions within the
`Parser` component for the `getCommandFromUser("/next")` API call.

![Parser design](./ParserUML.png)
The class diagram below shows how the parser interacts with the other classes

Choose a reason for hiding this comment

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

image
I think a line indentation would make it neater.

Choose a reason for hiding this comment

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

If Parser is calling new NextCommand() shouldn't the arrow go to the :NextCommand box, with a constructor below?


![Parser class diagram design](./ParserClassDiagram.png)
Copy link

Choose a reason for hiding this comment

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

Should the an abstract class be defined with "<>" or "{}"?
image


How the parser work
- When the user gives an input, the parser will the appropriate command for this input.
- In the case of `/next` as the input, the NextCommand will be generated.
- The NextCommand is inherits from the abstract class Command.
- If the input does not generate a valid command type, it throws the invalidInputException.
- The abstract Command class requires SceneList, Ui and Investigate component as its dependencies.


### Note component
**API:** Note.java

The note component allows user to create / open / delete /search note.

How the note work
- When user want to take note, a note with title and content will be created and added
to note list.
- Notes in the note list can be found by their titles and scene index.
- Unwanted notes can be deleted.

### UI component
**API:** `Ui.java`

The ui component communicates with the user via the terminal. Other component call methods of
ui to print output to terminal.

How the ui work
- Print messages to terminal depending on the scene.
- Print corresponding output to terminal according to input command.

[UML diagram for Ui](./UiUML.png)
Copy link

Choose a reason for hiding this comment

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

The link to the UML diagram is broken.

Choose a reason for hiding this comment

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

image
Is there supposed to be an image here? As the image link is broken and would it be better if you just include the image in the DG itself instead of having a link for it?

### Command component
**API:** `Command.java`

Here’s a (partial) class diagram of the `Command` component:


![(partial class) diagram of Command component](./Command_Class_Diagram.png)
Copy link

Choose a reason for hiding this comment

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

Do the inclusion of icons for the 'Duke', 'Command', 'XYZCommand' class follow the class diagram UML standard as discussed in class?

image



How the `Command` componnet works:
1. The user input is first parsed using the `Parse` component
2. This results in a `Command` object (more precisely, an object of one of its subclasses e.g., NextCommand), which is executed by `Duke`.
3. The command can communicate with the `Ui`, `Investigation` and `SceneList` when it is executed (e.g. to go to the next scene).
4. Some of the commands may update the `Storage`.


The Sequence Diagram [below](./next_command_sequence_diagram.png) illustrates within the `Command` component for the `execute(ui,investigation,sceneList)` method call of the `NextCommand` class.


![Sequence diagram for execute(ui,investigation,sceneList) method call of NextCommand](./next_command_sequence_diagram.png)

Choose a reason for hiding this comment

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

image
The diagram has many components that are difficult to make out as the font is too small and some of the text is blurry.

Copy link

Choose a reason for hiding this comment

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

I agree with @titustortoiseturtle1999, but nice job on colouring the different sections to allow us to differentiate the different sections.

Choose a reason for hiding this comment

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

image
For sequence diagrams, I think there should be a block for each method. eg. When execute(ui, investigation, sceneList) is called should be the start of a block.

Copy link

Choose a reason for hiding this comment

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

I think activations bars are optional, but as some of your other diagrams included it, you may want to standardize it.


### Investigation component
**API:** `Investigation.java`


![Investigation Sequence Diagram](./Investigation_Sequence_Diagram.png)

The investigation class manages the investigation in each investigation scene.


How the `Investigation` component works:
- When an investigation command is returned from the parser, we investigate the input given by the user.
- Investigation are divided into two parts, suspect stage and clue stage
- `Suspect Stage`: Prints the list of suspects and prompts user for input, user selects which suspect he/she wants
to investigate. Proceeds to clue stage when input entered are valid
- `Clue Stage`: Prints the list of clues available for viewing for the selected suspect previously and prompts user
for input, user selects which clue he/she wants to view. The user may enter the number '0' to return to the
`Suspect Stage`. Otherwise, after selecting the clue, the clue is then marked as checked and contents of the selected
clue is displayed on the terminal.
- The Investigation class is also used to determine if the user has managed to find the correct killer
at the end of the game.

### Scene component
**API:** `Scene.java`

The scene class contains and produces the narrative for the scene.
It also holds a suspectList, which contains the suspects and their respective clues.

How the scene class work
- Each scene has a scene type.
- For each scene type, we interact differently from the user.

See below for example.
- The introduction scene shows the introductory message to the user.
- The investigation scene asks the user either investigate a suspect or look into a clue.
![](Scene.png)

Choose a reason for hiding this comment

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

image
The image here is rather blurry and it makes the words unreadable.




### Storage component
**API:** `Storage.java`
The local Game Data Storage feature allows users to save the current game progress and resume the saved progress in the Future.
It is facilitated by ```java.io.File``` and ```java.io.FileWriter```.
It implements the following operations
- ```Storage#checkPath()``` -- Checks if there is a valid path to the data file, and creates a new data file if the data file is missing or hte path is invalid.
- ```Storage#readFile()``` -- Reads all the lines in the data files and store the information into a ```ArrayList<String>``` type Array List, then close the file.
- ```Storage#rewriteFile()``` -- Erase the content of the data file and rewrite from the start, then save and close the file.

At first ```Storage file = new Storage("name.txt")```, initialise the ```Storage``` class type with the name of the file.
Then ```file.checkPath()``` will check for existing data file and creates a new data file if the path ```./Data/name.txt```is invalid.
Then read the file and store the information into array list using ```ArrayList<String> content = file.readFile()```.
Eventually, edit the content and rewrite to data file using ```file.rewriteFile(content)```
### Suspect component
**API:** Suspect.java

The `Suspect` class contains an `ArrayList` of the class `Clue`.

How the suspect class work:

* Different suspects in a particular scene are stored in the `SuspectList` class.
* Suspects are stored via a `LinkedHashMap<String, Suspect>`, with the string being the suspect's name.

See below for example:

* The first investigation scene has a `SuspectList` containing one name, "Father",
and four clues within its corresponding `Suspect` class.

![](Suspect.png)

Choose a reason for hiding this comment

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

image

Since there is a method call for new Suspect(), does this mean that it should be using a constructor box?

Choose a reason for hiding this comment

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

I agree with @RemusTeo. A constructor box should be added here as well.


## Implementation

This section describes some noteworthy details on how certain features are implemented.

### Display checked-clues feature

This feature allows the user to review the clues that have been gathered. The clues will be displayed according to the suspect they belong to.
To implement this feature, a clue tracker that contains all 5 suspects and all the clues corresponding to each suspect is used.
Whenever a clue is checked out by the user, the respective clue in the clue tracker will be marked as checked.
When the view feature is invoked, clues in the clue tracker will be iterated through. Once a checked-clue is found, it will be printed out for user tp review.

An alternative to this would be to update the clue status under each scene. However, this does not allow the display of clues according to different suspects.

### Local Game Data Storage

The local Game Data Storage feature allows users to save the current game progress and resume the saved progress in the Future.
It is facilitated by ```java.io.File``` and ```java.io.FileWriter```.
It implements the following operations
- ```Storage#checkPath()``` -- Checks if there is a valid path to the data file, and creates a new data file if the data file is missing or hte path is invalid.
- ```Storage#readFile()``` -- Reads all the lines in the data files and store the information into a ```ArrayList<String>``` type Array List, then close the file.
- ```Storage#rewriteFile()``` -- Erase the content of the data file and rewrite from the start, then save and close the file.

At first ```Storage file = new Storage("name.txt")```, initialise the ```Storage``` class type with the name of the file.
Then ```file.checkPath()``` will check for existing data file and creates a new data file if the path ```./Data/name.txt```is invalid.
Then read the file and store the information into array list using ```ArrayList<String> content = file.readFile()```.
Eventually, edit the content and rewrite to data file using ```file.rewriteFile(content)```

Choose a reason for hiding this comment

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

Perhaps a diagram can be included here to allow visualisation of how the storage component works.


###Taking Notes For Specified Scene

Choose a reason for hiding this comment

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

This paragraph feels a little wordy, and the length makes it disinteresting to the reader. You could consider reformatting it into something more digestible.

Choose a reason for hiding this comment

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

image

Need to add space between ### and Taking, or else markdown will not generate header.


This note-taking feature allows users to take note whenever they want, and store these notes locally. All the locally saved notes will be loaded and accessible
for users to open. Each note contains three parts: scene index, title and content. The note index will be automatically set according to the current scene that
user is investigating. Note tile and content are fulfilled by users. Default title will be given if user does not give a title. User can also search for an
existing note by either search its title/scene index or directly open it by its sequence number (in the note list). User can also delete the unwanted notes by
typing in its sequence number.

### SuspectListBuilder

Suspects and clues used in different scenes can be kept in a txt file and created following a specific format.
It uses `java.io.File`, `java.util.Scanner`, and is implemented as:
* `suspectListBuilder(String fileLocation, SuspectList suspectList)` -- where `fileLocation` is the directory
containing the specified text file and `suspectList` is the instance of class `SuspectList` that the suspects
and clues are to be added into.

This method will search for the specified text file, throwing a `FileNotFoundException` if it is missing.
The text file will be written in such a way that the program can recognize how many suspects
and how many clues there are. It will first add the suspects from the file into the suspectList
via the method `addSuspect(String suspectName, Suspect suspect)`, and then the clues via the
method `addClueForSuspect(String suspectName, Clue clueToAdd)` to the suspect with the corresponding `suspectName`.



## Appendix

## Product Scope

**Target user profile:**

- enjoy the playing interactive game
- enjoy mystery genre
- enjoy reading
- wants to take a break from visual games


**Value proposition:**

- Provide an alternative game for users to exercise creative thinking

## Use Cases

(Use /next as an example)

## User Stories

|Version| As a ... | 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|
|Priority|Version| As a ... | I want to ... | So that I can ...|
|--------|--------|----------|---------------|------------------|
| * * *|v1.0|new user|see all commands available|understand the game mechanics|
| * * *|v1.0|user|investigate the suspects available|better understand the suspect|
| * * *|v1.0|user|investigate the clues available|understand the story line better|
| * * *|v1.0|user|choose the suspect|see if I am able to solve the crime|
| * * |v2.0|user|resume the game after exiting|continue the game instead of restarting|
| * * |v2.0|user|write notes|look at the notes I have written for each scene and suspect|
| * |v2.0|user|go to previous scene|look at the narrative for the previous scene|


### Use Cases

(Use /next as an example)

Use case: Navigate to the next scene.

1. The user gives `/next` as input.
2. Parser parsed the `/next` input, returns a NextCommand.
3. NextCommand does a self-invocation and calls the `execute()` method.
4. NextCommand returns a boolean by self-invocating the `.exit()` method.
5. If it is the last scene of the game, `.exit()` returns true else false.

### Non-Functional Requirements
1. The game should work as long as java 11 is installed on the local machine.
2. A working keyboard to play the game and a monitor to read the text.

## Non-Functional Requirements

{Give non-functional requirements}
### Glossary

## Glossary

* *glossary item* - Definition
- Mainstream OS: Windows, Mac OS X, Unix, Linux

## Instructions for manual testing
## Appendix: Instructions for manual testing

{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing}
12 changes: 12 additions & 0 deletions docs/Help.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
----------------
| Instructions |
----------------

Here are the commands that you can enter:
"/help" - view this command list
"/exit" - exit the game
"/next" - move on to the next scene or the next stage of a scene
"/back" - go back to previous scene
"/note" - create a new note/ open a note/ delete a note
"/view" - view all the clues that you have gathered
"/restart" - restart the game from beginning
Binary file added docs/Investigation_Sequence_Diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading