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-T18-1] Movie Reviews #47

Open
wants to merge 445 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
445 commits
Select commit Hold shift + click to select a range
51fea35
Added addCommand and findCommand sequence diagrams.
redders7 Oct 26, 2022
74830be
Added addCommand and findCommand sequence diagrams.
redders7 Oct 26, 2022
ac14c92
Added diagrams to developer guide
redders7 Oct 26, 2022
43ef872
Added diagrams to developer guide
redders7 Oct 26, 2022
9a02aa0
adding
matthewphua Oct 26, 2022
a48b1da
adding
matthewphua Oct 26, 2022
ab227ef
adiding
matthewphua Oct 26, 2022
62f9950
adding
matthewphua Oct 26, 2022
b81d77e
adding
matthewphua Oct 26, 2022
fa8f2bb
adding
matthewphua Oct 26, 2022
9e09080
updated Developer Guide
naz019 Oct 26, 2022
44063b9
Updated Developer Guide
redders7 Oct 26, 2022
4b27d66
Added a parser test
indraneelrp Oct 26, 2022
67baeaf
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
redders7 Oct 26, 2022
e79e743
Merge pull request #72 from naz019/master
naz019 Oct 26, 2022
2f43c8d
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
redders7 Oct 26, 2022
1866147
Updated Developer's Guide
redders7 Oct 26, 2022
a93df1f
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Oct 26, 2022
610cb68
adding
matthewphua Oct 27, 2022
9eae96c
Merge pull request #74 from matthewphua/branch-diagram-descriptions
matthewphua Oct 27, 2022
292498f
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Oct 27, 2022
f88bb9a
Checkstyle error fixed
indraneelrp Oct 27, 2022
e099ef6
Merge pull request #75 from indraneelrp/master
indraneelrp Oct 27, 2022
03abb3a
Edited User Guide
indraneelrp Oct 28, 2022
bbe9d95
Merge pull request #76 from indraneelrp/master
indraneelrp Oct 28, 2022
4c628b6
updated user guide
naz019 Oct 28, 2022
1c66376
resolved conflicts
naz019 Oct 28, 2022
c44cffd
added command info to user guide. added user story
indraneelrp Oct 28, 2022
3206550
Merge pull request #79 from indraneelrp/master
indraneelrp Oct 28, 2022
6b8179c
added sort command info to UG
indraneelrp Oct 28, 2022
c47a187
Merge pull request #80 from indraneelrp/master
indraneelrp Oct 28, 2022
f428a6e
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Oct 28, 2022
224c008
Merge pull request #78 from naz019/master
redders7 Oct 29, 2022
448a26c
Fixes #81
redders7 Oct 29, 2022
32a4b5d
Fixed issue #81
redders7 Oct 29, 2022
fe22570
adding
matthewphua Oct 29, 2022
2e32dc8
adding
matthewphua Oct 29, 2022
68e3d01
Merge pull request #112 from matthewphua/branch-fix-add-command
matthewphua Oct 29, 2022
8d6debb
adding
matthewphua Oct 29, 2022
ebcb79d
Merge pull request #113 from matthewphua/branch-code-comments
matthewphua Oct 29, 2022
7b1d960
adding
matthewphua Oct 29, 2022
6a6ce50
adding
matthewphua Oct 29, 2022
1f5b82f
Merge pull request #114 from matthewphua/branch-code-comments
matthewphua Oct 29, 2022
78049bc
Directs all non-severe logging to log file instead
indraneelrp Oct 30, 2022
8cdc599
Merge pull request #115 from indraneelrp/master
indraneelrp Oct 30, 2022
ec19de2
Added JUnit test
indraneelrp Oct 30, 2022
fc8a939
adding
matthewphua Oct 30, 2022
4a913b3
adding
matthewphua Oct 30, 2022
9f5b68c
adding
matthewphua Oct 30, 2022
194e3ac
added platform independence to UI test
indraneelrp Oct 30, 2022
6603f08
Merge pull request #116 from indraneelrp/master
indraneelrp Oct 30, 2022
65343df
Added Parser test
indraneelrp Oct 30, 2022
6a7b7cb
testing
indraneelrp Oct 30, 2022
63c9b09
uncommented fist parser test
indraneelrp Oct 30, 2022
0f6b8ea
edited exected output on parser test
indraneelrp Oct 30, 2022
1548e86
edited parser test
indraneelrp Oct 30, 2022
e87d8d2
Edited parser test again
indraneelrp Oct 30, 2022
262137d
line separator bug fix parser test
indraneelrp Oct 31, 2022
7215f1e
working parser test
indraneelrp Oct 31, 2022
0d6a08c
parsertest negative fix
indraneelrp Oct 31, 2022
58f69ed
find test negative fix
indraneelrp Oct 31, 2022
06a8712
another attempt
indraneelrp Oct 31, 2022
8d6a3c9
removed negative test
indraneelrp Oct 31, 2022
3348ed4
checkstyle
indraneelrp Oct 31, 2022
fa82902
last try
indraneelrp Oct 31, 2022
6299d53
adding tests
matthewphua Oct 31, 2022
2d73ca1
adding test
matthewphua Oct 31, 2022
5e4156b
adding
matthewphua Oct 31, 2022
2b67780
adding
matthewphua Oct 31, 2022
39e1d51
Merge pull request #69 from matthewphua/branch-ui-test
matthewphua Oct 31, 2022
5950b49
changed parsertest method
indraneelrp Oct 31, 2022
c1dae71
checkstyle fix
indraneelrp Oct 31, 2022
b093345
Merge pull request #117 from indraneelrp/master
indraneelrp Oct 31, 2022
47a9e25
adding
matthewphua Oct 31, 2022
65c508d
adding
matthewphua Oct 31, 2022
7ff5be8
Merge pull request #118 from matthewphua/branch-bug-fixing
matthewphua Oct 31, 2022
493949b
updated user guide, README and AboutUs
naz019 Oct 31, 2022
786309f
Merge pull request #120 from naz019/master
naz019 Oct 31, 2022
156a5fb
updated sorting method, made spacing consistent and updated user guide
naz019 Nov 1, 2022
5d58b0a
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Nov 1, 2022
4c0f20c
Fixed UML diagrams, coding standards errors and documentation.
redders7 Nov 1, 2022
d8c6abb
Fixed UML diagrams, coding standards errors and documentation.
redders7 Nov 1, 2022
16d2275
increased test coverage
indraneelrp Nov 1, 2022
53214f6
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Nov 1, 2022
78c4a98
checkstyle error
indraneelrp Nov 1, 2022
7e786c4
Merge pull request #123 from indraneelrp/master
indraneelrp Nov 1, 2022
b58d5b8
increased parser test coverage >70%
indraneelrp Nov 1, 2022
c4bdd18
style fix
indraneelrp Nov 1, 2022
d43dd57
style fix
indraneelrp Nov 1, 2022
8313850
style fix
indraneelrp Nov 1, 2022
518ccb3
Merge pull request #124 from indraneelrp/master
indraneelrp Nov 1, 2022
60543f2
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Nov 1, 2022
5dc34aa
updated tests
naz019 Nov 1, 2022
195e4c2
Merge pull request #121 from naz019/master
naz019 Nov 1, 2022
35330d8
edited github pages formar
naz019 Nov 1, 2022
4c105ec
Merge pull request #125 from naz019/master
naz019 Nov 1, 2022
7fabff6
updated add command to make all dates from the future invalid
naz019 Nov 1, 2022
176c7f9
Merge pull request #126 from naz019/master
naz019 Nov 1, 2022
86087d1
updated user guide
naz019 Nov 1, 2022
4777bc8
Merge pull request #128 from naz019/master
naz019 Nov 1, 2022
d6740d7
adding
matthewphua Nov 2, 2022
fb93cde
Merge pull request #129 from matthewphua/branch-rating-limit
matthewphua Nov 2, 2022
0ca7e71
adding
matthewphua Nov 2, 2022
9f2ace7
Merge pull request #130 from matthewphua/branch-manual-testing
matthewphua Nov 2, 2022
f585ae9
Created exceptions and commands packages to organise classes. Added n…
redders7 Nov 2, 2022
cad790c
Merged with tp master branch.
redders7 Nov 2, 2022
dc3aaef
Fixed CI Checkstyle
redders7 Nov 2, 2022
6f4f925
Fixed JUnit tests
redders7 Nov 2, 2022
174df99
Fixed CI Checkstyle
redders7 Nov 2, 2022
db47c32
Created exceptions and commands packages to organise classes. Added n…
redders7 Nov 2, 2022
1678ef2
Improved test coverage and updated PPP.
redders7 Nov 2, 2022
6412b92
Improved test coverage and updated PPP.
redders7 Nov 2, 2022
7e8e428
tidied up file organization
naz019 Nov 2, 2022
f41b866
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Nov 2, 2022
6386728
Merge pull request #133 from naz019/master
naz019 Nov 2, 2022
be2869b
updated favourite command to follow media type index and updated tests
naz019 Nov 2, 2022
b46cdb4
updated checkstyle
naz019 Nov 2, 2022
ec25e5b
updated for checkstyle
naz019 Nov 2, 2022
2de8fc5
Merge pull request #134 from naz019/master
naz019 Nov 2, 2022
2015cbf
added stored.txt to gitignore
indraneelrp Nov 3, 2022
2835e0b
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Nov 3, 2022
7ddbedd
added to sequence diagrams
naz019 Nov 3, 2022
d239494
Merge pull request #136 from naz019/master
naz019 Nov 3, 2022
db79359
Renamed PPP filenames
redders7 Nov 3, 2022
6617fe6
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
redders7 Nov 3, 2022
03b5443
Merge pull request #137 from redders7/master
redders7 Nov 3, 2022
5b7555d
adding
matthewphua Nov 3, 2022
28afa0b
updated ppp
naz019 Nov 3, 2022
24ecfd9
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Nov 3, 2022
0320a9f
Merge pull request #138 from matthewphua/branch-ppp
matthewphua Nov 3, 2022
26b7378
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Nov 3, 2022
cb0e611
updated naz019 PPP
naz019 Nov 3, 2022
fb46062
Merge pull request #139 from naz019/master
naz019 Nov 3, 2022
5785dec
updated personal PPP
naz019 Nov 3, 2022
e82e1e4
Merge pull request #140 from naz019/master
naz019 Nov 3, 2022
1849f68
fixed AboutUs links
naz019 Nov 3, 2022
b848989
Merge pull request #141 from naz019/master
naz019 Nov 3, 2022
7e1d563
updated docs to reflect renaming of Duke to myReviews
naz019 Nov 4, 2022
c59917a
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Nov 4, 2022
55ae1be
Added some details to personal PPP
indraneelrp Nov 4, 2022
97c7c66
Added details to personal ppp
indraneelrp Nov 4, 2022
690f34c
Merge pull request #143 from indraneelrp/master
indraneelrp Nov 4, 2022
f9921f4
Specified compulsory arguments for commands in UG
indraneelrp Nov 4, 2022
801560b
Merge pull request #144 from indraneelrp/master
indraneelrp Nov 4, 2022
9a1edb3
updates storage after every command instead at end
indraneelrp Nov 4, 2022
3dc9890
bug fix- prevent duplicate titles, when title in same case.
indraneelrp Nov 4, 2022
4683471
style edit
indraneelrp Nov 4, 2022
ebb6a23
Merge pull request #148 from indraneelrp/master
indraneelrp Nov 4, 2022
34e5474
Fixed storage tampering issue. Updated UserGuide.
redders7 Nov 4, 2022
6a1753f
Fixed CI Checkstyle
redders7 Nov 4, 2022
ff68605
Fixed IO Redirection Test
redders7 Nov 4, 2022
5e2066e
Merge pull request #150 from redders7/master
matthewphua Nov 4, 2022
1dcb993
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Nov 4, 2022
c4cae0b
Merge pull request #151 from naz019/master
redders7 Nov 4, 2022
246bcc7
updated sequence diagrams for all commands other than add, to include
naz019 Nov 4, 2022
fce6d70
updated PPP to reduce lines
naz019 Nov 4, 2022
28d004e
Merge pull request #152 from naz019/master
redders7 Nov 5, 2022
4d5094d
added code quality improvements
naz019 Nov 5, 2022
d97c96e
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Nov 5, 2022
7218e33
Merge pull request #153 from naz019/master
redders7 Nov 5, 2022
eea41f9
added JavaDocs
naz019 Nov 5, 2022
3e88ae2
updated Product Scope in DG
naz019 Nov 5, 2022
23f5e61
Merge pull request #154 from naz019/task_addJavaDocs
redders7 Nov 5, 2022
648306c
updated output messages in User Guide
naz019 Nov 5, 2022
82e2642
updated PPP
naz019 Nov 5, 2022
096198c
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp…
naz019 Nov 5, 2022
1a898a5
edit stored.txt to pass checks
naz019 Nov 5, 2022
fba9c83
updated runtest files
naz019 Nov 5, 2022
1f01ded
updated runtest files
naz019 Nov 5, 2022
13d830b
Updated personal PPP. Added JUnit tests for Parser.
redders7 Nov 5, 2022
4b323cf
Fixed CI Checkstyle
redders7 Nov 5, 2022
b5a0f8f
Merge pull request #155 from naz019/task_updateDocs
redders7 Nov 5, 2022
2394d3d
Merge pull request #156 from redders7/master
naz019 Nov 5, 2022
310fbbf
Updated personal PPP
redders7 Nov 5, 2022
2fee06a
Updated PPP
redders7 Nov 5, 2022
2aa0710
adding tests
matthewphua Nov 5, 2022
5a2466e
fix
matthewphua Nov 5, 2022
d166d67
Merge pull request #157 from matthewphua/branch-parser-tests
naz019 Nov 5, 2022
3c09325
Handles errors with incorrectly-saved data in storage
indraneelrp Nov 6, 2022
6a45336
style edit
indraneelrp Nov 6, 2022
8244407
supress
indraneelrp Nov 6, 2022
6b83f9f
supress constants
indraneelrp Nov 6, 2022
b844839
style edit
indraneelrp Nov 6, 2022
ac827e6
style
indraneelrp Nov 6, 2022
5f781f4
Merge pull request #158 from indraneelrp/master
naz019 Nov 6, 2022
a6dde91
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
redders7 Nov 6, 2022
f2d5090
adding
matthewphua Nov 6, 2022
0cb7ddb
adding
matthewphua Nov 6, 2022
5b3aa58
Merge pull request #160 from matthewphua/branch-parser-tests
redders7 Nov 6, 2022
f5e622e
Fixed issue with commands with leading whitespaces
redders7 Nov 6, 2022
300e1a0
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
redders7 Nov 6, 2022
de3a026
Merge pull request #162 from redders7/master
matthewphua Nov 6, 2022
5f4dd51
adding
matthewphua Nov 6, 2022
381b6ed
Merge pull request #163 from matthewphua/branch-parser-tests
matthewphua Nov 6, 2022
1db580e
adding
matthewphua Nov 6, 2022
6edb5c2
Merge pull request #164 from matthewphua/branch-parser-tests
matthewphua Nov 6, 2022
843caf5
adding
matthewphua Nov 6, 2022
a8d1cca
Merge pull request #165 from matthewphua/branch-parser-tests
matthewphua Nov 6, 2022
aa96bc0
style edit
indraneelrp Nov 6, 2022
1b9dfce
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Nov 6, 2022
7fcc544
Added JavaDoc
redders7 Nov 6, 2022
e14f6d0
Added info to user guide on duplicates. Parser style edit.
indraneelrp Nov 6, 2022
02bbcc1
Merge pull request #167 from indraneelrp/master
indraneelrp Nov 7, 2022
4cb09cf
Merge pull request #166 from redders7/master
indraneelrp Nov 7, 2022
b41557b
Added to PPP and DG
indraneelrp Nov 7, 2022
66059bf
Merge pull request #168 from indraneelrp/master
indraneelrp Nov 7, 2022
9b88bc7
Fixed UG bugs.
redders7 Nov 7, 2022
887e0d3
Merge pull request #169 from redders7/master
matthewphua Nov 7, 2022
7ecf7ee
edited PPP
indraneelrp Nov 7, 2022
eb04b0b
edited PPP
indraneelrp Nov 7, 2022
13359cb
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Nov 7, 2022
46acddc
Merge pull request #170 from indraneelrp/master
indraneelrp Nov 7, 2022
4a4a54f
Edited ppp, added photo
indraneelrp Nov 7, 2022
e65eeec
PPP
indraneelrp Nov 7, 2022
776ea31
Merge pull request #171 from indraneelrp/master
indraneelrp Nov 7, 2022
3a69fab
ppp
indraneelrp Nov 7, 2022
f9d522d
Merge pull request #172 from indraneelrp/master
indraneelrp Nov 7, 2022
37e1df9
ppp edit
indraneelrp Nov 7, 2022
19e1fb3
Merge pull request #173 from indraneelrp/master
indraneelrp Nov 7, 2022
9ab8ff3
ppp
indraneelrp Nov 7, 2022
0bdc67d
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Nov 7, 2022
437890e
Merge pull request #174 from indraneelrp/master
indraneelrp Nov 7, 2022
4ecdfc5
making ppp 2 pages
indraneelrp Nov 7, 2022
2431f53
Merge pull request #175 from indraneelrp/master
indraneelrp Nov 7, 2022
1815076
updated PPP
naz019 Nov 7, 2022
1f7259d
Merge pull request #176 from naz019/master
naz019 Nov 7, 2022
d2efba2
shortened PPP
naz019 Nov 7, 2022
c962c6c
Merge pull request #177 from naz019/master
naz019 Nov 7, 2022
2a0fd62
updated PPP links
naz019 Nov 7, 2022
925902e
Merge pull request #178 from naz019/master
naz019 Nov 7, 2022
8d09bd9
Added javadoc
indraneelrp Nov 7, 2022
b4cad22
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Nov 7, 2022
b6487b6
style edit
indraneelrp Nov 7, 2022
dbc9d81
adding
matthewphua Nov 7, 2022
93ad3e9
Merge pull request #179 from indraneelrp/master
matthewphua Nov 7, 2022
c4abf5e
Merge pull request #180 from matthewphua/branch-parser-tests
naz019 Nov 7, 2022
392c265
updated favourites command
naz019 Nov 7, 2022
8e102ad
fixed checkstyle
naz019 Nov 7, 2022
8a5897e
updated UG
indraneelrp Nov 7, 2022
857b4b5
Merge pull request #181 from naz019/master
indraneelrp Nov 7, 2022
7c7f5df
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
indraneelrp Nov 7, 2022
9b9ad6b
updated sort command
naz019 Nov 7, 2022
1d49c6e
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Nov 7, 2022
4b23e4c
Merge pull request #182 from indraneelrp/master
redders7 Nov 7, 2022
ef6a4b2
fixed checkstyle
naz019 Nov 7, 2022
59e8440
Merge branch 'master' of https://github.com/AY2223S1-CS2113-T18-1b/tp
naz019 Nov 7, 2022
872e4e3
fixed magic number
naz019 Nov 7, 2022
8a471aa
Merge pull request #183 from naz019/master
redders7 Nov 7, 2022
38c23cf
Fixed minor DG error
redders7 Nov 7, 2022
c7873e5
Merge pull request #184 from redders7/master
naz019 Nov 7, 2022
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
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,16 @@
/build/
src/main/resources/docs/

src/main/java/seedu/duke/data/

*.class

*.log

# MacOS custom attributes files created by Finder
.DS_Store
*.iml
bin/

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
data/stored.txt
3 changes: 3 additions & 0 deletions META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: seedu.duke.Duke

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
}
Empty file added data/stored.txt
Empty file.
14 changes: 7 additions & 7 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# About us

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)
| Display | Name | Github Profile | Portfolio |
|-----------------------------------|:-------------------:|:----------------------------------------:|:--------------------------------:|
| ![](imgs/naz019_github_photo.png) | Nazrul Syahmi | [Github](https://github.com/naz019) | [Portfolio](team/naz019.md) |
| ![](imgs/matthewphua.png) | Matthew Phua | [Github](https://github.com/matthewphua) | [Portfolio](team/matthewphua.md) |
| ![](imgs/shaoyong.png) | Ong Shao Yong | [Github](https://github.com/redders7) | [Portfolio](team/redders7.md) |
| ![](imgs/indraneel.png) | Indraneel Paranjape | [Github](https://github.com/indraneelrp) | [Portfolio](team/indraneelrp.md) |

223 changes: 210 additions & 13 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,235 @@
# Developer Guide

## Acknowledgements
## Design & Implementation

### Ui
The `Ui` class handles user input and basic output messages. It can
* Read user input
* Output various messages to the user
When instantiated, the Ui class holds a protected attribute called isExit, which is a flag for whether the conditions for
termination of the program have been met. In other words, this tracks whether the command entered by the user is the
termination command. The functions in the Ui class help greet the user, get continuous input, and print output to the user.

{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}

Choose a reason for hiding this comment

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

Media class is shown as abstract in the UML diagram. However, it is not implemented as an abstract class. Is it supposed to be just shown as 'normal' class in the UML diagram?

![img.png](imgs/UiClass.png)

Choose a reason for hiding this comment

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

Note that this is non-standard UML notation. You can use the info here to change settings for PlantUML: nus-cs2113-AY2122S1/forum#114

image


## Design & implementation
### Storage Class
The `Storage` class handles the storing and retrieval of users' information. The storage class is instantiated with a
filepath and folderpath string, which represents where the stored.txt file will be created in the /data folder.
The Storage class is instantiated in the Duke constructor. The main program of Duke calls the function from the storage class
whose purpose is to check whether a file exists at the specified path and make the file if there is none. The main function
also calls the loadMedia function from the Storage class, which retrieves the past stored data so that it can be mainpulated
by the user.The saved information is then loaded in to the reviewList object which the user maniuplates.
After every command entered by the user, the storage txt file is updated via the function updateFile. Keeping the file updated after every user command ensures minimal data loss in the case of a non-graceful exit of the program. Moreover, the function loadMedia performs some basic checks to ensure that the format of the lineInput being read in is valid. This minimises
ungraceful termination in case of tampering of the text file.

{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
![img.png](imgs/StorageClass.png)

### Media Classes
![img.png](imgs/MovieClass.png)

### Commands
The command component enables users to make changes to their review list. The command word is taken from the first word
of the user input, and is processed through the `Parser` class. The class diagram shows how the Commands parent class is
implemented, as well as its extended classes.
![img.png](imgs/CommandsClass.png)

Choose a reason for hiding this comment

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

image

Might this italicised String execute be a bug?


#### Add
The `add` command enables users to create new movie or TV Show reviews and add them to their review list. The following
is how the `add` command works:
1. The `Parser` class takes in the user input, and parses this by using its `processUserInput` function.
2. If the parsed command word is recognised to be the `add` command, the `executeAdd` function is called.
3. Using the parsed command, `Parser` then determines whether the review to be added is a movie or Tv show. Otherwise, a
DukeException error is thrown.
4. A new variable of type Media parent class, `toAdd`, is then created. The `AddCommand` function is then called to add
the Movie or Tv Show `toAdd` into the review list, `reviewList`.
![img_1.png](imgs/AddCommandSequence.png)

Choose a reason for hiding this comment

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

Consider adding : to signify these as instance of their classes.

image


Choose a reason for hiding this comment

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

Consider breaking up the diagram. If showing the sequence of AddComand, you can concentrate on the sequence that is unique to AddCommand. Reference frames could be useful.

image

Choose a reason for hiding this comment

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

There may be missing/extra lifelines here.

image

image

#### Find
The find command enables users to search for existing reviews that contains a given keyword. This is done through the
following steps:
1. The `Parser` class takes in the user input, and parses this by using its `processUserInput` function.
2. If the parsed command word is recognised to be the `add` command, the `executeFind` function is called and extracts
the keyword to search for from the user input.
3. `Parser` then creates an `executor` object by creating a new `FindCommand`. `Parser` then calls the `execute`
function from `executor` which loops through all reviews in the list and displays those containing the given keyword
using the `toString()` function found in both the `Movie` and `TvShow` subclasses.
![img.png](imgs/FindCommandSequence.png)

#### List
The list command outputs all inputted reviews per category:

1. The list command sequence begins with a `Parser` object.
2. The `Parser` object calls on `executeList` which is responsible for creating a `ListCommand` Object. It then calls on its `execute` method to execute the proper actions.
3. In this `execute` function, it loops through all the stored reviews and separates each review based on category and formats using the proper `toString` method.
4. Finally, an output string is returned and the `Parser` class calls on the `UI` object to print the output to the user.

![img.png](imgs/ListCommandSequence.png)

#### Sort
The sort command sorts reviews based on a given input.

1. The sort command sequence begins with a `Parser` object.
2. The `Parser` object calls on `executeSort` which is responsible for creating a `SortCommand` Object. Then it calls on `SortCommands`'s `execute` method to execute the proper actions.
3. The `execute` method sorts the review list by the given field. When sorting by rating or date, the sorting is done in
reverse order while whereas when sorting by title or genre, the sorting is done in default order.
4. The `execute` function returns the sorted outputted string.
5. Finally, the `Parser` class calls on the `UI` object to print out the output to the user.

![img.png](imgs/sortSequence.png)

#### Remove
When the user wants to delete a specific review from the review list, they will use the following command: "delete
[mediaType] [index]" which triggers the executeDelete() method in Parser. For example, "delete movie 2" will delete the
review at index 2 of movie section of the review list.

1. To check that the command given by the user is valid, the program checks for the condition that the user input
array contains exactly three String objects, failing which a DukeException will be thrown.

2. The program then checks if a valid media type is given i.e. "movie" or "tv", failing which a DukeException will
also be thrown.

3. If the previous conditions are successfully met, a RemoveCommand object is created and its execute() method is
called. This method loops through the review list, first checking whether the review is of the given media type, then
whether the review is at the given index.

4. If both conditions are met, the review is successfully removed from the review list.

5. A string confirming the successful removal of the review is generated and printed for the user.

![img.png](imgs/deleteSequence.png)

#### Clearing the review list

When the user wants to remove every review from the review list, they will use the following command: "clear", which
triggers the executeClear() method in Parser.

1. A ClearCommand object is created and its execute() method is called.

2. The ArrayList method clear() is called on the review list, removing every Media object from the review list.

3. A string confirming the successful clearing of the review list is generated and printed for the user.

![img.png](imgs/clearSequence.png)

### Marking favourite reviews or listing all favourites

The "favourite" command covers two user scenarios:
1) The user wants to mark or unmark a specific review as favourite.
2) The user wants to list all favourites.

**Scenario 1**:
To mark or unmark a review, the user will use the following command: "favourite [type] [index]", which triggers the
executeFavourite() method in Parser. For example, "favourite 3" mark the review at index 3 if it has not been marked as
favourite, or unmark it if it has already been marked as favourite.

Step 1: A FavouriteCommand object is created and its execute() method is called.

Step 2: The program checks that a valid media type is given in the user input i.e. "movie" or "tv" failing which a
DukeException will be thrown.

Step 3: The program then loops through the review list to check whether the review is of the given media type and at
the given index.

Step 4: If the review at the given index has not been marked as favourite, the setFavourite(true) method of the Media
class is called to mark the review as favourite. Conversely, if the review at the given index has already been marked
as favourite, the setFavourite(false) method of the Media class is called to unmark the review as favourite.

Step 5: A string confirming the successful marking or unmarking of the review as favourite is generated and printed for
the user.

**Scenario 2**:
To list all favourites in the review list, the user will use the following command: "favourite list", which triggers
the executeFavourite() command in Parser.

Step 1: A FavouriteCommand object is created and its execute() method is called.

Step 2: The program checks that the user input contains the "list" keyword.

Step 3: The program loops through the review list and checks whether the review has been marked as favourite. If the
review has been marked as favourite, the toString() method of the Media class is called on that review so that the
stringified version of that review can be added to a String object, which will be returned to the Parser.

Step 4: The String object which was returned to the Parser and contains the list of reviews marked as favourite is
printed for the user.

![img.png](imgs/favouriteSequence.png)


## Product scope
### Target user profile

{Describe the target user profile}
myReviews targets individuals who are avid movie or TV show watchers and are proficient in using the command line.

### Value proposition

{Describe the value proposition: what problem does it solve?}
For movie and TV show enthusiasts, using common movie review websites like RottenTomatoes involves navigating past a
lot of irrelevant pages to arrive at a review page. Users who want to submit personal reviews may also have to spend up
to a minute navigating these websites first. Furthermore, there is often no convenient way for users to view and compare
their personal reviews for any form of analysis. Hence, myReviews aims to provide a fast and bloat-free all-in-one
avenue where users can quickly store their personal reviews and view them at a glance.

## 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|
|Version| As a ... | I want to ... | So that I can ... |
|--------|---------|---------------------------------------------------------|----------------------------------------------------------|
|v1.0|user| add movies to a list | keep track of which movies I have watched. |
|v1.0|user| add ratings out of 10 to a movie | remember how much I enjoyed the movie. |
|v1.0|user| remove movies from my list | delete erroneous entries. |
|v1.0|user| list the movies I have added | view what movies I have watched |
|v1.0|user| enter the date I watched the movie | recall when I watched the movie. |
|v2.0|user| arrange my review list by worst or best ratings | see the shows that I like or hate the most. |
|v2.0|user| star/favorite a movie | mark shows that I would like to watch again. |
|v2.0|user| star/favorite a tv show | mark tv shows that I may want to watch again. |
|v2.0|user| see a display of my favourited items | I can quickly refer to the shows I have marked. |
|v2.0|user| be able to save my information after I exit the program | offload it from my mind. |
|v2.0|user| be able to retrieve my last saved list | I do not have to remember it myself. |
|v2.0|user| list the movies I have watched | view what movies I have watched |
|v2.0|user| list the tv shows I have watched | view what tv shows I have watched |
|v2.0|user| search movies using a keyword | to find a specific movie I have watched |
|v2.0|user| search tv show using a keyword | to find a specific tv show I have watched |
|v2.0|user| clear movies that I have watched | to clear my watch history |
|v2.0|user| clear tv shows that I have watched | to clear my watch history |
|v2.0|user| automatically save reviews | load my previously added reviews upon restarting program |



## Non-Functional Requirements

{Give non-functional requirements}
1. Performance: The program should respond within 2 seconds of user input.
2. Quality: With guidance by the user guide, a new user should be able to navigate the program.
3. Technical: The program should work with all environments that load the program with Java 11.
4. Project Scope: The program is only required to handle reviews for movies and tv shows.

## Glossary

* *glossary item* - Definition
* *review* - The user's appraisal of a movie or TV show, reflected in a rating.

## 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}
Set Up:
1. Ensure that you have Java 11 or above installed.
2. Download the latest version of `myReviews` from [here](https://github.com/AY2223S1-CS2113-T18-1b/tp/releases).
3. Copy the jar file into the folder you want to store your reviews.
4. Open terminal application and change directory to the above folder.
5. Run the jar file by entering java -jar myReviews.jar into the terminal.

Testing:
1. myReviews will display a greeting message. Enter a command and press Enter to execute it.
2. Add a Movie or TvShow:

`add /movie <title> /rating <rating> /date <dateWatched> /genre <genre>`

`add /tv <title> /rating <rating> /date <dateWatched> /genre <genre> /site <location>`
3. Input additional commands for testing
(refer to user guide for command parameters):
1. `list`
2. `sort`
3. `favourite`
4. `favourite list`
5. `find`
6. `delete`
7. `clear`




14 changes: 12 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
# Duke
# myReviews

{Give product intro here}
myReviews is a movie review application allowing you to keep track of movies you have watched. With various commands at your
disposal and the ability to store your review list, it has never been easier to keep track of all the movies you have
watched!

The main features of myReviews include:
- Tracking watched movies and TV shows with ratings attached
- Gain insight into your movie preferences by sorting according to rating, category and more!
- Mark the movies and TV shows that you consider your favourites!

myReviews is optimized for use via a Command Line Interface (CLI). If you can type fast, look no further for your perfect,
one-stop movie review companion.

Useful links:
* [User Guide](UserGuide.md)
Expand Down
72 changes: 72 additions & 0 deletions docs/UML Diagrams/CommandsClass.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
@startuml
!include style.puml

class "{abstract} \nCommands" {
String execute()
}
hide "{abstract} \nCommands" fields

class AddCommand {
+media: Media
+AddCommand(reviews: ReviewList, media: Media)
}

class ClearCommand {
+ClearCommand(reviews: ReviewList)
}
hide ClearCommand fields

class FavouriteCommand {
+userInput: String[]
+FavouriteCommand(reviews: ReviewList, userInput: String[])
}

class FindCommand {
-outputString: String
-movieString: String
-tvShowString: String
-listDelimiter: String
#searchTerm: String
+FindCommand(reviews: ReviewList, searchTerm: String)
}

class ListCommand {
-outputString: String
-movieString: String
-tvShowString: String
-listDelimiter: String
+ListCommand((reviews: ReviewList)
}

class RemoveCommand {
+index: int
+RemoveCommand(reviews: ReviewList, index: int)
}

class SortCommand {
+userInput: String[]
+SortCommand(reviews: ReviewList, userInput: String[])
}

class ReviewList {
+inputs: ArrayList<Media>
+void add(media: Media)
+void remove(index: int)
+String toString()
}

"{abstract} \nCommands" -up-> "1" ReviewList : > uses

skinparam groupInheritance 1

"{abstract} \nCommands" <|-right- AddCommand
"{abstract} \nCommands" <|-right- ClearCommand
"{abstract} \nCommands" <|-- FavouriteCommand

"{abstract} \nCommands" <|-- FindCommand
"{abstract} \nCommands" <|-- ListCommand
"{abstract} \nCommands" <|-left- RemoveCommand
"{abstract} \nCommands" <|-left- SortCommand


@enduml
Loading