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-T13-2] Timetable Comparer #39

Open
wants to merge 294 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
294 commits
Select commit Hold shift + click to select a range
ef89eb0
Merge pull request #26 from z-wenqing/master
z-wenqing Mar 18, 2024
160ffcb
Remove redundant imports and fix indentations
wwwwqing Mar 18, 2024
e3415aa
Merge pull request #27 from z-wenqing/master
z-wenqing Mar 18, 2024
6c30e11
Add newline at end of file
wwwwqing Mar 18, 2024
30381a5
Merge pull request #28 from z-wenqing/master
z-wenqing Mar 18, 2024
7f0f002
Fix ifelse format issue
wwwwqing Mar 18, 2024
19fc5b4
Merge pull request #29 from z-wenqing/master
z-wenqing Mar 18, 2024
0b2d8e3
Fix testinvalidcommand
wwwwqing Mar 18, 2024
bd46535
Merge pull request #30 from z-wenqing/master
z-wenqing Mar 18, 2024
11d6364
Fix testinvalid command
wwwwqing Mar 18, 2024
450a5e6
Fix testinvalid command
wwwwqing Mar 18, 2024
b441343
Fix testinvalidcommand
wwwwqing Mar 18, 2024
62984a2
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
Leong-ZM Mar 19, 2024
9168655
Refactored Timetable object into a HashMap.
john-nng Mar 19, 2024
bfdc3bb
Finished comparison timetable method, working on parsing functionality.
john-nng Mar 20, 2024
f45aad6
Implemented Parser functionality and added command error handling.
john-nng Mar 20, 2024
ad3b396
Merge pull request #34 from john-nng/master
john-nng Mar 20, 2024
476e2e2
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
wwwwqing Mar 20, 2024
25336fe
Allow inputs of the time in the format of both "09:00" and "9:00"
wwwwqing Mar 20, 2024
28fe701
Merge pull request #35 from z-wenqing/master
z-wenqing Mar 20, 2024
00473c0
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
Leong-ZM Mar 20, 2024
bf21be6
Clean up code, add help command
Leong-ZM Mar 20, 2024
448bfd6
Merge pull request #36 from Leong-ZM/master
Leong-ZM Mar 20, 2024
90bde4e
add test addTask
wwwwqing Mar 20, 2024
1c8fdaa
Merge pull request #37 from z-wenqing/Task
z-wenqing Mar 20, 2024
e239cb1
Clean up code
wwwwqing Mar 20, 2024
4fe8197
Merge pull request #38 from z-wenqing/Task
z-wenqing Mar 20, 2024
c5b811a
Jar
ZhuSijia0711 Mar 20, 2024
757b5ee
Merge pull request #39 from ZhuSijia0711/master
ZhuSijia0711 Mar 20, 2024
95f6566
edit for jar
ZhuSijia0711 Mar 20, 2024
d3b22c7
Merge pull request #40 from ZhuSijia0711/master
ZhuSijia0711 Mar 20, 2024
3623593
Add some java doc and add index of tasks when displaying timetable
wwwwqing Mar 21, 2024
70d97e2
Merge branch 'master' into master
z-wenqing Mar 21, 2024
a966310
Merge pull request #41 from z-wenqing/master
z-wenqing Mar 21, 2024
266719d
Add flexibility to the task
ZhuSijia0711 Mar 21, 2024
79244dc
Merge pull request #48 from ZhuSijia0711/master
ZhuSijia0711 Mar 21, 2024
7b86a66
Solve line too long problem
ZhuSijia0711 Mar 21, 2024
1a281a2
Merge pull request #49 from ZhuSijia0711/master
ZhuSijia0711 Mar 21, 2024
798aa34
change timetable add task method according to changed parameter in ta…
ZhuSijia0711 Mar 21, 2024
c00e0e2
Merge pull request #50 from ZhuSijia0711/master
ZhuSijia0711 Mar 21, 2024
f2ce7cf
Add method to change timing of flexible task
ZhuSijia0711 Mar 21, 2024
04e94da
Merge pull request #51 from ZhuSijia0711/master
ZhuSijia0711 Mar 21, 2024
b680681
Add method of change type of tasks
ZhuSijia0711 Mar 21, 2024
d2cb16f
Merge pull request #52 from ZhuSijia0711/master
ZhuSijia0711 Mar 21, 2024
6cd21e1
Add addTaskForAll function to add a confirmed event to all users' tim…
wwwwqing Mar 21, 2024
9113e94
Merge branch 'master' into master
z-wenqing Mar 21, 2024
2d70c54
Merge pull request #53 from z-wenqing/master
z-wenqing Mar 21, 2024
81a7ce2
Add show confirmed events method
wwwwqing Mar 21, 2024
ab0d0c8
Merge pull request #54 from z-wenqing/master
z-wenqing Mar 21, 2024
ecac00f
Remove redundant function
wwwwqing Mar 21, 2024
d4d2ecd
Add assertions
wwwwqing Mar 22, 2024
be36cb5
Merge pull request #56 from z-wenqing/master
z-wenqing Mar 22, 2024
fe55614
Add addRepeatTask function
ZhuSijia0711 Mar 22, 2024
40a06f8
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
Leong-ZM Mar 23, 2024
8d3f143
Add compare all
Leong-ZM Mar 23, 2024
1a926a1
Merge pull request #58 from Leong-ZM/master
Leong-ZM Mar 23, 2024
33fcd47
Merge branch 'master' into master
Leong-ZM Mar 23, 2024
da98897
Merge pull request #57 from ZhuSijia0711/master
Leong-ZM Mar 23, 2024
643204f
Add Junit test to timetable class and inputInvalidator test
ZhuSijia0711 Mar 23, 2024
4f54de2
Merge pull request #59 from ZhuSijia0711/master
ZhuSijia0711 Mar 23, 2024
f6158d4
Add assert into te changeFlexibleTaskTiming
ZhuSijia0711 Mar 23, 2024
3a43fe2
Merge pull request #60 from ZhuSijia0711/master
ZhuSijia0711 Mar 23, 2024
aa88c0f
Add Storage class and functions
z-wenqing Mar 24, 2024
5848b52
Merge branch 'master' into Wenqing-Storage
z-wenqing Mar 24, 2024
cc678c2
Merge pull request #61 from z-wenqing/Wenqing-Storage
z-wenqing Mar 24, 2024
8b955ac
Clean up code
Leong-ZM Mar 26, 2024
4f78376
Add parser tests
Leong-ZM Mar 26, 2024
bd27819
Merge pull request #62 from Leong-ZM/master
Leong-ZM Mar 26, 2024
80f87d8
edit developer guide on changeTaskTiming in parse class with uml diagram
ZhuSijia0711 Mar 28, 2024
4ee3fa4
Merge pull request #63 from ZhuSijia0711/master
ZhuSijia0711 Mar 28, 2024
c368035
Add sequence diagram of parser class
ZhuSijia0711 Mar 28, 2024
7df8569
Merge pull request #64 from ZhuSijia0711/master
ZhuSijia0711 Mar 28, 2024
194e3ec
Add storage feature in DG
z-wenqing Mar 28, 2024
f5d7024
Merge branch 'master' into Wenqing-StorageDG
z-wenqing Mar 28, 2024
9d9169b
Merge pull request #65 from z-wenqing/Wenqing-StorageDG
z-wenqing Mar 28, 2024
608aed7
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
Leong-ZM Mar 29, 2024
a158be3
Add next command, more parser tests
Leong-ZM Mar 30, 2024
b2461e4
Merge pull request #70 from Leong-ZM/master
Leong-ZM Mar 30, 2024
587bf37
working on inputValidator
john-nng Mar 23, 2024
4ab771e
Fixed InputValidator for addforall command. Added Unit test for Input…
john-nng Apr 1, 2024
899ea6f
made UI for compare and view commands less cluttered to look at.
john-nng Apr 1, 2024
35e94f0
Merge pull request #71 from john-nng/master
john-nng Apr 1, 2024
9656609
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
Leong-ZM Apr 2, 2024
6a09dd5
ADD USER GUIDE
ZhuSijia0711 Apr 2, 2024
4c1431f
update
ZhuSijia0711 Apr 2, 2024
c1f6ab5
push
ZhuSijia0711 Apr 2, 2024
d3c0789
Add UML diagram for next command, rename Duke to Main
Leong-ZM Apr 2, 2024
e5788c5
Merge pull request #72 from Leong-ZM/master
Leong-ZM Apr 2, 2024
0319f77
1. add a new method which serves to add a task with duplication check…
ZhuSijia0711 Apr 2, 2024
d7300e2
Merge branch 'master' into master
ZhuSijia0711 Apr 2, 2024
36dfbe0
Merge pull request #73 from ZhuSijia0711/master
ZhuSijia0711 Apr 2, 2024
9d7de11
add exception such that addtask is not allowed to be called when user…
z-wenqing Apr 2, 2024
97862f5
change addforall function such that it does not require a type parame…
z-wenqing Apr 2, 2024
6cfac07
Remove magic numbers
z-wenqing Apr 2, 2024
ba7c4e4
Bug fix for storage
z-wenqing Apr 2, 2024
817d5a6
Merge pull request #74 from z-wenqing/master
z-wenqing Apr 2, 2024
e0611a7
add a method to view today's tasks
ZhuSijia0711 Apr 2, 2024
2e27f4d
Merge branch 'master' of https://github.com/ZhuSijia0711/tp
ZhuSijia0711 Apr 2, 2024
862ef0a
Merge pull request #75 from ZhuSijia0711/master
ZhuSijia0711 Apr 2, 2024
ed1d1e2
Add method to check if a task the user wants to add clashes with task…
z-wenqing Apr 2, 2024
6d5356c
Merge pull request #76 from z-wenqing/Wenqing_checkclash
z-wenqing Apr 2, 2024
f65e95a
Update User guide
z-wenqing Apr 2, 2024
1ce4aa5
Update UG
z-wenqing Apr 2, 2024
139d66c
Merge branch 'master' into Wenqing_checkclash
z-wenqing Apr 2, 2024
5f51347
Merge pull request #77 from z-wenqing/Wenqing_checkclash
z-wenqing Apr 2, 2024
cb23ae0
Add test for storage
z-wenqing Apr 4, 2024
46d8bca
Merge pull request #78 from z-wenqing/Wenqing_StorageTest
z-wenqing Apr 4, 2024
12f57c8
clean up code on indentation error
ZhuSijia0711 Apr 4, 2024
d9e445a
Merge pull request #80 from ZhuSijia0711/master
ZhuSijia0711 Apr 4, 2024
9dbe139
Update UserGuide.md
john-nng Apr 5, 2024
65c01a9
Added Table of Contents to UserGuide.md
john-nng Apr 5, 2024
47db8ea
Fix issues in regards to UserGuide.md
john-nng Apr 6, 2024
3b0a088
Clean up files
Leong-ZM Apr 7, 2024
b3ace78
Fixed issue: [PE-D][Tester A] Using CAPS for dates will return a unkn…
Leong-ZM Apr 7, 2024
6d73ef5
Fixed issue: [PE-D][Tester D] Inconsistent formatting of days for tas…
Leong-ZM Apr 7, 2024
1a9448e
Revert "Fixed issue: [PE-D][Tester D] Inconsistent formatting of days…
Leong-ZM Apr 7, 2024
2a9b50a
Fixed issue: [PE-D][Tester D] Inconsistent formatting of days for tas…
Leong-ZM Apr 7, 2024
2a0e85f
Merge pull request #104 from Leong-ZM/master
Leong-ZM Apr 7, 2024
74ce604
Fixed issue: [PE-D][Tester C] Exception message is not self-generated
Leong-ZM Apr 7, 2024
c04c644
Merge pull request #105 from Leong-ZM/master
Leong-ZM Apr 7, 2024
1204eb8
Fix test
z-wenqing Apr 7, 2024
8c62056
Merge branch 'master' into Wenqing_StorageTest
z-wenqing Apr 7, 2024
dd2fb7e
Merge pull request #106 from z-wenqing/Wenqing_StorageTest
z-wenqing Apr 7, 2024
dc31f1c
Fix addforall bugs
z-wenqing Apr 7, 2024
c5e485d
Merge pull request #107 from z-wenqing/master
z-wenqing Apr 7, 2024
476a247
Fixed issue: [PE-D][Tester D] Inputting correct user for compare comm…
Leong-ZM Apr 9, 2024
b7df7c6
Merge pull request #108 from Leong-ZM/master
Leong-ZM Apr 9, 2024
095f5fc
FIx test
z-wenqing Apr 9, 2024
1bd9140
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
z-wenqing Apr 9, 2024
6aec41b
Fixed issue: [PE-D][Tester C] addrepeattask does not support upper ca…
Leong-ZM Apr 9, 2024
721859b
Merge pull request #109 from Leong-ZM/master
Leong-ZM Apr 9, 2024
e87f238
Clean up code
z-wenqing Apr 9, 2024
8bab691
Change indentation
z-wenqing Apr 9, 2024
3d3fa9b
Add test_data
z-wenqing Apr 9, 2024
3cfae32
fix error
z-wenqing Apr 9, 2024
17a9fe3
Update class
z-wenqing Apr 9, 2024
e2c142b
Change expected.txt
z-wenqing Apr 9, 2024
17371f8
Update expected.txt
z-wenqing Apr 9, 2024
b943f7d
remove unused imports
z-wenqing Apr 9, 2024
c406d0e
Update expected.txt
z-wenqing Apr 9, 2024
374cdf6
Add newline at the end of expected.txt
z-wenqing Apr 9, 2024
d430fdd
Update expected.txt to match with actual output
z-wenqing Apr 9, 2024
f93fd8a
Add a new exception such that less than 2 input days will be detected
ZhuSijia0711 Apr 9, 2024
87c1bf9
Merge pull request #111 from ZhuSijia0711/master
ZhuSijia0711 Apr 9, 2024
f9e50fc
Update runtest.bat to trim both expected and actual output
z-wenqing Apr 9, 2024
db022be
Trim expected and actual output
z-wenqing Apr 9, 2024
ff00609
solve issue on todaytask
ZhuSijia0711 Apr 9, 2024
3f77b12
Merge pull request #112 from ZhuSijia0711/master
ZhuSijia0711 Apr 9, 2024
4ba3ae1
Update runtest.sh to trim expected and actual outcome
z-wenqing Apr 9, 2024
95a50bf
Update days to be public
z-wenqing Apr 9, 2024
707441e
Merge branch 'master' into master
z-wenqing Apr 9, 2024
7fe8c96
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
z-wenqing Apr 9, 2024
59b7531
Merge branch 'master' of https://github.com/z-wenqing/tp
z-wenqing Apr 9, 2024
f99a4b8
Update order
z-wenqing Apr 9, 2024
55c4ba2
Update order
z-wenqing Apr 9, 2024
57bd5f0
Clean up code
z-wenqing Apr 9, 2024
c18dccd
update runtest.sh
z-wenqing Apr 9, 2024
ae5fcc4
Update runtest.sh
z-wenqing Apr 9, 2024
4776c71
Merge pull request #110 from z-wenqing/master
z-wenqing Apr 9, 2024
0b4df7d
PPP
ZhuSijia0711 Apr 9, 2024
a7acf32
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
ZhuSijia0711 Apr 9, 2024
b9640ad
Add addfor method
z-wenqing Apr 9, 2024
e327b0f
Merge pull request #113 from z-wenqing/Wenqing_addfor
z-wenqing Apr 9, 2024
ae0642f
Update runtest.sh
z-wenqing Apr 9, 2024
6b496e3
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
ZhuSijia0711 Apr 9, 2024
322318b
Fix variable declaration order and indentation
z-wenqing Apr 9, 2024
f4b5a47
fix variable declaration order
z-wenqing Apr 9, 2024
9b01325
Merge pull request #114 from z-wenqing/Wenqing_addfor
z-wenqing Apr 9, 2024
2dac250
add method on urgent
ZhuSijia0711 Apr 10, 2024
21f0a74
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
ZhuSijia0711 Apr 10, 2024
17be789
add method on find urgent task in next few hours in a day
ZhuSijia0711 Apr 10, 2024
fc34007
Fix issues to pass checkstyle gradle test
ZhuSijia0711 Apr 10, 2024
d39494b
Merge pull request #115 from ZhuSijia0711/master
ZhuSijia0711 Apr 10, 2024
5d8b2f3
Fixed issue where the same user can be readded
Leong-ZM Apr 10, 2024
ae96cfa
Merge pull request #116 from Leong-ZM/master
Leong-ZM Apr 10, 2024
e2a8ab8
1.Fixed repeattask partial task description error. 2.Fixed Compareall…
john-nng Apr 10, 2024
541955c
Merge pull request #117 from john-nng/master
john-nng Apr 10, 2024
b5974cd
Updated help command
john-nng Apr 10, 2024
44c8e26
Merge branch 'AY2324S2-CS2113-T13-2:master' into master
john-nng Apr 10, 2024
de80b93
Merge pull request #118 from john-nng/master
john-nng Apr 10, 2024
0ec7133
Fixed gradle check
john-nng Apr 10, 2024
4115dda
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
john-nng Apr 10, 2024
5c99c67
Fixing ui test
john-nng Apr 10, 2024
ee68d5e
Updated EXPECTED.TXT sh test script
john-nng Apr 10, 2024
dc1f47b
Merge pull request #119 from john-nng/master
john-nng Apr 10, 2024
b2950b5
Working on PPP
john-nng Apr 10, 2024
ae4bda6
Update john-nng.md
john-nng Apr 11, 2024
0c69f8f
Added more testing for InputValidatorTest.
john-nng Apr 11, 2024
8b4733b
Fixing gradle check for InputValidatorTest.
john-nng Apr 11, 2024
e9c5d00
Merge pull request #120 from john-nng/master
john-nng Apr 11, 2024
a336551
Update john-nng.md
john-nng Apr 11, 2024
11cb304
Add Leong-ZM PPP
Leong-ZM Apr 11, 2024
bfadc22
Merge pull request #121 from Leong-ZM/master
Leong-ZM Apr 11, 2024
f5d23ae
Add PPP
z-wenqing Apr 11, 2024
d4857b1
Add PPP
z-wenqing Apr 11, 2024
1746671
Merge pull request #122 from z-wenqing/master
z-wenqing Apr 11, 2024
ea2ac6a
Update john-nng.md
john-nng Apr 13, 2024
db55a58
Update john-nng.md
john-nng Apr 13, 2024
fb1c798
Rename PPP
Leong-ZM Apr 14, 2024
72c6098
Merge pull request #123 from Leong-ZM/master
Leong-ZM Apr 14, 2024
66c6d45
Fix bug
z-wenqing Apr 14, 2024
dcc4a12
Shorten line
z-wenqing Apr 14, 2024
b728fe4
Fix indentation error
z-wenqing Apr 14, 2024
5c34d24
Merge pull request #124 from z-wenqing/master
z-wenqing Apr 14, 2024
49010b1
Update Storage UML
z-wenqing Apr 15, 2024
a184547
Merge pull request #125 from z-wenqing/master
z-wenqing Apr 15, 2024
0337453
Update developer guide
Leong-ZM Apr 15, 2024
1ee7f8f
Merge pull request #126 from Leong-ZM/master
Leong-ZM Apr 15, 2024
afc1f42
Fixing DG diagrams
john-nng Apr 15, 2024
0e30329
Merge branch 'AY2324S2-CS2113-T13-2:master' into master
john-nng Apr 15, 2024
914d7e5
Merge pull request #127 from john-nng/master
john-nng Apr 15, 2024
002209e
debug on urgent function
ZhuSijia0711 Apr 15, 2024
960e6ba
Clean up template
Leong-ZM Apr 15, 2024
c7ec603
Merge pull request #128 from Leong-ZM/master
Leong-ZM Apr 15, 2024
84491b1
Add java doc
z-wenqing Apr 15, 2024
6662ef1
Merge pull request #130 from z-wenqing/master
z-wenqing Apr 15, 2024
7baf6de
Merge branch 'master' into master
ZhuSijia0711 Apr 15, 2024
b23b62e
Merge pull request #129 from ZhuSijia0711/master
ZhuSijia0711 Apr 15, 2024
850e78d
Updated changeTaskTiming Sequence Diagram.
john-nng Apr 15, 2024
f1fd8fb
Merge branch 'AY2324S2-CS2113-T13-2:master' into master
john-nng Apr 15, 2024
30800d1
Update help command
Leong-ZM Apr 15, 2024
cf778ee
Merge pull request #132 from Leong-ZM/master
Leong-ZM Apr 15, 2024
e57e262
Merge branch 'AY2324S2-CS2113-T13-2:master' into master
john-nng Apr 15, 2024
897a154
Fix DAYS error
z-wenqing Apr 15, 2024
31d1269
delete unused java.util.map
ZhuSijia0711 Apr 15, 2024
2827a8d
update on user guide
ZhuSijia0711 Apr 15, 2024
da3acb8
Merge branch 'master' of https://github.com/ZhuSijia0711/tp
ZhuSijia0711 Apr 15, 2024
1ec77a1
update on my PPP
ZhuSijia0711 Apr 15, 2024
0655c35
Merge pull request #135 from ZhuSijia0711/master
ZhuSijia0711 Apr 15, 2024
35e33cb
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
z-wenqing Apr 15, 2024
0520a76
Merge pull request #133 from z-wenqing/master
z-wenqing Apr 15, 2024
6432c42
Update test
Leong-ZM Apr 15, 2024
2e0183e
update test
Leong-ZM Apr 15, 2024
3b0640c
Merge pull request #136 from Leong-ZM/master
Leong-ZM Apr 15, 2024
9afa228
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
john-nng Apr 15, 2024
d3374f8
Update UG
z-wenqing Apr 15, 2024
19ecf80
Merge pull request #134 from john-nng/master
john-nng Apr 15, 2024
29cb5da
add urgent in command summary
ZhuSijia0711 Apr 15, 2024
6bab4bd
Update UG
z-wenqing Apr 15, 2024
8b31d84
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-2/tp
ZhuSijia0711 Apr 15, 2024
45c1dd5
Merge pull request #137 from z-wenqing/master
z-wenqing Apr 15, 2024
9dd9cd5
update on user guide
ZhuSijia0711 Apr 15, 2024
319f850
Merge branch 'master' into master
ZhuSijia0711 Apr 15, 2024
ad7dc50
Merge pull request #138 from ZhuSijia0711/master
ZhuSijia0711 Apr 15, 2024
41fdccc
Update DG
z-wenqing Apr 15, 2024
e69d14b
Merge pull request #139 from z-wenqing/master
z-wenqing Apr 15, 2024
4dcf6e5
Add storage png
z-wenqing Apr 15, 2024
d213497
Merge pull request #140 from z-wenqing/master
z-wenqing Apr 15, 2024
f3a0af5
Update DeveloperGuide.md
john-nng Apr 15, 2024
9e792ca
Update README.md
ZhuSijia0711 Apr 15, 2024
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
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.Main

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Duke project template
# Timetable Comparer

This is a project template for a greenfield Java project. It's named after the Java mascot _Duke_. Given below are instructions on how to use it.

Expand All @@ -20,7 +20,7 @@ Prerequisites: JDK 11 (use the exact version), update Intellij to the most recen
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
|____/ \__,_|_|\_\___

What is your name?
```
Expand Down
4 changes: 3 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,11 @@ test {
showStackTraces true
showStandardStreams = false
}

}

application {
mainClass.set("seedu.duke.Duke")
mainClass.set("seedu.duke.Main")
}

shadowJar {
Expand All @@ -43,4 +44,5 @@ checkstyle {

run{
standardInput = System.in
enableAssertions = true
}
13 changes: 6 additions & 7 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# 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
--------|:--------------:|:--------------:|:---------:
![](https://via.placeholder.com/100.png?text=Photo) | Leong Zhe Ming | [Github](https://github.com/Leong-ZM) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Zhang Wenqing | [Github](https://github.com/z-wenqing) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Zhu Sijia | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | John Nguyen | [Github](https://github.com/john-nng) | [Portfolio](docs/team/johndoe.md)
38 changes: 38 additions & 0 deletions docs/AddUserTaskSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
@startuml
title changeTaskTiming Sequence Diagram

participant ":Parser" as Caller
participant ":changeTaskTiming" as Method
participant ":changeFlexibleTaskTiming" as FlexibleMethod
participant ":InputValidator" as InputValidator
participant ":UserList" as UserList
participant ":User" as User
participant ":Timetable" as Timetable

Caller -> Method: changeTaskTiming(command, userList)
activate Method
Method -> InputValidator: validateChangeTaskTiming(command)
activate InputValidator
Method -> InputValidator: command.split("\\s+")
Method <-- InputValidator: parts[]
Method -> InputValidator: Arrays.asList(parts)
Method <-- InputValidator: wordList[]
Method -> InputValidator: parts[2]
Method -> InputValidator: parts[wordList.indexOf("/index") + 1]
Method -> InputValidator: parts[wordList.indexOf("/from") + 1]
Method -> InputValidator: parts[wordList.indexOf("/to") + 1]
Method -> InputValidator: validateDay(day)
deactivate InputValidator
Method -> UserList: userList.getActiveUser()
Method <-- UserList: activeUser
Method -> User: activeUser.getTimetable()
activate User
Method <-- User: timetable
Method -> FlexibleMethod: timetable.changeFlexibleTaskTiming(day, index - 1, newStartTime, newEndTime)
activate FlexibleMethod
FlexibleMethod <-- Timetable: successful change
deactivate FlexibleMethod
deactivate User
deactivate Method

@enduml
139 changes: 126 additions & 13 deletions docs/DeveloperGuide.md
Copy link

Choose a reason for hiding this comment

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

Can improve the DG by reordering and gathering the same components and putting them in the same section of the DG

Original file line number Diff line number Diff line change
@@ -1,38 +1,151 @@
# Developer Guide

## Acknowledgements
## Design & implementation

{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}
### Save timetable function
The saving timetable mechanism is facilitated by the Storage class. It implements the following operations:
* `Storage#createFolder()`: Creates a folder in the directory where all the users' timetable will be stored in the local computer.
* `Storage#addExistingUsers()`: Loops through the folder to add all previous saved users upon opening the app, as well as their corresponding tasks.
* `Storage#addUserInFolder(User user)`: When a new user is added, a file with the name of the user will be created in the folder.
* `Storage#writeTaskInFile(User user)`: when a new task of a specific user is added, it will be written into the correct file.

## Design & implementation
The following sequence diagram shows how the operations in the Storage class goes through when the app is opened and it loads data from history:
![Storage UML](diagram%2FStorageUML.png)


## Parser Component

Choose a reason for hiding this comment

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

Should these sections (Parser Component, Timetable Component and Next Command) be under the Design & Implementation sections instead of under the Instructions for manual testing section?


Here is a general guide of how Parse Class looks like in sequence diagram.

Choose a reason for hiding this comment

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

I suppose this should be "Parser Class" instead? Considering the file is Parser.java (although the png file is Parse.png)


![Parse.png](diagram%2FParse.png)

Choose a reason for hiding this comment

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

image

Consider updating this portion. InputValidator doesn't seem to call changeTaskType. (based on what I gleaned from reading the codebase, but I may stand corrected on this!). Additionally the return arrow of the Timetable activation bar should point back to inputValidator.

Nevertheless, a very detailed sequence diagram. Good use of the note to add relevant information. 👍


Here is a class diagram for the method changeTaskTiming method in Parser Class.

![changeTaskTimingClassDiagram.png](diagram%2FchangeTaskTimingClassDiagram.png)

Choose a reason for hiding this comment

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

Consider adding an explanation and the purpose of this class diagram to improve readability.

Choose a reason for hiding this comment

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

Should the (C) logo be in the class diagrams? Do include hide circle in the puml file to disable it :)


The following sequence diagram of changeTaskTiming shows the interactions with other objects.

![changeTaskTiming_Sequence_Diagram.png](diagram%2FchangeTaskTiming_Sequence_Diagram.png)

Choose a reason for hiding this comment

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

Good sequence diagram with explanations below. Consider the following improvements:

  • Adding an activation bar to UserList, Timetable
  • Adding the relevant return arrow (if necessary)
  • Since there are explanations below, it would be nice to "tag" the index in the description above the arrow. eg. 1. changeTaskTiming(command, userList) , which would match to bullet point 1 in the explanation section below.

Choose a reason for hiding this comment

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

image

The return arrow seems to have been generated by the wrong class. Can consider checking if there is a mistake there.

Choose a reason for hiding this comment

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

Should the return arrow stem from the User class instead?


Here is how this method works:

1. The Parser calls the changeTaskTiming method with a command and the UserList. It calls InputValidator.

2. The InputValidator validates the command, ensuring that it meets the required format in days and index.

3. If validation is successful, the User calls the timetable and calls its changeFlexibleTaskTiming method with the specified parameters.

4. The Timetable updates the timing of the flexible task.

5. If successful, the InputValidator sends a success message back to the Parser. Otherwise, it throws a RuntimeException.

## Timetable Component
Copy link

Choose a reason for hiding this comment

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

May be good to include the design considerations the team had in mind when implementing the Timetable component.

Here is a sequence diagram of changeTaskType method in Timetable class. It shows the interactions with other objects.
![changeTaskType.png](diagram%2FchangeTaskType.png)
Copy link

Choose a reason for hiding this comment

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

Good attempt on the sequence diagram. However if I am not mistaken for method capitalizeDay(), getTasks(), a self invocation should be drawn as such

image


Here is how this method works:

Choose a reason for hiding this comment

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

Good breakdown of the changeTaskType method. However, should there be the other methods of the Timetable class?

1. The sequence starts with the Parser sending a request to the Timetable to change the type of a task.

2. The Timetable activates and processes the changeTaskType method.

3. Within the Timetable, the dayOfWeek parameter is capitalized to ensure consistency.

4. The Timetable calls the list of tasks associated with the specified day (dayOfWeek). It activates the Task object to fetch the task at the specified index (index).

{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
5. The Task object modifies the type of the task to the new type specified by the Parser.

6. Finally, the modified task or any relevant status information is returned to the Parser.

## Next Command

Choose a reason for hiding this comment

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

Good description of proposed implementation, with a detailed sequence diagram. 👍


Proposed implementation

The next command displays the next task of the current user based on the current time. Given below is how it works.

Step 1: The user launches the application, creates a user, and creates several tasks for the user.

Step 2: The user types the command 'next' to see their next task.

Step 3: The next command is triggered. It first determines the current day and takes the arraylist of tasks of the user's timetable on that day.

Step 4: It then loops through the tasks on that day, starting from the back (the later tasks), until the task's start time is before the current time.

Step 5: It displays the last task it looped though, or a special message if there is no task that day.

![NextCommand UML](diagram%2FNextCommand.png)

# Appendix: Project Requirements
## Product scope
### Target user profile

{Describe the target user profile}
People who
* have busy timetables
* wish to be able to compare theirs with their friends' easily
* prefer desktop apps over other types
* can type fast
* prefer typing to mouse interactions
* are reasonably comfortable using CLI apps

### Value proposition

{Describe the value proposition: what problem does it solve?}
The app can store multiple timetables and easily display and compare them automatically, saving the time and effort of doing so by hand.

## 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 | new user | see usage instructions | refer to them when I forget how to use the application |
| | user | add a new user | store my timetable |
| | user | switch users | interact with my own timetable |
| | user | add a task | |
| | user | compare two timetables | see the common time between them |
| v2.0 | user | find a to-do item by name | locate a to-do without having to go through the entire list |
| | user | specify task importance | remember if a task is important or not |
| | user | compare all timetables | view a summarized timetable comprising of all current timetables |


## Non-Functional Requirements

{Give non-functional requirements}
1. Should work on any mainstream OS (Windows, Linux, Unix, MacOS) as long as it has Java 11 or above installed.
2. Should be able to hold up to 10 persons without a noticeable sluggishness in performance for typical usage.
3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.

## Glossary

* *glossary item* - Definition
* **User** - A person using this app.
* **Timetable** - A number of tasks belonging to a specific user.
* **Task** - An event in a timetable, with a description, start time, end time, and type.

## 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}
Given below are instructions to test the app manually.

### Launch and Shutdown

1. Initial launch

Download the jar file and copy into an empty folder. Double-click the jar file. Expected: Shows the GUI with a list of commands. The window size may not be optimum; adjust it as necessary.

2. Shutdown

Enter 'bye'. The app should close and all current data should be saved in a data folder.

### Add user

Prerequisites: None

* Valid command: `adduser User1`. Expected: Confirmation that user was added.
* Invalid command: `adduser`. Expected: Error message shown.
* Invalid command: `adduser User1`, where User1 already exists. Expected: Error message shown.

### Add task

Prerequisites: At least one user has been added

* Valid command: `addtask /on Monday /task test1 /from 9:00 /to 11:00 /type f`. Expected: Confirmation that task was added.
* Invalid commands. Expected: Error message shown detailing expected format.
* `addtask /on Monday`
* `addtask /on Monday /task description`
* `addtask /on Monday /task description /from 09:00 /to 11:00`
* `addtask Monday description 09:00 11:00`
* `addtask /on MONDAY /task description /from 09:00 /to 11:00`
43 changes: 43 additions & 0 deletions docs/NextCommand.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
@startuml
autonumber

participant ":Main" as Main
participant ":Parser" as Parser
participant ":DayOfWeek" as DayOfWeek
participant ":Timetable" as Timetable
participant ":UI" as UI


Main -> Parser: (parseCommand("next", userList))
activate Parser
DayOfWeek -> Parser: dayOfWeek
Parser -> Parser: capitalizeDay(dayOfWeek)
activate Parser
Parser --> Parser: result
deactivate Parser

Parser -> Timetable: getWeeklyTasks(dayOfWeek)
activate Timetable
Timetable --> Parser: tasksOfDay
deactivate Timetable
Parser -> Parser: tasksOfDay.size()
activate Parser
Parser --> Parser: result
deactivate Parser

alt numOfTasks == 0
Parser -> UI: printNoTasks()
activate UI
UI --> Main: display no text
deactivate UI
else
loop numOfTasks
alt currentTime < task.startTime
Parser -> UI: nextTask()
activate UI

deactivate UI
end
end
end
@enduml
43 changes: 43 additions & 0 deletions docs/Parse.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
@startuml
participant ":UI" as UI
participant ":Parser" as Parser
participant ":UserList" as UserList
participant ":Timetable" as Timetable
participant ":InputValidator" as InputValidator

UI -> Parser: parseCommand(command, userList)
activate Parser

Parser -> UserList: setActiveUser(user)
activate UserList
UserList --> Parser: Confirmation

alt command = "changeTaskType"
Parser -> InputValidator: validateChangeTaskType(command)
activate InputValidator
InputValidator -> Timetable: changeTaskType(dayOfWeek, index, newType)
activate Timetable
Timetable --> Parser: Success message
deactivate Timetable
InputValidator --> Parser: No exceptions thrown
deactivate InputValidator
Parser --> UI: "Task type changed successfully."
else command = "deleteTask"
Parser -> InputValidator: validateDeleteTaskInput(command)
activate InputValidator
InputValidator -> Timetable: deleteUserTask(day, index)
activate Timetable
Timetable --> Parser: Success message
deactivate Timetable
InputValidator --> Parser: No exceptions thrown
deactivate InputValidator
Parser --> UI: Success message
else
note right of Parser
Other command cases handled similarly
end note
Parser --> UI: Output message
end

deactivate Parser
@enduml
9 changes: 2 additions & 7 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
# Duke
# TimetableComparer

{Give product intro here}

Useful links:
* [User Guide](UserGuide.md)
* [Developer Guide](DeveloperGuide.md)
* [About Us](AboutUs.md)
Refer to UserGuide: [User Guide](https://ay2324s2-cs2113-t13-2.github.io/tp/UserGuide.html)
Loading
Loading