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

[CS2103-F11-2] Duke Driver #119

Open
wants to merge 698 commits into
base: master
Choose a base branch
from
Open
Changes from 5 commits
Commits
Show all changes
698 commits
Select commit Hold shift + click to select a range
60e234c
fix junit test for storage
c0j0s Mar 30, 2023
3a409f3
Merge pull request #195 from c0j0s/master
ChinJunAn Mar 30, 2023
89a01b7
Format UG summary table
dohaduong Mar 30, 2023
7d70713
Update UG
ZhuLeYao Mar 30, 2023
bc1d382
Merge branch 'master' into master
ZhuLeYao Mar 30, 2023
e53aca7
Merge pull request #196 from ZhuLeYao/master
dohaduong Mar 30, 2023
2112d51
Resolve merge conflict
dohaduong Mar 30, 2023
a0f5a4e
Add optional args for edit cmd
c0j0s Mar 30, 2023
744190b
Resolve merge conflicts
dohaduong Mar 30, 2023
40c1deb
Merge pull request #197 from c0j0s/master
dohaduong Mar 30, 2023
23b36cd
Resolve merge conflicts
dohaduong Mar 30, 2023
32ff59e
Resolve merge conflicts
dohaduong Mar 30, 2023
8b2bb34
Resolve merge conflicts
dohaduong Mar 30, 2023
65b31f8
Resolve merge conflicts
dohaduong Mar 30, 2023
699af66
Resolve checkstyles violations
dohaduong Mar 30, 2023
1cbeb07
Resolve checkstyles violations
dohaduong Mar 30, 2023
734b4ae
Add images to UG
ZhuLeYao Mar 30, 2023
7c6cba2
Resolve checkstyles violations
dohaduong Mar 30, 2023
c572ac7
Merge pull request #198 from dohaduong/timetable-with-date
ZhuLeYao Mar 30, 2023
bd417e1
Delete conflicts in UG
dohaduong Mar 30, 2023
c3de9a0
Merge branch 'master' into master
ZhuLeYao Mar 30, 2023
747feba
Merge pull request #199 from ZhuLeYao/master
ZhuLeYao Mar 30, 2023
8f1a49e
Merge branch 'master' into timetable-with-date
dohaduong Mar 30, 2023
c4bee30
Merge pull request #200 from dohaduong/timetable-with-date
c0j0s Mar 30, 2023
1cebb53
Add images
ZhuLeYao Mar 30, 2023
0124330
Fix fxml file URL in AddressBookWindow
dohaduong Mar 30, 2023
64f5d7b
Merge pull request #201 from ZhuLeYao/master
c0j0s Mar 30, 2023
dcbede5
Update DG for delivery jobs
c0j0s Mar 30, 2023
1481d3f
Resolve conflicts
c0j0s Mar 30, 2023
f38f4a5
Fix check style
c0j0s Mar 30, 2023
12b5146
Fix check style
c0j0s Mar 30, 2023
92b6931
Merge pull request #202 from dohaduong/timetable-with-date
c0j0s Mar 30, 2023
3f0713f
Merge pull request #203 from c0j0s/143-dg-ug-update-command-guides-an…
c0j0s Mar 30, 2023
7a582ca
Update UG
ZhuLeYao Mar 30, 2023
a8ab2e9
Merge branch 'master' into master
ZhuLeYao Mar 30, 2023
b6172e0
Merge pull request #204 from ZhuLeYao/master
dohaduong Mar 30, 2023
86eadfd
Fix timetable img in UG
dohaduong Mar 31, 2023
136b958
Add address book features to table of contents
dohaduong Mar 31, 2023
b58883e
Add address book features to table of contents
dohaduong Mar 31, 2023
974bc10
Add address book features to table of contents
dohaduong Mar 31, 2023
36ab920
Add address book features to table of contents
dohaduong Mar 31, 2023
1142a38
Add address book features to table of contents
dohaduong Mar 31, 2023
6024840
Merge pull request #205 from dohaduong/timetable-with-date
ZhuLeYao Mar 31, 2023
99f03cf
Clear command will clear all entries in UG
dohaduong Mar 31, 2023
0e13531
Merge pull request #206 from dohaduong/timetable-with-date
c0j0s Mar 31, 2023
25c3000
Move clear command to person group
c0j0s Mar 31, 2023
1d3a712
Fix null pointer in date picker
c0j0s Mar 31, 2023
e122069
Fix timetable and timetable_date bug in issue #226.
dohaduong Apr 1, 2023
698bef2
Fix checkstryles violations
dohaduong Apr 1, 2023
546f2b3
Fix checkstyles violations
dohaduong Apr 1, 2023
d0e8f6e
Add snooze function for reminder notifications
ChinJunAn Apr 3, 2023
4bc9bad
Optimize coding styles
ChinJunAn Apr 3, 2023
2f677a0
Merge pull request #207 from c0j0s/patch-group-clear-command-to-person
ChinJunAn Apr 3, 2023
1643079
Reminder List window will always be on top. Reminder List window
ChinJunAn Apr 4, 2023
7afdc5a
Update Jun An's PPP. Update DG, UG
ChinJunAn Apr 4, 2023
ed59300
Merge pull request #249 from ChinJunAn/update-documentation
dohaduong Apr 4, 2023
d18015c
Add scroll pane to job list in Timetable
dohaduong Apr 4, 2023
618e059
Merge pull request #248 from ChinJunAn/notification-fix
dohaduong Apr 4, 2023
bbf7b01
Merge branch 'master' of https://github.com/AY2223S2-CS2103-F11-2/tp …
dohaduong Apr 4, 2023
aa91be7
Fix #240
c0j0s Apr 4, 2023
d62871c
Add test for slot and date
c0j0s Apr 4, 2023
9e0f246
Add placeholder for storing invalid date
c0j0s Apr 4, 2023
7f2d145
Merge pull request #246 from dohaduong/bug-timetable-peD
c0j0s Apr 4, 2023
662cdce
Merge remote-tracking branch 'upstream/master' into patch-240
c0j0s Apr 4, 2023
929dada
Merge pull request #250 from c0j0s/patch-240
dohaduong Apr 4, 2023
4c0d39a
Add test case for all job parser
c0j0s Apr 4, 2023
bee4d0e
Remove misleading expand window
c0j0s Apr 4, 2023
2b0385c
Merge branch 'patch-208' of https://github.com/c0j0s/tp into patch-208
c0j0s Apr 4, 2023
3d728e4
Fix check style issues
c0j0s Apr 4, 2023
49164d8
patch #235
c0j0s Apr 4, 2023
4c95c4e
Add event listener to Timetable commands
dohaduong Apr 4, 2023
552f5c2
Merge branch 'master' of https://github.com/AY2223S2-CS2103-F11-2/tp …
dohaduong Apr 4, 2023
7a1367b
Merge branch 'master' into bug-timetable-peD
dohaduong Apr 4, 2023
78aeaae
Merge branch 'bug-timetable-peD' of https://github.com/dohaduong/tp i…
dohaduong Apr 4, 2023
ae446a9
Fix checkstyles violations
dohaduong Apr 4, 2023
13bcaf4
Merge pull request #251 from c0j0s/patch-208
dohaduong Apr 4, 2023
c3e0c61
Update UG Table of Content
dohaduong Apr 5, 2023
fccb6b2
Update UG Table of Content
dohaduong Apr 5, 2023
440d294
Update UG Table of Content
dohaduong Apr 5, 2023
dcc0220
Update UG
dohaduong Apr 5, 2023
021d74e
Merge branch 'master' of https://github.com/AY2223S2-CS2103-F11-2/tp …
dohaduong Apr 5, 2023
2cb02a2
Update UG
dohaduong Apr 5, 2023
f324ca5
Resolve checkstyles conflicts
dohaduong Apr 5, 2023
12c8718
Merge pull request #253 from dohaduong/bug-timetable-peD
dohaduong Apr 5, 2023
4edb219
Update UG: Lock button in job detail
dohaduong Apr 5, 2023
f28c29c
Merge pull request #254 from dohaduong/bug-timetable-peD
ChinJunAn Apr 6, 2023
6895f93
Update PPP
ChinJunAn Apr 6, 2023
7d025f7
Update UG add_job
c0j0s Apr 6, 2023
bc61fb9
Merge pull request #255 from ChinJunAn/master
dohaduong Apr 6, 2023
b6a5fbc
Update edit_job UG
c0j0s Apr 6, 2023
3e89854
Increase stats window size
zuohui48 Apr 6, 2023
9f78278
Fix invalid slot issue when loading data
c0j0s Apr 6, 2023
77c2e4f
Update DG
c0j0s Apr 6, 2023
fd5df3e
Update Ha Duong PPP
dohaduong Apr 6, 2023
a14a2e1
Update person UG
c0j0s Apr 6, 2023
f1243d0
Enable customer window to open using list command
dohaduong Apr 6, 2023
06da70b
Fix list command
c0j0s Apr 6, 2023
49594d0
Update Timetable window to access exit command
dohaduong Apr 6, 2023
be4294b
Update UserGuide.md
c0j0s Apr 6, 2023
97bb09f
Update timetable window
dohaduong Apr 6, 2023
571b51c
Update Ha Duong PPP
dohaduong Apr 6, 2023
23479b7
Merge pull request #257 from zuohui48/master
c0j0s Apr 6, 2023
2ecefb4
Merge pull request #258 from dohaduong/bug-timetable-peD
c0j0s Apr 6, 2023
6649bff
Merge remote-tracking branch 'upstream/master' into patch-211
c0j0s Apr 6, 2023
7d89e32
Merge remote-tracking branch 'upstream/master' into patch-211
c0j0s Apr 6, 2023
5381d98
Fix ug command table
c0j0s Apr 6, 2023
30e46b1
Update ppp
c0j0s Apr 6, 2023
051f67b
Update AddressBookDialog.fxml
c0j0s Apr 6, 2023
cc75ac3
Update exit command in Command Summary - UG
dohaduong Apr 6, 2023
263a5f0
Fix minor bugs in UG.
dohaduong Apr 6, 2023
224b68f
Merge pull request #256 from c0j0s/patch-211
dohaduong Apr 6, 2023
fd159f1
Merge branch 'master' into bug-timetable-peD
dohaduong Apr 6, 2023
cec51df
Resolve merge conflicts
dohaduong Apr 6, 2023
10d863f
Resolve merge conflicts
dohaduong Apr 6, 2023
039a593
Resolve merge conflicts
dohaduong Apr 6, 2023
bbd5bf8
Resolve merge conflicts
dohaduong Apr 6, 2023
c693709
Resolve merge conflicts
dohaduong Apr 6, 2023
7e0e382
Resolve merge conflicts
dohaduong Apr 6, 2023
46ec404
Fix spelling errors
dohaduong Apr 6, 2023
12bc4b2
Fix spelling errors
dohaduong Apr 6, 2023
8c71ba9
Fix spelling errors
dohaduong Apr 6, 2023
8089aee
Fix spelling errors
dohaduong Apr 6, 2023
fec6d9f
Fix spelling errors
dohaduong Apr 6, 2023
6c64aef
Fix spelling errors
dohaduong Apr 6, 2023
39c555e
Update add_job command in UG
dohaduong Apr 6, 2023
cb97bc0
Fix spelling errors
dohaduong Apr 6, 2023
36cb97d
Fix spelling errors
dohaduong Apr 6, 2023
f466559
Update edit_job MESSAGE_USAGE
dohaduong Apr 6, 2023
02960bc
Resolve checkstyles violations
dohaduong Apr 6, 2023
730b7cf
Add tests for AddReminderCommand, DeleteReminderCommand, ListReminder…
dohaduong Apr 6, 2023
ebd38e3
Update Ha Duong PPP
dohaduong Apr 6, 2023
f8a5358
Update PPP
ZhuLeYao Apr 7, 2023
c0d39a5
Merge pull request #262 from ZhuLeYao/master
dohaduong Apr 7, 2023
0b3452b
Delete redundant CompleteWindow constructor
dohaduong Apr 7, 2023
2069837
Fix spelling errors in Ha Duong PPP
dohaduong Apr 7, 2023
461a679
Merge branch 'master' of https://github.com/AY2223S2-CS2103-F11-2/tp …
dohaduong Apr 7, 2023
4e48460
Fix spelling errors in Ha Duong PPP
dohaduong Apr 7, 2023
78da561
Final bug fix
dohaduong Apr 7, 2023
c068dab
Merge pull request #260 from dohaduong/bug-timetable-peD
dohaduong Apr 7, 2023
1639f62
Shorten Ha Duong PPP to make it more condensed
dohaduong Apr 7, 2023
7cee971
Shorten Ha Duong PPP to make it more condensed
dohaduong Apr 7, 2023
e510fff
Shorten Ha Duong PPP to make it more condensed
dohaduong Apr 7, 2023
781c738
Update chinjunan.md
ChinJunAn Apr 7, 2023
e4c2c5c
Update chinjunan.md
ChinJunAn Apr 7, 2023
cfe9565
Update minor bug in UG
dohaduong Apr 8, 2023
09f7313
Merge pull request #263 from dohaduong/bug-timetable-peD
c0j0s Apr 8, 2023
b722316
Add manual test case for Notifications. Update
ChinJunAn Apr 8, 2023
8b56ef4
Merge branch 'master' of https://github.com/ChinJunAn/tp
ChinJunAn Apr 8, 2023
6a1b8bd
Add notification feature in UG
ChinJunAn Apr 8, 2023
b522d79
no message
ChinJunAn Apr 8, 2023
478b497
Merge pull request #264 from ChinJunAn/master
ChinJunAn Apr 8, 2023
c1c46cc
Update UiClassDiagram and DeleteDeliveryJobSequenceDiagram in DG
dohaduong Apr 8, 2023
8244ead
Resolve merge conflicts
dohaduong Apr 8, 2023
4d1771d
Add EOF blank line
dohaduong Apr 8, 2023
ee8731c
Fix issue with job detail pane not updating
c0j0s Apr 8, 2023
b5fb3ee
Update UserGuide.md
c0j0s Apr 8, 2023
4d89f8b
Merge pull request #265 from dohaduong/bug-timetable-peD
c0j0s Apr 8, 2023
f7bf237
Merge remote-tracking branch 'upstream/master' into patch-208
c0j0s Apr 8, 2023
015c670
Add assertion to prevent null handlers
c0j0s Apr 8, 2023
e9df531
Added appendix: effort and manual testing for Timetable
dohaduong Apr 8, 2023
fc8f273
Merge pull request #266 from c0j0s/patch-208
ChinJunAn Apr 8, 2023
2812c47
Added appendix: effort and manual testing for Timetable
dohaduong Apr 8, 2023
9e7ecab
Added appendix effort
dohaduong Apr 8, 2023
0df7953
Add EOF blank line
dohaduong Apr 8, 2023
ea163d5
Add EOF blank line
dohaduong Apr 8, 2023
369ae4c
Add pre-req for Timetable Date command from timetable window.
dohaduong Apr 8, 2023
4bfdf7b
Add manual testing for DG
c0j0s Apr 8, 2023
1521ebd
Update github link to correct link
dohaduong Apr 8, 2023
cecc5e7
Update github link to correct link
dohaduong Apr 8, 2023
01e9a47
Merge pull request #268 from c0j0s/patch-208
dohaduong Apr 8, 2023
6bc18c0
Merge branch 'master' into bug-timetable-peD
dohaduong Apr 8, 2023
f234671
Update README
dohaduong Apr 8, 2023
23f7f1c
Update README
dohaduong Apr 8, 2023
61ce34f
Merge branch 'bug-timetable-peD' of https://github.com/dohaduong/tp i…
dohaduong Apr 8, 2023
dfa50a7
Update DG ui section
c0j0s Apr 8, 2023
163ec95
Merge pull request #267 from dohaduong/bug-timetable-peD
c0j0s Apr 8, 2023
02a5276
Merge remote-tracking branch 'upstream/master' into patch-208
c0j0s Apr 8, 2023
3025203
Update DeveloperGuide.md
c0j0s Apr 8, 2023
51ce3b4
Update DG, PPP and References
c0j0s Apr 8, 2023
4980fd3
Merge pull request #269 from c0j0s/patch-208
dohaduong Apr 9, 2023
e30ec81
Update README
dohaduong Apr 9, 2023
0fcc95d
Merge branch 'master' of https://github.com/AY2223S2-CS2103-F11-2/tp …
dohaduong Apr 9, 2023
c69e712
Update user stories
dohaduong Apr 9, 2023
8ed01a5
Update DG and Ha Duong PPP
dohaduong Apr 9, 2023
967482a
Finalize DG
dohaduong Apr 9, 2023
1b36921
Clear toggle list in use cases
dohaduong Apr 9, 2023
60fbaf6
Clear toggle list in use cases
dohaduong Apr 9, 2023
fbcb2f1
Update ha duong ppp
dohaduong Apr 9, 2023
9ce0f19
Add PPP link to AboutUs
dohaduong Apr 9, 2023
140aa7e
Update index.md
dohaduong Apr 9, 2023
8fa6ddf
Merge pull request #270 from dohaduong/bug-timetable-peD
c0j0s Apr 9, 2023
afa898a
Shorten appendix: effort to within 1 page limit
dohaduong Apr 9, 2023
6e7452f
Shorten appendix: effort to within 1 page limit
dohaduong Apr 9, 2023
017eeb7
Update DG
c0j0s Apr 9, 2023
a94bf45
Merge pull request #271 from dohaduong/bug-timetable-peD
c0j0s Apr 9, 2023
27322c1
Merge remote-tracking branch 'upstream/master' into patch-208
c0j0s Apr 9, 2023
563c47b
Fix spelling errors
dohaduong Apr 9, 2023
43ab144
Fix spelling errors
dohaduong Apr 9, 2023
016e9b3
Add test case for find_job
c0j0s Apr 9, 2023
2e41f42
Add test case for edit_job
c0j0s Apr 9, 2023
7719d07
Update EditDeliveryJobCommand.java
c0j0s Apr 9, 2023
3df6fa1
Update dg manual test cases
c0j0s Apr 9, 2023
20ad098
Merge pull request #272 from c0j0s/patch-208
dohaduong Apr 10, 2023
3ba3a0e
Add diagrams for complete and unschedule windows in DG
dohaduong Apr 10, 2023
8f703e8
Merge branch 'master' into bug-timetable-peD
dohaduong Apr 10, 2023
89fa3b4
Add diagrams for complete and unschedule windows in DG
dohaduong Apr 10, 2023
f84e8f0
Add diagrams for complete and unschedule windows in DG
dohaduong Apr 10, 2023
cc6b0b0
Add diagrams for complete and unschedule windows in DG
dohaduong Apr 10, 2023
40d8066
Merge pull request #273 from dohaduong/bug-timetable-peD
c0j0s Apr 10, 2023
16d83d5
Update Main Window UI
dohaduong Apr 10, 2023
c2bccc3
Resolve merge conflicts
dohaduong Apr 10, 2023
4f2c667
Resolve merge conflicts
dohaduong Apr 10, 2023
25cf855
Update documentation
zuohui48 Apr 10, 2023
3f2ca31
Merge pull request #274 from zuohui48/master
c0j0s Apr 10, 2023
66ab647
Fix DG formatting
c0j0s Apr 10, 2023
8e8d0a0
Add sequence diagram for Timetable UI
dohaduong Apr 10, 2023
097450d
Add sequence diagram for Timetable UI
dohaduong Apr 10, 2023
a1e092a
Add numbering
dohaduong Apr 10, 2023
6e13fc4
Merge branch 'master' into bug-timetable-peD
dohaduong Apr 10, 2023
99ec464
Merge pull request #275 from c0j0s/patch-208
dohaduong Apr 10, 2023
e7908c0
Add numbering
dohaduong Apr 10, 2023
eb704a0
Merge branch 'master' into bug-timetable-peD
dohaduong Apr 10, 2023
9524149
Merge pull request #276 from dohaduong/bug-timetable-peD
c0j0s Apr 10, 2023
8a81ddd
Add AB3 link to acknowledgement - DG
dohaduong Apr 10, 2023
b4c2480
Add AB3 link to acknowledgement - DG
dohaduong Apr 10, 2023
ab97488
Add table of content header
dohaduong Apr 10, 2023
786f062
Fix blurry img for diagrams
dohaduong Apr 10, 2023
c37029d
Fix blurry img for diagrams
dohaduong Apr 10, 2023
72e08e0
Update DG
c0j0s Apr 10, 2023
72e466c
Merge pull request #277 from dohaduong/bug-timetable-peD
c0j0s Apr 10, 2023
f6d5042
Merge remote-tracking branch 'upstream/master' into patch-208
c0j0s Apr 10, 2023
99e16d6
Update dohaduong.md
c0j0s Apr 10, 2023
ab06333
Fix import bugs
ZhuLeYao Apr 10, 2023
131be65
Merge pull request #278 from c0j0s/patch-208
c0j0s Apr 10, 2023
e76366f
update PPP
zuohui48 Apr 10, 2023
b60e2eb
Update optional date and slot
ZhuLeYao Apr 10, 2023
f7de24b
Update ug
ZhuLeYao Apr 10, 2023
5fa49d6
Merge pull request #280 from zuohui48/master
ChinJunAn Apr 10, 2023
5c1cac5
Fix checkstyle
ZhuLeYao Apr 10, 2023
5fb3448
Merge pull request #279 from ZhuLeYao/master
dohaduong Apr 10, 2023
71d4bbc
Update tests
ZhuLeYao Apr 10, 2023
2398fe2
Merge pull request #281 from ZhuLeYao/master
ZhuLeYao Apr 10, 2023
d5d26f0
Fix checkstyles violations
dohaduong Apr 10, 2023
afa35dd
Update DG
ZhuLeYao Apr 10, 2023
8dbcbac
Merge branch 'master' into master
ZhuLeYao Apr 10, 2023
a68c3fa
Fix checkstyles violations
dohaduong Apr 10, 2023
5eb02c2
Merge pull request #282 from dohaduong/bug-timetable-peD
ZhuLeYao Apr 10, 2023
f59b826
Merge pull request #283 from ZhuLeYao/master
dohaduong Apr 10, 2023
1b6b39c
FIx newline
c0j0s Apr 10, 2023
ebf5d29
Merge pull request #284 from c0j0s/patch-208
c0j0s 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
30 changes: 16 additions & 14 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -306,7 +306,7 @@ Step 3. The user now wants to view a summary of the statistics of the jobs in th
The `stats` command will open up the statistics window, where a list of statistics will be shown.

The `stats` command will call `Logic#getFilteredDeliveryJobList()` which will return a list of delivery jobs.
The statistics is then generated based on the list of delivery jobs and shown to the user in the Statistics Window.
The statistics is then generated based on the list of delivery jobs and shown to the user in the Statistics Window.

The following sequence diagram shows how the statistics operation works:

@@ -318,35 +318,37 @@ The following sequence diagram shows how the statistics operation works:
**Aspect: How statistics are stored:**

* **Alternative 1 (current choice):** Saves each statistic as a Statistic object in the list
* Pros: Easy to store and display statistics
* Pros: Easy to store and display statistics
* Cons: May have performance issues in terms of memory usage and execution delay.

* **Alternative 2:** Display each statistic individually
* **Alternative 2:** Display each statistic individually
* Pros: Will use less memory and faster to execute
* Cons: Will make code longer and increases coupling


_{more aspects and alternatives to be added}_

### \[Proposed\] Update job feature
### \[Proposed\] Delivery Job System
#### Proposed Implementation

Given below is an example usage scenario and how the statistics mechanism behaves at each step.
Given below is an example usage scenario and how the update job mechanism behaves at each step. The other job system commands follow a similar excution pattern with their own command logics.

Step 1. The user launches the application for the first time.
Step 2. The user selects a job to be updated.
Step 3. The user edits preexisting inputs to update the job.
GUI Mode:
Step 1. The user launches the application for the first time.
Step 2. The user selects a job to be updated.
Step 3. The user edits preexisting inputs to update the job.

The following sequence diagram shows how the update operation works:
The command pattern was followed closely with difference only in the execution layer where the `EditDeliveryJobCommand` constructs a `DeliveryJob` object through a builder pattern.

//to be added
The builder construct was initially introduced to handle optional and null arguments from `find_job` command and GUI. Here, we are reusing the builder to construct a `DeliveryJob` class.

The following sequence diagram shows how the update operation works:
The builder class returns a `DeliveryJob` object only when `EditDeliveryJobCommand` calls the `DeliveryJob.Builder#build()` method.

//to be added
Operation resume to standard process from this point onwards.

#### Design considerations:
The following sequence diagram shows how the update operation works:

//to be added
![EditDeliveryJobSequenceDiagram](images/EditDeliveryJobSequenceDiagram.png)

### Notification feature
#### Implementation
106 changes: 86 additions & 20 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ title: User Guide
Duke Driver is a desktop app for managing delivery jobs and contacts. If you are looking to perform better at your delivery job, Duke Driver can assist you to finish your daily tasks more efficiently, according to your requirements.

* Table of Contents
* Feature Tracks
* Features
* Delivery tasking management system:
* View jobs
* Add jobs individually
@@ -50,13 +50,13 @@ Duke Driver is a desktop app for managing delivery jobs and contacts. If you are
Some example commands you can try:

* `list` : Lists all contacts.

* `list_job` : Lists all jobs.

* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : Adds a contact named `John Doe` to the Address Book.

* `timetable` : Shows timetable of current week.

* `exit` : Exits the app.

6. Refer to the [Features](#features) below for details of each command.
@@ -181,29 +181,36 @@ Commands are input in this text field

Adds a delivery job to the delivery job system.

Format: `add_job si/SENDER_ID ri/RECEIPIENT_ID [date/DELIVERY_DATE] [slot/DELIVERY_SLOT] [earn/EARNING]`
Format: `add_job si/SENDER_ID ri/RECEIPIENT_ID [date/DELIVERY_DATE] [slot/DELIVERY_SLOT] [earn/EARNING]`
Alternative: Click on `Delivery Job System` in menu bar > `Create Job`. Fill in relevant details and click `Create Job` button. (Click `Cancel` button to stop adding)
![Create Job](images/Addjob.png)

<div markdown="span" class="alert alert-primary">:bulb: **Tip:**
Description field is only available in GUI mode.
</div>

* Adds the job to delivery job system.
* `SENDER_ID` and `RECEIPIENT_ID` **must be valid IDs** (i.e. must exist in address book).
* Delivery date **must be in format YYYY-mm-DD**.
* Delivery slot **must be a positive integer** and valid slots should be within the range from 1 to 5.
* Slot 1: 10AM - 11AM, Slot 2: 11AM - 12PM, Slot 3: 1PM - 2PM, Slot 4: 2PM - 3PM, Slot 5: 3PM - 4PM.
* Delivery slots outside valid range will be classified as "Extra hours (4PM++)".
* Delivery slot **must be a positive integer** and valid slots should be within the range from 1 to 5.
* Slot 1: 10AM - 11AM, Slot 2: 11AM - 12PM, Slot 3: 1PM - 2PM, Slot 4: 2PM - 3PM, Slot 5: 3PM - 4PM.
* Delivery slots outside valid range will be classified as "Extra hours (4PM++)".
* Earning **must be a double**.

Examples:
* `add_job si/ALE874 ri/DAV910 date/2023-03-01 slot/3`
* `add_job si/ALE874 ri/DAV910 date/2023-03-01 slot/3 earn/20`




### 2.2. Mass importing jobs

Format: Click on `Delivery Job System` in menu bar > `Import Jobs` > select a file containing all the jobs to be imported

* File **must be a CSV file**.
* There must be a header row as the first row will be skipped when file is parsed.
* These columns `Recipient` `Sender` `Delivery date` `Delivery slot` `Price` `Description` `Recipient` `Recipient's Name` `Recipient's Phone` `Recipient's Email` `Recipient's Address` `Recipient's Tag` `Sender's Name` `Sender's Phone` `Sender's Email` `Sender's Address` `Sender's Tag` must exist.
* These columns `Recipient` `Sender` `Delivery date` `Delivery slot` `Price` `Description` `Recipient` `Recipient's Name` `Recipient's Phone` `Recipient's Email` `Recipient's Address` `Recipient's Tag` `Sender's Name` `Sender's Phone` `Sender's Email` `Sender's Address` `Sender's Tag` must exist.
* The optional details may be empty cells. e.g. `Sender's Tag` may be empty.
* If recipient/ sender does not already exist in customer address book i.e. new customer, recipient/ sender will also be added into the address book.

@@ -213,13 +220,66 @@ Shows a list of all jobs in the delivery job system in Main Window.

Format: `list_job`

### 2.3. Listing all customers : `list`
![list job](images/listJob.png)

Switch to Customer Window.
Shows a list of all persons/customers in the address book in Customer Window.
### 2.3.1. Sort and filter jobs

Format: `list`
![sort filter job](images/listJobSortFilter.png)

### 2.4. Edit jobs : `edit_job`

Edit a selected job by Index or Job id.

Format: `edit_job INDEX (must be a positive integer) | [ji/Job Id] [si/Sender Id] [ri/Recipient] [date/Date] [slot/Slot] [earn/Earn] [done/t | f]...`
* The index must be a positive integer 1, 2, 3, ...
* Refer to `list_job` for argument constrains.

Examples:
* `edit_job 1 slot/4`
* `edit_job 1 date/2023-03-01`
* `edit_job ji/<job_id> si/ALE874 ri/DAV910 date/2023-03-01 slot/3 earn/20`

Alternative:
![edit job](images/editJob.png)

### 2.5. Mark job as in/complete : `com_job` | `uncom_job`

Mark a job as completed or not completed.

Complete Format: `com_job <job id>`
Incomplete Format: `uncom_job <job id>`

* `com_job ALBE1989C9`
* `uncom_job ALBE1989C9`

Alternative:
![complete job](images/comJob.png)

### 2.6. Find job : `find_job`

Find a job that matches all supplied query options.

Format: `find_job [ji/JOB_ID] [si/SENDER_ID] [ri/RECEIPIENT_ID] [date/DELIVERY_DATE] [slot/DELIVERY_SLOT] [earn/EARNING] [done/ t | f]`
* Refer to `list_job` for argument constrains.

Examples:
* `find_job ji/<job_id>`
* `find_job date/2023-03-01 slot/4`
* `find_job ji/<job_id> si/ALE874 ri/DAV910 date/2023-03-01 slot/3 earn/20`

### 2.7. Delete job : `delete_job`

Deletes a job from the system.
Support `del` key in job list.

Format: `delete_job <job_id>`
* The job id must be **valid**.

Examples:
* `delete_job <job_id>`

Alternative:
![delete job](images/delJob.png)

## 3. Features available for Reminders
### *Can only access from Main Window*
@@ -303,10 +363,10 @@ Alternative: Click on `Timetable` in menu bar > `Unscheduled Jobs`
![Statistics](images/Statistics.png)

Shows a summary of statistics related to the jobs in the job list
* Total number of jobs in the job list
* Total earnings from all jobs in the job list
* Total number of completed jobs in the job list
* Total number of pending jobs in the job list
* Total number of jobs in the job list
* Total earnings from all jobs in the job list
* Total number of completed jobs in the job list
* Total number of pending jobs in the job list

Similar statistics are shown for jobs in the previous week

@@ -349,8 +409,8 @@ If your changes to the data file makes its format invalid, AddressBook will disc

## Command summary
**:information_source: Notes about the command format:**<br>
* Commands that start with *(C)* could only be accessed from Customer Window
* Commands that start with *(M)* could only be accessed from Main Window
* Commands that start with *(C)* could only be accessed from Customer Window
* Commands that start with *(M)* could only be accessed from Main Window
* Commands that start with *(B)* could be accessed from both Main and Customer Window


@@ -366,6 +426,12 @@ If your changes to the data file makes its format invalid, AddressBook will disc
| ***(M)* Import Jobs** | click on `Delivery Job System` in menu bar > `Import Jobs` > select CSV file containing jobs to be imported > `open` |
| ***(M)* List reminder** | `list_reminder` |
| ***(M)* Add reminder** | `add_reminder d/DESCRIPTION time/YYY-MM-DD HH:mm` <br> e.g.,`add_reminder d/Submit homework time/2023-12-12 12:00` |
| ***(M)* List Job** | `list_job` |
| ***(M)* Edit Job** | `edit_job INDEX \| [ji/Job Id] [si/Sender Id] [ri/Recipient] [date/Date] [slot/Slot] [earn/Earn] [done/t \| f]...` |
| ***(M)* Complete Job** | `com_job <job id>` |
| ***(M)* UnComplete Job** | `uncom_job <job id>` |
| ***(M)* Find Job** | `find_job [ji/JOB_ID] [si/SENDER_ID] [ri/RECEIPIENT_ID] [date/DELIVERY_DATE] [slot/DELIVERY_SLOT] [earn/EARNING] [done/ t \| f]` |
| ***(M)* Delete Job** | `delete_job <job_id>`<br/>OR<br/>Select from job list > press `del` |
| ***(M)* Delete reminder** | `delete_reminder INDEX` <br> e.g., `delete_reminder 3` |
| ***(M)* Show Timetable** | `timetable`<br/>OR<br/>Click on `Timetable` in menu bar > `Scheduled Jobs` |
| ***(M)* Show Timetable of Specific Week** | `timetable_date date/YYYY-mm-DD`<br/>OR<br/>Click on `Timetable` in menu bar > `Scheduled Jobs` > input `timetable_date date/YYYY-mm-DD`<br/>e.g., `timetable_date date/2023-03-30` |
20 changes: 10 additions & 10 deletions docs/diagrams/DeleteSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":DukeDriverParser" as DukeDriverParser LOGIC_COLOR
participant ":DeleteCommandParser" as DeleteCommandParser LOGIC_COLOR
participant "d:DeleteCommand" as DeleteCommand LOGIC_COLOR
participant ":CommandResult" as CommandResult LOGIC_COLOR
@@ -16,17 +16,17 @@ end box
[-> LogicManager : execute("delete 1")
activate LogicManager

LogicManager -> AddressBookParser : parseCommand("delete 1")
activate AddressBookParser
LogicManager -> DukeDriverParser : parseCommand("delete 1")
activate DukeDriverParser

create DeleteCommandParser
AddressBookParser -> DeleteCommandParser
DukeDriverParser -> DeleteCommandParser
activate DeleteCommandParser

DeleteCommandParser --> AddressBookParser
DeleteCommandParser --> DukeDriverParser
deactivate DeleteCommandParser

AddressBookParser -> DeleteCommandParser : parse("1")
DukeDriverParser -> DeleteCommandParser : parse("1")
activate DeleteCommandParser

create DeleteCommand
@@ -36,14 +36,14 @@ activate DeleteCommand
DeleteCommand --> DeleteCommandParser : d
deactivate DeleteCommand

DeleteCommandParser --> AddressBookParser : d
DeleteCommandParser --> DukeDriverParser : d
deactivate DeleteCommandParser
'Hidden arrow to position the destroy marker below the end of the activation bar.
DeleteCommandParser -[hidden]-> AddressBookParser
DeleteCommandParser -[hidden]-> DukeDriverParser
destroy DeleteCommandParser

AddressBookParser --> LogicManager : d
deactivate AddressBookParser
DukeDriverParser --> LogicManager : d
deactivate DukeDriverParser

LogicManager -> DeleteCommand : execute()
activate DeleteCommand
108 changes: 108 additions & 0 deletions docs/diagrams/EditDeliveryJobSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
@startuml
!include style.puml

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":DukeDriverParser" as DukeDriverParser LOGIC_COLOR
participant ":EditDeliveryJobCommandParser" as EditDeliveryJobCommandParser LOGIC_COLOR
participant ":EditDeliveryJobDescriptor" as EditDeliveryJobDescriptor LOGIC_COLOR
participant "d:EditDeliveryJobCommand" as EditDeliveryJobCommand LOGIC_COLOR
participant ":CommandResult" as CommandResult LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant "toEdit:DeliveryJob.Builder" as DeliveryJob.Builder MODEL_COLOR
participant ":DeliveryJob" as DeliveryJob MODEL_COLOR
end box

[-> LogicManager : execute("edit_job ji/ABCXX slot/1")
activate LogicManager

LogicManager -> DukeDriverParser : parseCommand("edit_job ji/ABCXX slot/1")
activate DukeDriverParser

create EditDeliveryJobCommandParser
DukeDriverParser -> EditDeliveryJobCommandParser
activate EditDeliveryJobCommandParser

EditDeliveryJobCommandParser --> DukeDriverParser
deactivate EditDeliveryJobCommandParser

DukeDriverParser -> EditDeliveryJobCommandParser : parse("ji/ABCXX slot/1")
activate EditDeliveryJobCommandParser

create EditDeliveryJobDescriptor
EditDeliveryJobCommandParser -> EditDeliveryJobDescriptor
activate EditDeliveryJobDescriptor

EditDeliveryJobDescriptor --> EditDeliveryJobCommandParser
deactivate EditDeliveryJobDescriptor

EditDeliveryJobCommandParser -> EditDeliveryJobDescriptor: setJobId("ABCXX")
activate EditDeliveryJobDescriptor
EditDeliveryJobDescriptor --> EditDeliveryJobCommandParser
deactivate EditDeliveryJobDescriptor

EditDeliveryJobCommandParser -> EditDeliveryJobDescriptor: setDeliverySlot("1")
activate EditDeliveryJobDescriptor
EditDeliveryJobDescriptor --> EditDeliveryJobCommandParser
deactivate EditDeliveryJobDescriptor

create EditDeliveryJobCommand
EditDeliveryJobCommandParser -> EditDeliveryJobCommand
activate EditDeliveryJobCommand

EditDeliveryJobCommand --> EditDeliveryJobCommandParser : d
deactivate EditDeliveryJobCommand

EditDeliveryJobCommandParser --> DukeDriverParser : d
deactivate EditDeliveryJobCommandParser
'Hidden arrow to position the destroy marker below the end of the activation bar.
EditDeliveryJobCommandParser -[hidden]-> DukeDriverParser
destroy EditDeliveryJobCommandParser

DukeDriverParser --> LogicManager : d
deactivate DukeDriverParser

LogicManager -> EditDeliveryJobCommand : execute()
activate EditDeliveryJobCommand

Create DeliveryJob.Builder
EditDeliveryJobCommand -> DeliveryJob.Builder : Builder()
activate DeliveryJob.Builder
DeliveryJob.Builder --> EditDeliveryJobCommand
deactivate DeliveryJob.Builder
EditDeliveryJobCommand -> DeliveryJob.Builder : setJobId("ABCXX")
activate DeliveryJob.Builder
DeliveryJob.Builder --> EditDeliveryJobCommand
deactivate DeliveryJob.Builder
EditDeliveryJobCommand -> DeliveryJob.Builder : setSlot("1")
activate DeliveryJob.Builder
DeliveryJob.Builder --> EditDeliveryJobCommand
deactivate DeliveryJob.Builder
EditDeliveryJobCommand -> DeliveryJob.Builder : build()
activate DeliveryJob.Builder
DeliveryJob.Builder --> EditDeliveryJobCommand : toEdit
deactivate DeliveryJob.Builder

EditDeliveryJobCommand -> DeliveryJob : setDeliveryJob(toEdit)
activate DeliveryJob

DeliveryJob --> EditDeliveryJobCommand
deactivate DeliveryJob

destroy DeliveryJob.Builder

create CommandResult
EditDeliveryJobCommand -> CommandResult
activate CommandResult

CommandResult --> EditDeliveryJobCommand
deactivate CommandResult

EditDeliveryJobCommand --> LogicManager : result
deactivate EditDeliveryJobCommand

[<--LogicManager
deactivate LogicManager
@enduml
Binary file added docs/images/EditDeliveryJobSequenceDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/Ui.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/addressbookEntry.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/comJob.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/delJob.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/editJob.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/listJob.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/listJobSortFilter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
---
layout: page
title: AddressBook Level-3
title: Duke Driver
---

[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions)
[![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://codecov.io/gh/se-edu/addressbook-level3)
[![CI Status](https://github.com/AY2223S2-CS2103-F11-2/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2223S2-CS2103-F11-2/tp/actions)
[![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://github.com/nus-cs2103-AY2223S2/tp/pull/119)

![Ui](images/Ui.png)

**AddressBook is a desktop application for managing your contact details.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).

* If you are interested in using AddressBook, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start).
* If you are interested in using Duke Driver, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start).
* If you are interested about developing AddressBook, the [**Developer Guide**](DeveloperGuide.html) is a good place to start.