Skip to content
Open
Show file tree
Hide file tree
Changes from 83 commits
Commits
Show all changes
238 commits
Select commit Hold shift + click to select a range
7b9bd80
Update README.md
thant Mar 2, 2023
210c231
Create _config.yml
thant Mar 2, 2023
2d7d6f2
Copy over from iP to serve as base code for Duck
jeraldgau Mar 9, 2023
0d5a591
Changed class and file names to Duck
jeraldgau Mar 9, 2023
948b175
Fixed a bug causing an error message to be shown when string input is…
jeraldgau Mar 9, 2023
6b986d0
Fixed checkstyle errors
jeraldgau Mar 9, 2023
27f4481
Merge pull request #1 from jeraldgau/master
thant Mar 9, 2023
61ffd5f
Changed README back to the original text
jeraldgau Mar 9, 2023
4ebe339
Merge pull request #3 from jeraldgau/master
jeraldgau Mar 9, 2023
14324e6
Merge pull request #1 from AY2223S2-CS2113-T11-1/master
thant Mar 11, 2023
365cd2a
Added date time tracking for Duck inputs
thant Mar 11, 2023
8e2bc14
Merge pull request #4 from thant/master
thant Mar 11, 2023
f1c0a87
Refactored wrong date/time format message into the Ui class, and adde…
jeraldgau Mar 15, 2023
d295be6
Merge pull request #20 from jeraldgau/master
jeraldgau Mar 15, 2023
f29775b
Added
thant Mar 15, 2023
8939bce
Merge pull request #22 from thant/master
thant Mar 15, 2023
bbc4956
Added SchoolClass task
jeraldgau Mar 15, 2023
6079673
Merge branch 'Class-SchoolClass'
jeraldgau Mar 15, 2023
aff3a55
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T11-1/tp
jeraldgau Mar 15, 2023
e7f31a8
- Fixed how saving and loading works after implementing the SchoolCla…
jeraldgau Mar 15, 2023
a6591bb
Merge pull request #23 from jeraldgau/master
jeraldgau Mar 15, 2023
ba9ef64
minor ui fix in error messages
jeraldgau Mar 15, 2023
b3126c5
Fixed the index out of bounds bug
jeraldgau Mar 15, 2023
6cc376a
Merge branch 'invalid-command-bug-fix'
jeraldgau Mar 15, 2023
d3cb2d0
Merge pull request #26 from jeraldgau/master
jeraldgau Mar 15, 2023
ea760c4
minor ui fix
jeraldgau Mar 15, 2023
ed9beab
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T11-1/tp
jeraldgau Mar 15, 2023
8e006c4
Merge pull request #27 from jeraldgau/master
jeraldgau Mar 15, 2023
f355480
Display upcoming deadline
tingyuliang0116 Mar 21, 2023
3a7f5a1
Add files via upload
thant Mar 22, 2023
4e71fda
Update Developer Guide
jeraldgau Mar 22, 2023
96f67cd
Updated Diagrams for DG
jeraldgau Mar 22, 2023
638c7de
Merge pull request #31 from jeraldgau/master
jeraldgau Mar 22, 2023
a7c7d0e
Update DeveloperGuide.md
jeraldgau Mar 22, 2023
2e19906
Update DeveloperGuide.md
thant Mar 22, 2023
08ee502
Update DeveloperGuide.md
thant Mar 22, 2023
236fdd2
Update DeveloperGuide.md
thant Mar 22, 2023
3094125
Update DeveloperGuide.md
thant Mar 22, 2023
c7f117a
Update DeveloperGuide.md
thant Mar 22, 2023
f1baf61
Update DeveloperGuide.md
thant Mar 22, 2023
6a4e7a7
Added printing tasks in low, medium and high priority seperately and …
miahjerry Mar 22, 2023
1ab5123
Added junit tests for the Parser class
jeraldgau Mar 22, 2023
547346e
Merge branch 'junit-tests'
jeraldgau Mar 22, 2023
d89a7bd
Merge pull request #32 from jeraldgau/master
jeraldgau Mar 22, 2023
8ba7ebe
Improved coding standard and added list-x-days feature
skyanzy Mar 22, 2023
14fa94a
changed the star import for exceptions
skyanzy Mar 22, 2023
6881017
Merge pull request #34 from skyanzy/master
skyanzy Mar 22, 2023
9eec8ba
Display Next Upcoming Class
tingyuliang0116 Mar 23, 2023
e748d11
Purge functionality for removing expired tasks have been implemented.
thant Mar 23, 2023
2e52941
Merge pull request #35 from thant/master
thant Mar 23, 2023
19d9ee4
Update DeveloperGuide.md
thant Mar 23, 2023
34eedcc
Find function now also shows the index of the item in the whole list
miahjerry Mar 23, 2023
17f9dd5
Added purge functionality for SchoolClass objects as well.
thant Mar 23, 2023
a8026b1
Merge pull request #2 from AY2223S2-CS2113-T11-1/master
thant Mar 23, 2023
1f48811
Merge pull request #36 from thant/master
thant Mar 23, 2023
1246980
Update DeveloperGuide.md
skyanzy Mar 24, 2023
5e78e7d
Update UserGuide.md
thant Mar 24, 2023
b233c5f
Merge pull request #3 from AY2223S2-CS2113-T11-1/master
thant Mar 24, 2023
69862c7
Update TaskList.java
thant Mar 24, 2023
5cbb6f0
Merge pull request #37 from thant/master
thant Mar 24, 2023
17dfcc8
Update UserGuide.md
thant Mar 24, 2023
7eb6434
Update UserGuide.md
thant Mar 24, 2023
508ae47
Update UserGuide.md
thant Mar 24, 2023
e0fc434
Merge branch 'master' into Print-By-Priority
thant Mar 26, 2023
c6c9075
Merge pull request #38 from miahjerry/Print-By-Priority
thant Mar 26, 2023
4eec29a
Implemented class schedule with automatic day/time sorting, displayin…
jeraldgau Mar 26, 2023
6bb3911
Merge branch 'class-schedule'
jeraldgau Mar 26, 2023
5cfb3a6
Merge pull request #39 from jeraldgau/master
jeraldgau Mar 26, 2023
b303dd6
Bug fix for medium_priority
miahjerry Mar 26, 2023
7c06d78
Updated user guide for listing tasks by priority
miahjerry Mar 26, 2023
bacee6b
Merge pull request #40 from miahjerry/Print-By-Priority
thant Mar 27, 2023
1d88e83
Update UserGuide.md
thant Mar 27, 2023
6e856ed
- Added auto tracking of whether SchoolClasses are over, and resets t…
jeraldgau Mar 28, 2023
65ad511
Ensured checkstyle compliance, removed test-ui-tests since they are r…
jeraldgau Mar 28, 2023
9fad3bf
Merge branch 'class-schedule-tracking'
jeraldgau Mar 28, 2023
09c401c
Update UserGuide.md
jeraldgau Mar 28, 2023
04282c9
removed text ui test folder
jeraldgau Mar 28, 2023
d9164be
Merge branch 'master' of https://github.com/jeraldgau/tp
jeraldgau Mar 28, 2023
ab20a31
Merge pull request #41 from jeraldgau/master
jeraldgau Mar 28, 2023
addf3e2
Bug fixes and added class deleted/not deleted message.
jeraldgau Mar 28, 2023
f19f75e
Merge pull request #42 from jeraldgau/master
jeraldgau Mar 28, 2023
f9e89c6
Update UserGuide.md
jeraldgau Mar 28, 2023
ae3a99a
Update UserGuide.md
jeraldgau Mar 28, 2023
d2a2f56
Change Display Next Class
tingyuliang0116 Mar 29, 2023
c97687b
Merge remote-tracking branch 'origin/master'
tingyuliang0116 Mar 29, 2023
52b5a59
Sets any task to low priority automatically
miahjerry Mar 29, 2023
a4d4765
added classes for recurring deadlines and events
skyanzy Mar 29, 2023
b5b951a
Merge branch 'recurring-tasks'
skyanzy Mar 29, 2023
0e3e877
Merge pull request #44 from skyanzy/master
skyanzy Mar 29, 2023
7af7c43
added a function to view all tasks and classes today
skyanzy Mar 29, 2023
29fbec7
Merge branch 'view-today'
skyanzy Mar 29, 2023
94b88ba
Merge pull request #45 from skyanzy/master
skyanzy Mar 29, 2023
d85953f
Update UserGuide.md
skyanzy Mar 29, 2023
942adf2
Added feature to add, delete and view notes of a item. Notes also pri…
miahjerry Mar 29, 2023
eb62752
Added a function to print a duck for greeting and exit message
miahjerry Mar 29, 2023
072cdae
Merge pull request #48 from miahjerry/Print-By-Priority
jeraldgau Mar 29, 2023
a74de1a
Update UserGuide.md
jeraldgau Mar 29, 2023
b75e882
Merge pull request #49 from jeraldgau/master
jeraldgau Mar 29, 2023
6a14272
Update DeveloperGuide.md
skyanzy Mar 30, 2023
c5e4adb
added class diagram for recurring tasks
skyanzy Mar 30, 2023
655770a
Merge branch 'extra-stuff'
skyanzy Mar 30, 2023
8f5f5af
Merge pull request #51 from skyanzy/master
skyanzy Mar 30, 2023
3a14d20
Refactored process Command to use case-switch instead of multiple els…
thant Mar 30, 2023
4a1268b
Merge pull request #4 from AY2223S2-CS2113-T11-1/master
thant Mar 30, 2023
c861652
Merge pull request #52 from thant/master
thant Mar 30, 2023
4eb3030
Tied refreshing the schedule to the list_classes function, and remove…
jeraldgau Mar 30, 2023
e46dbf5
Merge pull request #53 from jeraldgau/master
jeraldgau Mar 30, 2023
b07b06a
changed the format to invoke remove class function
jeraldgau Mar 30, 2023
87011a1
Update UserGuide.md
jeraldgau Mar 30, 2023
11164a0
fixed bug for removing classes
jeraldgau Mar 30, 2023
14659b6
Merge branch 'master' of https://github.com/jeraldgau/tp
jeraldgau Mar 30, 2023
ffb2b3c
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T11-1/tp
jeraldgau Mar 30, 2023
95d5ebd
Merge pull request #54 from jeraldgau/master
jeraldgau Mar 30, 2023
321900e
added funtion to edit stored tasks
skyanzy Mar 30, 2023
9c5d3bd
Merge branch 'edit-funtion'
skyanzy Mar 30, 2023
9cb098e
Merge pull request #55 from skyanzy/master
skyanzy Mar 30, 2023
a2d2638
Added function to edit existing notes
miahjerry Mar 30, 2023
6546fc2
Made code more defensive to handle incorrect inputs when accessing th…
miahjerry Mar 30, 2023
601e9bb
Corrected bugs caused by previous commit
miahjerry Mar 30, 2023
6c24949
Update DeveloperGuide.md
jeraldgau Mar 30, 2023
ab5d203
Update UserGuide.md
jeraldgau Mar 30, 2023
075a726
Merge pull request #58 from jeraldgau/master
jeraldgau Mar 30, 2023
5db8432
Merge pull request #57 from miahjerry/Print-By-Priority
jeraldgau Mar 30, 2023
9cb4a46
Update UserGuide.md
jeraldgau Mar 30, 2023
65fb00d
Merge pull request #64 from jeraldgau/master
jeraldgau Mar 30, 2023
12ad7a3
Updated user guide
miahjerry Mar 30, 2023
abcefb1
Merge pull request #65 from miahjerry/Print-By-Priority
jeraldgau Mar 30, 2023
3cd90f4
Update UserGuide.md
skyanzy Mar 31, 2023
5a5f95e
Update UserGuide.md
jeraldgau Mar 31, 2023
e9e5fff
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T11-1/tp
jeraldgau Mar 31, 2023
0ca181f
Merge pull request #66 from jeraldgau/master
jeraldgau Mar 31, 2023
d1ae064
Update UserGuide.md
jeraldgau Mar 31, 2023
0b1d21c
Merge branch 'master' of https://github.com/jeraldgau/tp
jeraldgau Mar 31, 2023
0eb6c3e
Merge pull request #67 from jeraldgau/master
jeraldgau Mar 31, 2023
d7427a5
Update UserGuide.md
jeraldgau Mar 31, 2023
68a82cd
Merge pull request #68 from jeraldgau/master
jeraldgau Mar 31, 2023
122d183
Update UserGuide.md
skyanzy Mar 31, 2023
f2a2f12
Update UserGuide.md
skyanzy Mar 31, 2023
746619a
Fix typo and bug in upcoming class function
tingyuliang0116 Mar 31, 2023
70858d9
Notes for tasks will now be saved and loaded on to Duck on start up
miahjerry Apr 1, 2023
82b1f92
Added a function that prints a motivational quote whenever Duck is st…
miahjerry Apr 2, 2023
cf742a9
Add more function
tingyuliang0116 Apr 3, 2023
6419319
Addressed bugs from PED
miahjerry Apr 3, 2023
dae45b0
Merge branch 'Print-By-Priority'
miahjerry Apr 3, 2023
11884a4
Merge pull request #114 from miahjerry/master
jeraldgau Apr 3, 2023
0ac3f65
Create jeraldgau.md
jeraldgau Apr 4, 2023
c58e383
Update UserGuide.md
thant Apr 4, 2023
f43e41e
Update UserGuide.md
thant Apr 4, 2023
73da2e6
Update UserGuide.md
thant Apr 4, 2023
a1d0e01
Update Task.java
thant Apr 4, 2023
c74dc87
Update jeraldgau.md
jeraldgau Apr 4, 2023
35baf3d
Fixed bugs in TaskList#setPriority and changed invalidDateTimeMessage
skyanzy Apr 4, 2023
a7c7155
Merge branch 'fixed-setpriority'
skyanzy Apr 4, 2023
9d574b8
Merge pull request #115 from skyanzy/master
jeraldgau Apr 4, 2023
4acce5c
Update jeraldgau.md
jeraldgau Apr 4, 2023
797e3f8
Merge branch 'master' of https://github.com/jeraldgau/tp
jeraldgau Apr 5, 2023
05fc14d
Update UG Guide
tingyuliang0116 Apr 5, 2023
77b745c
Added Javadoc
miahjerry Apr 5, 2023
a956366
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T11-1/tp
jeraldgau Apr 5, 2023
f94e6da
Fix Magic Number
tingyuliang0116 Apr 5, 2023
ab15ac3
Update DeveloperGuide.md
jeraldgau Apr 5, 2023
3d691e7
Added sequence diagrams for listClasses and addSchoolClass
jeraldgau Apr 5, 2023
b2ec149
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T11-1/tp
jeraldgau Apr 5, 2023
838cc02
Update jeraldgau.md
jeraldgau Apr 5, 2023
5ca1be6
Merge pull request #116 from jeraldgau/master
jeraldgau Apr 5, 2023
caa1c14
Update AboutUs.md
jeraldgau Apr 5, 2023
b9d7677
Update AboutUs.md
jeraldgau Apr 5, 2023
197c46c
Update jeraldgau.md
jeraldgau Apr 5, 2023
764cc48
Update jeraldgau.md
jeraldgau Apr 5, 2023
cadd18d
changed the command for adding a todo task
skyanzy Apr 6, 2023
113d46a
Merge pull request #117 from skyanzy/master
skyanzy Apr 6, 2023
60d9688
Update UserGuide.md
skyanzy Apr 6, 2023
299e8a2
Update UserGuide.md
skyanzy Apr 6, 2023
4238e3e
Draft PPP
tingyuliang0116 Apr 6, 2023
cb70e10
Merge remote-tracking branch 'origin/master'
tingyuliang0116 Apr 6, 2023
ac6796a
Draft PPP
tingyuliang0116 Apr 6, 2023
86beb84
rename Draft PPP
tingyuliang0116 Apr 7, 2023
9c0c85d
Update UserGuide.md
thant Apr 7, 2023
9c7636b
Update UserGuide.md
thant Apr 7, 2023
efe3dd5
Draft for PPP
thant Apr 7, 2023
e170ff5
Handled the case where the save file is tampered with
jeraldgau Apr 7, 2023
a429ef7
Merge pull request #118 from jeraldgau/master
jeraldgau Apr 7, 2023
d963c23
Update AboutUs.md
thant Apr 8, 2023
06b8280
Update AboutUs.md
thant Apr 8, 2023
6542b9a
Merge branch 'AY2223S2-CS2113-T11-1:master' into master
miahjerry Apr 8, 2023
e27d3a2
Added function to print motivational quotes on command, added JavaDoc…
miahjerry Apr 8, 2023
bb87c7b
Added PPP
miahjerry Apr 8, 2023
c8efe9b
Merge pull request #119 from miahjerry/master
miahjerry Apr 8, 2023
113f603
Create skyanzy.md
skyanzy Apr 9, 2023
c16a7c8
Update skyanzy.md
skyanzy Apr 9, 2023
c3d2dce
Bug fixes
jeraldgau Apr 9, 2023
7634c5f
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T11-1/tp
jeraldgau Apr 9, 2023
8f25e86
Merge pull request #120 from jeraldgau/master
jeraldgau Apr 9, 2023
2241c30
improved coding standard
skyanzy Apr 9, 2023
3353cb0
Update DeveloperGuide.md
jeraldgau Apr 9, 2023
bd84f4b
Update DeveloperGuide.md
jeraldgau Apr 9, 2023
47a3d6d
fixed list x
skyanzy Apr 9, 2023
1a850c9
Merge branch 'coding-standard'
skyanzy Apr 9, 2023
eb5b283
Merge pull request #121 from skyanzy/master
skyanzy Apr 9, 2023
6b98495
Update DeveloperGuide.md
jeraldgau Apr 9, 2023
8e8b857
Merge branch 'master' of https://github.com/jeraldgau/tp
jeraldgau Apr 9, 2023
41a43c8
Merge pull request #122 from jeraldgau/master
jeraldgau Apr 9, 2023
364f296
Update jeraldgau.md
jeraldgau Apr 9, 2023
650ee7a
Fixed hyperlinks in UG, fixed more bugs that were surfaced, updated l…
miahjerry Apr 9, 2023
e5c3da7
Merge pull request #123 from miahjerry/master
miahjerry Apr 9, 2023
16064f8
Updated docs
miahjerry Apr 10, 2023
78db4fd
Merge pull request #124 from miahjerry/master
miahjerry Apr 10, 2023
9d17a29
imroved coding standard. refactored arrowhead method
skyanzy Apr 10, 2023
f8e7422
Merge pull request #125 from skyanzy/master
skyanzy Apr 10, 2023
d44615f
Update skyanzy.md
skyanzy Apr 10, 2023
acef6db
Updated PPP
miahjerry Apr 10, 2023
8e0f753
Merge pull request #126 from miahjerry/master
miahjerry Apr 10, 2023
da8d0fa
Minor tweaks according to code review
jeraldgau Apr 10, 2023
940ac75
Merge pull request #127 from jeraldgau/master
jeraldgau Apr 10, 2023
3bc2850
added some junit tests for TaskList
skyanzy Apr 10, 2023
586dc38
Merge branch 'junit-tests'
skyanzy Apr 10, 2023
70c1e23
Merge pull request #128 from skyanzy/master
skyanzy Apr 10, 2023
05d3cf2
Update UserGuide.md
thant Apr 10, 2023
32fa374
Update AboutUs.md
jeraldgau Apr 10, 2023
28ef1df
Update DeveloperGuide.md
thant Apr 10, 2023
88d3c12
Update DeveloperGuide.md
thant Apr 10, 2023
73a8e0b
Update UserGuide.md
thant Apr 10, 2023
a445b5e
Update UserGuide.md
thant Apr 10, 2023
5185b07
Update README.md
thant Apr 10, 2023
8eabe3e
Update DeveloperGuide.md
thant Apr 10, 2023
c0527e9
Update DeveloperGuide.md
thant Apr 10, 2023
d1d2316
Update DeveloperGuide.md
thant Apr 10, 2023
710c5f4
Updated PPP to fit page limit
miahjerry Apr 10, 2023
2ba5655
Update DeveloperGuide.md
thant Apr 10, 2023
77cdd2b
Update thant.md
thant Apr 10, 2023
87d00b1
Update skyanzy.md
skyanzy Apr 10, 2023
013269d
Merge pull request #129 from miahjerry/master
miahjerry Apr 10, 2023
c10aebc
Update skyanzy.md
skyanzy Apr 10, 2023
eece6d8
Updated PPP
miahjerry Apr 10, 2023
a307ca8
Merge pull request #130 from miahjerry/master
miahjerry Apr 10, 2023
a882564
Removed unnecesary line from PPP
miahjerry Apr 10, 2023
6eefaa2
Merge pull request #131 from miahjerry/master
miahjerry Apr 10, 2023
83b2f60
Update michelleliang0116.md
MichelleLiang0116 Apr 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ bin/

/text-ui-test/ACTUAL.TXT
text-ui-test/EXPECTED-UNIX.TXT
data/savedata.txt
3 changes: 3 additions & 0 deletions META-INF/MANIFEST.MF

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Overall, the developer's guide is aesthetically pleasing with nice colours.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: seedu.duck.Duck

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
}
190 changes: 189 additions & 1 deletion docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,199 @@

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

## Architecture

![](https://lh3.googleusercontent.com/FwYOJJpyhNrHNAUjWo1grnsWCDHdKMosDWaJaI_3kqtVbfD8108yk0MeJaybK3ac0MOAL3EVKYYCUjSiAbBrwAT8wRBkPTj2UDfw3AdhPT0fB8twOxfRDfh3BGAawOUOUlt-rxSACvVOhvqRnFamqWM)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Architecture diagram is clear and easy to understand

The **Architecture Diagram** given above explains the high-level design of Duck.

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

<br />

**Main components of the architecture**

```Duck``` is responsible for:

**At app launch:** 

- Executes the ```Ui#greetingMessage()``` operation.

- Initializes a new ArrayList tasks 

- Populates the ArrayList by executing the ```Storage#tryLoad()``` operation.

- Begins scanning for user inputs, and passing these inputs to ```Parser``` class.

- At shut down: Shuts down the components and invokes the ```Ui#exitMessage()``` operation.

```Commons``` represents a collection of classes used by multiple other components, such as ```java.time.LocalDateTime```

The rest of the App consists of four components.

- ```UI```: The UI of the App.

- ```Parser```: The command executor.

- ```Storage```: Reads data from, and writes data to, the hard disk.

- ```TaskList```: Holds the data of Duck in memory.

```TaskList``` stores items that belong to 4 subclasses that draw upon a shared superclass.

```Task```: The skeleton superclass of all Tasks. 

- ```ToDo```: Basic form of ```Task```

- ```Deadline```: Expands upon ```Task``` by storing a ```by``` variable

- ```Event```: Expands upon ```Task``` by storing ```start``` and ```end``` variable

- ```SchoolClass```: Expands upon ```Task``` by storing ```start``` and ```end``` variable, along with a ```className``` variable

## Design & implementation

{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
This section describes how Duck is implemented and how its commands are executed.

### Purge feature

**Sequence Diagram**

![image](https://user-images.githubusercontent.com/1620654/227128864-cfc9cac7-bc68-4962-ac45-77e1ae067db0.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I am not sure as to why there is an arrow "->" after 1.5: task. Also, I think that 1.5 etc. should not be on the left of the function name

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

image
Why is there a -> arrow after 1.5:task


Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The numbers beside the methods (eg 1:purge) should be removed.

The ```TaskList#purge()``` command will be implemented following the sequence diagram as shown above.


**Implementation**

The ```TaskList#purge()``` command will be implemented to facilitate the removal of expired ```Task``` items from the ```TaskList```. This will be executed once upon Duck's startup, and can be further executed by inputting the term ```purge``` into the CLI when Duck is running. The following is the new operation to be implemented.

- ```TaskList#purge()``` - Navigates through the ```TaskList``` array, and checks the date/time of each Task item within. If the date/time of a given ```Task``` has passed, it will be removed from the ```TaskList``` array. The user will be then able to view a total of how many ```Tasks``` were purged, along with what ```Task``` they were.

<br />

**Given below is an example usage scenario for ```purge()```**

**Step 1.** The user launches the application for the first time. The ```TaskList``` will be initialized with the data from a given pre-existing datafile if it exists, and the ```Task``` items will be inserted into the ```TaskList```.![](https://lh5.googleusercontent.com/XcnArNZc5ZqHhxXZ1iRuq0aRxNKkcD_snVgDv-dlpMVYFQFQjyGXdtHWvFGzG-k2UW5SXkjQbthIRtkrol_SYsNgmsmKw1kKEkME0vSQ0tfRfUIWj3jZTTVrerHbESuA-AlTpPEkj8JrKl-mMlu-3yM)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

It's not clear if expiredCount is part of the function that uses taskList or part of taskList in general (seems weird if taskList is an ArrayList of items). I'm not sure if this is supposed to be a class or object diagram also.


**Step 2.** The ```TaskList#purge()``` command will be executed. The process is illustrated through two steps:

**Identifying all expired ```Task``` items in ```TaskList```.**

![](https://lh3.googleusercontent.com/Kbz7j3EmMGJGrIX1aQ8DCkHG8Y3gaIx3Ohf-zmYvr-S-LrxRqt8P1wlTMWUnlnna2tnR0i72yUJWB72Z2mWwGuwXiD_RnlIpYEk-MY6k9zMaLqTk_VkyHaRwIuzxi1trXHX1ySdZWBqZFDaCZ6K-QrY)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Class diagrams syntax are correct

**Removing all expired ```Task``` items in ```TaskList```.**
![](https://lh4.googleusercontent.com/kVOcvIKAF1nlLSHXQsRPDuG6RwiyaqRXf9CYTLrv2WUezegCNx05GIC1KPYME6Eojid1hRbqUIzHUjKWRpYjUG7zCYE8586kLzbIrVdjZVnC5j_1ke1WBdFZSHoar_MuXKBA9eMARxCOgcja5qjP2_A)

The user will see this on his terminal after the ```purge``` command has executed.

```
----------------------------------------------------------------------

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

is expired count part of TaskLIst or what? I am very confused as to what expiredCount is part of.

Quack! <expiredCount> Tasks have expired! Purge proceeding...
2. [X if <isDone>, " " if !<isDone>] <Deadline_1>
4. [X if <isDone>, " " if !<isDone>] <Event_1>

Purge Completed! Now we are one quack closer to finishing all tasks!

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I am also not sure as to what expiredCount is part of.

----------------------------------------------------------------------
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I am not exactly sure what diagrams these are. It looks like a mix of object and class diagrams.


**Step 3.** The ```Duck``` will continue to run as per usual. The user can choose to manually input the keyword purge into the CLI to repeat Step 2 above at any given time.

<br />

### Clear feature

**Implementation**

The ```Storage#clear()``` command was implemented to facilitate the removal of all ```Task``` items from the ```TaskList```. Upon the entry of the keyword ```clear```, the new operation ```Ui#doubleCheck``` will prompt the user for an input of ```Y/N```.

- If a ```Y``` is inputted, the operation ```Storage#clear()``` executes and removes all ```Task``` items from the ```TaskList```. Additionally, the ```savedata``` file located in ```\data\savedata.txt``` will also be deleted and recreated as a blank slate.

- If a ```N``` is inputted, the operation ```Storage#clear()``` executes and removes all ```Task``` items from the ```TaskList```. Additionally, the ```savedata``` file located in ```\data\savedata.txt``` will also be deleted and recreated as a blank slate.

<br />

 The following are the new operations implemented.

- ```Storage#clear()``` - Removes all ```Task``` items from the ```TaskList```. Additionally, the ```savedata``` file located in ```\data\savedata.txt``` will also be deleted and recreated as a blank slate.

- ```Ui#doubleCheck``` - Prompts the user for further input. If a ```Y``` is inputted, the ```Storage#clear()``` operation is executed. Else if a ```N``` is inputted, the operation is cancelled.

<br />

Given below is an example usage scenario for ```Storage#clear()```

**Step 1.** The user launches the application for the first time. The ```TaskList``` will be initialised with the data from a given pre-existing datafile if it exists, and the ```Task``` items will be inserted into the ```TaskList```.![](https://lh5.googleusercontent.com/XcnArNZc5ZqHhxXZ1iRuq0aRxNKkcD_snVgDv-dlpMVYFQFQjyGXdtHWvFGzG-k2UW5SXkjQbthIRtkrol_SYsNgmsmKw1kKEkME0vSQ0tfRfUIWj3jZTTVrerHbESuA-AlTpPEkj8JrKl-mMlu-3yM)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Shouldn't the purpose of the class diagram be showing the relationships between classes? This class diagram does not have any arrows between the classes.
Screen Shot 2023-03-30 at 15 30 52


**Step 2.** The user wants to start afresh. The ```Storage#clear()```  command is then executed. The user will see an output in the following format:

```
THIS IS AN IRREVERSIBLE PROCESS. ARE YOU SURE? Y/N
```

**Step 3.1.** The user decides against clearing the ```TaskList```, and inputs a ```N```. The ```TaskList``` has no changes. ```Duck``` resumes after the output in the following format has been displayed:

```

Process cancelled.

```

**Step 3.2.** The user decides upon clearing the ```TaskList```, and inputs a ```Y```. The ```TaskList``` has been cleared.

![](https://lh4.googleusercontent.com/G4PalSoaVQxExSGKCDefJuO4TlyCJwrCfZDT4BsTrrSHMJ8aQSPsaxGoFJYb9YIO1yo3_3nV0Jar3Haqfac90v7G_yfZdx8-OwxSKEART5zLqMZ73k3YW0ssPbIE3kOhkbeusR3jVMdD6kTSkG7rK4s)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I'm not sure if the image is missing or not done yet but it's empty.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The image does not show on the developer guide.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

There is no picture of the diagram in the DG website

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Is the diagram in step 3.2 of the "Clear feature" implementation supposed to be empty?
Screen Shot 2023-03-30 at 15 19 32


```Duck``` resumes after the output in the following format has been displayed:

```

Got it, all tasks have been cleared.

```

### SchoolClass Feature

**Implementation**

The ```SchoolClass``` Class is implemented to facilitate the adding of students' classes to the task list. It extends the ```Task``` Class with additional String attributes to store the class name, start date/time, and end date/time. It also overrides the ```toString()``` method to have its own specialised output when being printed, as well as overriding the ```toSaveString()``` method to have correctly save its details to the save file. The ```SchoolClass``` Class will also facilitate the implementation of automatically recurring classes, which is a planned feature for milestone v2.0. ```SchoolClass``` Tasks will be added by default as recurring tasks to the task list, and will be automatically added back at their same set timing each week.

The following are the new operations implemented.

- ```TaskList#addSchoolClass()``` - Adds a SchoolClass Task to the task list.

- ```Ui#addedTaskMessage()``` - Outputs a message to show that the SchoolClass Task was successfully added to the task list

- ```Storage#loadSchoolClass()``` - Adds a SchoolClass to the task list without generating a successfully added message, to be used when loading from the save data.

<br />

**Given below is an example usage scenario for TaskList#addSchoolClass().**

**Step 1.** The user inputs a command following the proper formatting for adding a ```SchoolClass```. The Duck class will call ```Parser#processCommand()```, instantiating a ```Parser``` class, which will then call ```TaskList#addTask()```, instantiating a ```TaskList``` Class. From there, ```TaskList#addSchoolClass()``` is called and a new ```SchoolClass``` Task is instantiated, which calls ```Ui#addedTaskMessage()``` and instantiating a ```Ui``` Class. This ```SchoolClass``` Task will thus be added to the ArrayList<Task> tasks that was instantiated in the ```Duck``` class.

![](https://lh4.googleusercontent.com/u4zVr8TYxFw3rMvnqdwCYlJmq0JxUgEtC_cFmOY7rPqCM9nvzcQL1t-GcTmgbedeVEHi2L6MG6xG3QaJ7XaOPs8nYvHz1Uf4wGK9bMsHDHwxZVNdS2zR79TtHL_Ub2Za0_jm6bUsnY_RQWX6QmFqCl4)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Since this example scenario involves quite a few method calls between objects, wouldn't a sequence diagram be more appropriate? An object diagram only shows how the objects are connected together but does not show functionality.
Screen Shot 2023-03-30 at 15 37 39


![](https://lh3.googleusercontent.com/owAwOcAeTYadanERD7zj2eVD_SsbxhXUvohhaV962-DfYkgh-fV4wWVv8LnLjPpt9jl3yEkBrVUuiPg7jor-uWSpIhwdze4C3yKMWdRQEYrcR7I6tW4RMIGeyazNhEYUZzTd2BTBqUNpKL-6O2KRXug)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Similarly, this class diagram may be unnecessary as it only has one class thus does not show the relationships between classes.
Screen Shot 2023-03-30 at 15 32 34


<br />

**Given below is an example usage scenario for Storage#loadSchoolClass.**

**Step 1.** The user launches the application. The task list will be initialised with the data from a given pre-existing datafile if it exists, and the ```SchoolClass``` items will be inserted into the task list if they exist using ```Storage#loadSchoolClass()```.

<br />

### List Upcoming Tasks Feature

**Implementation**

The ```Ui#printUpcomingTasks()``` was implemented to allow the user to view their upcoming tasks in ```ndays``` days where ```ndays``` is specified. 

- ```Ui#printUpcomingTasks()``` - navigates through the task list and compares the due time/starting time of that task and current time. prints all upcoming tasks in the number of days specified.

<br />

## Product scope

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I am a bit confused about what your product is trying to achieve. I do not understand the functionality of the product is it a deadline tracker or what as there is no specification on what the product helps the user in. Could also add a few diagrams for the rest of the features.

### Target user profile

Expand Down
Loading