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

[T10-2] Health Book #111

Open
wants to merge 621 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 83 commits
Commits
Show all changes
621 commits
Select commit Hold shift + click to select a range
121c76d
no message
florafong97 Nov 3, 2018
190cff1
Prescription differentiated only by name
florafong97 Nov 5, 2018
199835b
AddPrescriptionCommand to take in appointment without ID + tests
florafong97 Nov 5, 2018
f3d75cc
deletePrescription Commnd to take in appt without prefix + tests
florafong97 Nov 5, 2018
9024bf7
no message
florafong97 Nov 5, 2018
c2a49c4
Merge pull request #82 from florafong97/master
florafong97 Nov 5, 2018
362fd74
fix bug mentioned in Dry Run
YangYafei1998 Nov 6, 2018
2bbed53
no message
YangYafei1998 Nov 6, 2018
f6f9d6f
fix undo of delete-medical-history
YangYafei1998 Nov 6, 2018
e842e5e
checkstyle
YangYafei1998 Nov 6, 2018
e27d909
no message
YangYafei1998 Nov 6, 2018
566ef20
no message
YangYafei1998 Nov 6, 2018
87b93b5
Fix RegisterCommands to enforce uniqueness of names
elroyhaw Nov 6, 2018
8697737
Remove whitespaces
elroyhaw Nov 6, 2018
8eac254
docs
YangYafei1998 Nov 6, 2018
f5fc322
Merge pull request #98 from YangYafei1998/master
elroyhaw Nov 6, 2018
a27246a
Update relevant test files according to bug fix
elroyhaw Nov 6, 2018
a43c81a
Update relevant test cases
elroyhaw Nov 6, 2018
afcc88b
Merge pull request #99 from elroyhaw/master
elroyhaw Nov 6, 2018
28fbc1b
RemarkCommand to take in patient name + tests
florafong97 Nov 6, 2018
53b34fc
checkstyle
florafong97 Nov 6, 2018
73e22df
Merge pull request #100 from florafong97/master
florafong97 Nov 6, 2018
5b79408
AddPrescriptionCommand to take note of allergies
florafong97 Nov 7, 2018
8670251
Fix sample util able to add new patient and doctor
giamjuxian Nov 7, 2018
3fced9d
resolve test error
florafong97 Nov 7, 2018
05c29a1
Change uniqueness of person to name and phone
elroyhaw Nov 7, 2018
2c2843e
Merge pull request #103 from elroyhaw/master
elroyhaw Nov 7, 2018
ecb5eca
Merge pull request #101 from giamjuxian/sample-data-fix
giamjuxian Nov 7, 2018
d109ac9
Merge pull request #102 from florafong97/master
florafong97 Nov 7, 2018
bb77d25
fix prefix thing for medical history
YangYafei1998 Nov 7, 2018
0a74a5e
update docs
YangYafei1998 Nov 7, 2018
98e8abe
Add Doctor and Patient Phone into Appointment class
elroyhaw Nov 7, 2018
302b7a3
Merge pull request #106 from elroyhaw/master
elroyhaw Nov 7, 2018
451a0db
update user guide for undo/redo command
florafong97 Nov 7, 2018
401eb99
Change same person to be name and doctor
giamjuxian Nov 7, 2018
63bc538
Fix issue #96
elroyhaw Nov 7, 2018
5aa913b
Revert "Add Doctor and Patient Phone into Appointment class"
giamjuxian Nov 7, 2018
6befc20
Merge pull request #108 from CS2103-AY1819S1-T10-2/revert-106-master
giamjuxian Nov 7, 2018
f906928
Merge branch 'master' into master
elroyhaw Nov 7, 2018
f85ea5a
Documentations
florafong97 Nov 7, 2018
a3acf30
Merge pull request #109 from elroyhaw/master
elroyhaw Nov 7, 2018
70c8ea8
Merge remote-tracking branch 'upstream/revert-106-master'
giamjuxian Nov 7, 2018
e7ea29e
update docs
YangYafei1998 Nov 7, 2018
5d1e94a
Fix test errors
giamjuxian Nov 7, 2018
fd61e21
Fix test errors
giamjuxian Nov 7, 2018
5ee7a67
Fix class exception error please work
giamjuxian Nov 7, 2018
3e531f8
Add space to config
giamjuxian Nov 7, 2018
1db8a70
Resolve checkstyle
giamjuxian Nov 7, 2018
0a27e06
Test delete first person
giamjuxian Nov 7, 2018
40d979d
Fix class exception
giamjuxian Nov 7, 2018
192289c
Resolve style check
giamjuxian Nov 7, 2018
4ce361b
Revert "Fix issue #96"
giamjuxian Nov 7, 2018
9d832f1
Merge pull request #114 from CS2103-AY1819S1-T10-2/revert-109-master
giamjuxian Nov 7, 2018
8d7fbdf
Revert "Change uniqueness of person to name and phone"
giamjuxian Nov 7, 2018
51a132d
Merge pull request #115 from CS2103-AY1819S1-T10-2/revert-103-master
giamjuxian Nov 7, 2018
bb6cc0b
Test travis
giamjuxian Nov 7, 2018
77659eb
Merge pull request #116 from giamjuxian/reset-branch
giamjuxian Nov 7, 2018
de02827
Merge remote-tracking branch 'upstream/master'
giamjuxian Nov 7, 2018
77ee176
Fix isSamePerson
giamjuxian Nov 7, 2018
a7a74ee
Merge branch 'master' of https://github.com/CS2103-AY1819S1-T10-2/main
YangYafei1998 Nov 7, 2018
d986930
adding docs
YangYafei1998 Nov 7, 2018
c6f664b
Merge pull request #110 from giamjuxian/master
giamjuxian Nov 7, 2018
3bf804f
Edit prefix typo
giamjuxian Nov 7, 2018
d22faa7
adding docs
YangYafei1998 Nov 7, 2018
90c23fc
Fix issue #96
elroyhaw Nov 7, 2018
0944ed5
Merge pull request #117 from giamjuxian/master
giamjuxian Nov 7, 2018
5f69439
Merge pull request #118 from YangYafei1998/master
giamjuxian Nov 7, 2018
8b1ca67
Add optional phone parameter to add-medical-history command
giamjuxian Nov 7, 2018
a447682
Add delete medical history optional parameter
giamjuxian Nov 7, 2018
c026b8d
Add test to include duplicate command exception
giamjuxian Nov 7, 2018
d2de8dc
Merge pull request #121 from giamjuxian/medical-appointment-parameter
giamjuxian Nov 8, 2018
64ab0e5
Resolve test cases for DeletePersonCommand
elroyhaw Nov 8, 2018
1de5b00
Resolve exceeding line length
elroyhaw Nov 8, 2018
b77e0c9
Adding allergic prescription
florafong97 Nov 8, 2018
5b1d9d0
Merge pull request #119 from elroyhaw/master
elroyhaw Nov 8, 2018
bfdc38d
Merge branch 'master' into master
florafong97 Nov 8, 2018
4dc21a4
Merge pull request #124 from florafong97/master
florafong97 Nov 8, 2018
bfa8a69
remove case sensitivity for addprescription command + test
florafong97 Nov 8, 2018
2404b53
update use guide for filter commands
florafong97 Nov 8, 2018
2e307b5
Remove case sensitivity for DeletePrescriptionCommand + test
florafong97 Nov 8, 2018
9d5cf89
Remove case sensitivity from register-doctor/patient and delete-docto…
florafong97 Nov 8, 2018
868edb7
no message
florafong97 Nov 9, 2018
c1fa19d
Merge pull request #125 from florafong97/master
florafong97 Nov 9, 2018
9f6b4e7
Update UI and some default messages
elroyhaw Nov 10, 2018
1acaeb4
edited message
florafong97 Nov 10, 2018
456ca54
remark command to parse in and exscute option phone field
florafong97 Nov 10, 2018
20f1577
edited comment
florafong97 Nov 10, 2018
db8de14
tests for new remark command
florafong97 Nov 10, 2018
d02cd36
add duplicate name for testing
florafong97 Nov 10, 2018
7e1f7f4
Model for Allergy
florafong97 Nov 10, 2018
5828335
Merge pull request #127 from florafong97/master
florafong97 Nov 10, 2018
5390892
remark command test for duplicates
florafong97 Nov 10, 2018
235ed4c
Add additional optional parameter phone for delete-patient and delete…
giamjuxian Nov 10, 2018
c786b04
Add tests to delete-patient and delete-doctor
giamjuxian Nov 10, 2018
fa4e1ca
Merge pull request #128 from giamjuxian/master
giamjuxian Nov 10, 2018
03be515
Merge branch 'master' of https://github.com/CS2103-AY1819S1-T10-2/main
elroyhaw Nov 10, 2018
2a72120
Add optional parameter phone to view commands
giamjuxian Nov 10, 2018
cd15397
Merge pull request #129 from giamjuxian/master
giamjuxian Nov 10, 2018
00f0a0a
add appointment consturctor to addappointment.java
florafong97 Nov 10, 2018
a15022f
CompleteApptComman.java: edited equals method
florafong97 Nov 10, 2018
ad3a41d
PersonUtil.java: get register-doctor/patient command string
florafong97 Nov 10, 2018
b724972
Appointment util for creating user input strings
florafong97 Nov 10, 2018
89bfabe
RemarkCommand: edited equality
florafong97 Nov 10, 2018
7f7f727
Add tests to AddressbookParserTest
florafong97 Nov 10, 2018
5161fc8
Update User and Developer guide on register-doctor
giamjuxian Nov 10, 2018
0aa729d
Merge branch 'master' into master
florafong97 Nov 10, 2018
a0ed18e
Resolve style check
giamjuxian Nov 10, 2018
ca798b1
checkstyle
florafong97 Nov 10, 2018
a600c60
Merge branch 'master' of https://github.com/florafong97/main
florafong97 Nov 10, 2018
8c1a5a5
Merge pull request #131 from giamjuxian/master
giamjuxian Nov 10, 2018
b969f5d
checkstyle
florafong97 Nov 10, 2018
fd7325f
no message
florafong97 Nov 10, 2018
03c6fd1
Merge pull request #130 from florafong97/master
giamjuxian Nov 10, 2018
53dbf0a
Update UserGuide.adoc
giamjuxian Nov 10, 2018
357e115
Update UserGuide.adoc
giamjuxian Nov 10, 2018
4b34f82
Update UserGuide.adoc
giamjuxian Nov 10, 2018
95344dd
Update UserGuide.adoc
giamjuxian Nov 10, 2018
c5c617b
Update UserGuide.adoc
giamjuxian Nov 10, 2018
6dc271e
Remove comma
elroyhaw Nov 10, 2018
54f7ffa
Minor changes
elroyhaw Nov 10, 2018
980ed96
Update UI Class Diagram
elroyhaw Nov 10, 2018
a65c39c
Add CompleteAppointment tests
elroyhaw Nov 10, 2018
a49aa58
Merge branch 'master' into master
elroyhaw Nov 10, 2018
d6ef67f
logical part of Allergy and Condition
YangYafei1998 Nov 10, 2018
a060fe2
storage part
YangYafei1998 Nov 10, 2018
ee3bb06
a tiny change to ui
YangYafei1998 Nov 10, 2018
fbfe5fc
testing part
YangYafei1998 Nov 10, 2018
018130a
docs
YangYafei1998 Nov 10, 2018
74d353d
checkstyle
YangYafei1998 Nov 10, 2018
0bf039b
checkstyle
YangYafei1998 Nov 10, 2018
34eea62
no message
YangYafei1998 Nov 10, 2018
29a1f82
no message
YangYafei1998 Nov 10, 2018
9114370
Fix UI bug
elroyhaw Nov 10, 2018
4d8520d
Merge branch 'master' of https://github.com/CS2103-AY1819S1-T10-2/main
elroyhaw Nov 10, 2018
5412e59
Merge branch 'master' of https://github.com/elroyhaw/main
elroyhaw Nov 10, 2018
71ce423
Update UI image
elroyhaw Nov 10, 2018
bf4d6ff
checkstyle
YangYafei1998 Nov 10, 2018
e89de62
Merge branch 'master' of https://github.com/CS2103-AY1819S1-T10-2/main
YangYafei1998 Nov 10, 2018
e708b6b
no message
YangYafei1998 Nov 10, 2018
a48a58f
add more tests
YangYafei1998 Nov 11, 2018
916e71a
Update Appointment related tests
elroyhaw Nov 11, 2018
2788e34
Fix Travis error
elroyhaw Nov 11, 2018
63f5054
add tests
YangYafei1998 Nov 11, 2018
5b2df8e
Fix Travis error
elroyhaw Nov 11, 2018
d8a7701
Merge pull request #126 from elroyhaw/master
elroyhaw Nov 11, 2018
01d8bad
more test cases
YangYafei1998 Nov 11, 2018
b202849
Merge branch 'master' of https://github.com/CS2103-AY1819S1-T10-2/main
YangYafei1998 Nov 11, 2018
e942b4e
correct the example condition format (delete "-")
YangYafei1998 Nov 11, 2018
240ca1e
Fix #137
elroyhaw Nov 11, 2018
115fa7d
Merge pull request #143 from YangYafei1998/master
elroyhaw Nov 11, 2018
676118d
Merge pull request #144 from elroyhaw/master
elroyhaw Nov 11, 2018
9d56a83
handle duplicated input in delete-medical-history
YangYafei1998 Nov 11, 2018
3158df9
fix message typo
YangYafei1998 Nov 11, 2018
e7e57d8
add test
YangYafei1998 Nov 11, 2018
b9df0e7
Add Project Portfolio Page for elroyhaw
elroyhaw Nov 11, 2018
f8ccbae
Update UserGuide
elroyhaw Nov 11, 2018
fa0a0ed
Remove trailing whitespaces
elroyhaw Nov 11, 2018
4c67b3b
Merge pull request #146 from elroyhaw/master
elroyhaw Nov 11, 2018
24223c4
Update elroyhaw.adoc
elroyhaw Nov 11, 2018
ee97b5b
Update elroyhaw.adoc
elroyhaw Nov 11, 2018
b32a454
Update DeveloperGuide.adoc
elroyhaw Nov 11, 2018
864dcdb
Merge pull request #145 from YangYafei1998/master
giamjuxian Nov 11, 2018
8ebc3a4
Update UserGuide.adoc
elroyhaw Nov 11, 2018
343dc84
update developerGuider sequence diagram
YangYafei1998 Nov 11, 2018
ad0131a
Update DeveloperGuide.adoc and add sequence diagrams for several comm…
elroyhaw Nov 11, 2018
a1975c7
Remove whitespaces
elroyhaw Nov 11, 2018
987b86c
Merge pull request #147 from elroyhaw/master
elroyhaw Nov 11, 2018
cb96211
Add RegisterDoctorSequenceDiagram.png
elroyhaw Nov 11, 2018
cae4b4d
Update UserGuide.adoc
elroyhaw Nov 11, 2018
0f8bd60
Update UserGuide.adoc
elroyhaw Nov 11, 2018
99ee7a1
Update DeveloperGuide.adoc
elroyhaw Nov 11, 2018
b909757
Merge branch 'master' of https://github.com/CS2103-AY1819S1-T10-2/main
YangYafei1998 Nov 11, 2018
79bbb83
add Project Portfolio Page
YangYafei1998 Nov 11, 2018
cdc44af
add PPP to aboutUs
YangYafei1998 Nov 11, 2018
9ea21e9
no message
YangYafei1998 Nov 11, 2018
8514d4f
correct typo
YangYafei1998 Nov 11, 2018
67a73af
Merge pull request #149 from YangYafei1998/master
giamjuxian Nov 11, 2018
b4027a3
updated message usage for all commands
florafong97 Nov 12, 2018
6b9ca8b
Merge branch 'master' of https://github.com/CS2103-AY1819S1-T10-2/main
florafong97 Nov 12, 2018
334dfe0
AddPrescriptionCommand: able to find patient/doctor in list that allo…
florafong97 Nov 12, 2018
666567f
Added pastAppointments into Doctor for tracking doctor in appointment…
florafong97 Nov 12, 2018
6968028
Resolve test error
florafong97 Nov 12, 2018
a4bb85b
resolve test error
florafong97 Nov 12, 2018
fad81c7
Merge pull request #150 from florafong97/master
florafong97 Nov 12, 2018
75ca279
removed pastappointment in doctor
florafong97 Nov 12, 2018
243daf7
Merge pull request #151 from florafong97/master
florafong97 Nov 12, 2018
433e02a
update developer's guide for add and delete prescription
florafong97 Nov 12, 2018
3388c8a
Refactor all code
giamjuxian Nov 12, 2018
c2f5a53
Merge pull request #152 from giamjuxian/master
giamjuxian Nov 12, 2018
d724ebd
Add Calendar Component and update storage component
giamjuxian Nov 12, 2018
dde4ef9
Merge pull request #153 from giamjuxian/master
giamjuxian Nov 12, 2018
b26e78e
Update register-doctor and register-patient documentation
giamjuxian Nov 12, 2018
3669776
Restart checker
giamjuxian Nov 12, 2018
012eceb
Revert "Add Calendar Component and update storage component"
giamjuxian Nov 12, 2018
4b05c61
Remove trailing white space
giamjuxian Nov 12, 2018
c5ee62f
Merge pull request #155 from giamjuxian/master
giamjuxian Nov 12, 2018
3a9b78a
Change all instance of address book to HealthBook
giamjuxian Nov 12, 2018
d3ce9fb
Update DeveloperGuide.adoc
giamjuxian Nov 12, 2018
2de1ee3
Update elroyhaw.adoc
elroyhaw Nov 12, 2018
c75be4a
Add Project Portfolio Page
giamjuxian Nov 12, 2018
b71a668
Merge pull request #156 from giamjuxian/project-portfolio-page
giamjuxian Nov 12, 2018
2f452ad
Merge remote-tracking branch 'upstream/revert-153-master'
giamjuxian Nov 12, 2018
4a1a62e
Resolve conflict
giamjuxian Nov 12, 2018
9057af0
update PPP
florafong97 Nov 12, 2018
5dd9f57
Developer Guide: Update documentations
florafong97 Nov 12, 2018
3c0cbb3
UserGuide: update documentation
florafong97 Nov 12, 2018
c54020e
Update storage diagram
giamjuxian Nov 12, 2018
0f6c29b
Merge pull request #157 from giamjuxian/master
giamjuxian Nov 12, 2018
93dc89a
correct typo
YangYafei1998 Nov 12, 2018
11ed921
Merge pull request #158 from YangYafei1998/master
YangYafei1998 Nov 12, 2018
827e015
Edit Developer's guide
giamjuxian Nov 12, 2018
5e8c31e
Merge remote-tracking branch 'upstream/master'
giamjuxian Nov 12, 2018
164043e
Merge pull request #159 from giamjuxian/master
giamjuxian Nov 12, 2018
3cbd1a0
Edit developer guide again
giamjuxian Nov 12, 2018
c0b6c50
Merge pull request #160 from giamjuxian/master
giamjuxian Nov 12, 2018
55e913e
Update UserGuide.adoc
elroyhaw Nov 12, 2018
75277c4
Update Developer guide images
giamjuxian Nov 12, 2018
04122d9
Merge pull request #161 from elroyhaw/master
giamjuxian Nov 12, 2018
0c39685
Change AddressBook to HealthBook for command sequence diagrams
elroyhaw Nov 12, 2018
226ca6d
MSS cases
florafong97 Nov 12, 2018
24bdf8e
Merge pull request #162 from giamjuxian/master
giamjuxian Nov 12, 2018
d3e1d42
Update Project Portfolio Page
giamjuxian Nov 12, 2018
996b081
update images
florafong97 Nov 12, 2018
5ebfaa9
Update images
giamjuxian Nov 12, 2018
101350a
Add calendar component Diagram
giamjuxian Nov 12, 2018
d9a7e32
Merge branch 'master' into master
florafong97 Nov 12, 2018
e80e25c
Update DeveloperGuide.adoc
elroyhaw Nov 12, 2018
f321714
Update Portfolio page
elroyhaw Nov 12, 2018
02796ff
update PPP
florafong97 Nov 12, 2018
b9555bd
Merge branch 'master' of https://github.com/florafong97/main
florafong97 Nov 12, 2018
99cde58
no message
florafong97 Nov 12, 2018
2ff03f9
no message
florafong97 Nov 12, 2018
d041cf3
Merge pull request #163 from elroyhaw/master
giamjuxian Nov 12, 2018
0d9ee70
Merge pull request #165 from florafong97/master
giamjuxian Nov 12, 2018
45b8550
Merge pull request #164 from giamjuxian/master
giamjuxian Nov 12, 2018
97e182f
Update DeveloperGuide.adoc
giamjuxian Nov 12, 2018
bd67105
Update DeveloperGuide.adoc
elroyhaw Nov 12, 2018
9b5575e
Update DeveloperGuide.adoc
giamjuxian Nov 12, 2018
0d06c38
Update DeveloperGuide.adoc
giamjuxian Nov 12, 2018
bd24b13
Update DeveloperGuide.adoc
giamjuxian Nov 12, 2018
4e8e424
Update DeveloperGuide.adoc
giamjuxian Nov 12, 2018
af5add7
Update AboutUs.adoc
elroyhaw Nov 12, 2018
787681b
Update UserGuide.adoc
elroyhaw Nov 12, 2018
e58f6b4
Update DeveloperGuide.adoc
elroyhaw Nov 12, 2018
073e01a
edit name of photo
YangYafei1998 Nov 15, 2018
df2385a
Delete YangYafei1998.png
YangYafei1998 Nov 15, 2018
826bd84
add photo
YangYafei1998 Nov 15, 2018
9a81b2c
no message
YangYafei1998 Nov 15, 2018
a843170
no message
YangYafei1998 Nov 15, 2018
f460d0a
Merge pull request #166 from YangYafei1998/master
YangYafei1998 Nov 15, 2018
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
22 changes: 10 additions & 12 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
= Address Book (Level 4)
= Health Book
ifdef::env-github,env-browser[:relfileprefix: docs/]

https://travis-ci.org/se-edu/addressbook-level4[image:https://travis-ci.org/se-edu/addressbook-level4.svg?branch=master[Build Status]]
https://ci.appveyor.com/project/damithc/addressbook-level4[image:https://ci.appveyor.com/api/projects/status/3boko2x2vr5cc3w2?svg=true[Build status]]
https://coveralls.io/github/se-edu/addressbook-level4?branch=master[image:https://coveralls.io/repos/github/se-edu/addressbook-level4/badge.svg?branch=master[Coverage Status]]
https://www.codacy.com/app/damith/addressbook-level4?utm_source=github.com&utm_medium=referral&utm_content=se-edu/addressbook-level4&utm_campaign=Badge_Grade[image:https://api.codacy.com/project/badge/Grade/fc0b7775cf7f4fdeaf08776f3d8e364a[Codacy Badge]]
https://travis-ci.org/CS2103-AY1819S1-T10-2/main[image:https://travis-ci.org/CS2103-AY1819S1-T10-2/main.svg?branch=master[Build Status]]
https://ci.appveyor.com/project/elroyhaw/main/branch/master[image:https://ci.appveyor.com/api/projects/status/o0tls33cceuwbwew/branch/master?svg=true[Build status]]
https://coveralls.io/github/CS2103-AY1819S1-T10-2/main?branch=master[image:https://coveralls.io/repos/github/CS2103-AY1819S1-T10-2/main/badge.svg?branch=master[Coverage Status]]
https://www.codacy.com/app/damith/addressbook-level4?utm_source=github.com&utm_medium=referral&utm_content=se-edu/addressbook-level4&utm_campaign=Badge_Grade[image:https://api.codacy.com/project/badge/Grade/fc0b7775cf7f4fdeaf08776f3d8e364a[Codacy badge]]
https://gitter.im/se-edu/Lobby[image:https://badges.gitter.im/se-edu/Lobby.svg[Gitter chat]]

ifdef::env-github[]
Expand All @@ -15,24 +15,22 @@ ifndef::env-github[]
image::images/Ui.png[width="600"]
endif::[]

* This is a desktop Address Book application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface).
* This is a desktop Health Book application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface).
* It is a Java sample application intended for students learning Software Engineering while using Java as the main programming language.
* It is *written in OOP fashion*. It provides a *reasonably well-written* code example that is *significantly bigger* (around 6 KLoC)than what students usually write in beginner-level SE modules.
* What's different from https://github.com/se-edu/addressbook-level3[level 3]:
** A more sophisticated GUI that includes a list panel and an in-built Browser.
** More test cases, including automated GUI testing.
** Support for _Build Automation_ using Gradle and for _Continuous Integration_ using Travis CI.
* The Health Book application targets clinic receptionists who need to manage a significant number of appointments
* The Health Book application is most effective when user has preference for CLI and is able to type fast rather than mouse input


== Site Map

* <<UserGuide#, User Guide>>
* <<DeveloperGuide#, Developer Guide>>
* <<LearningOutcomes#, Learning Outcomes>>
* <<AboutUs#, About Us>>
* <<ContactUs#, Contact Us>>

== Acknowledgements

* The original source code was taken from https://github.com/se-edu/addressbook-level4/[AddressBook-Level4] project, created by SE-EDU initiative.
* Some parts of this sample application were inspired by the excellent http://code.makery.ch/library/javafx-8-tutorial/[Java FX tutorial] by
_Marco Jakob_.
* Libraries used: https://github.com/TestFX/TestFX[TextFX], https://bitbucket.org/controlsfx/controlsfx/[ControlsFX], https://github.com/FasterXML/jackson[Jackson], https://github.com/google/guava[Guava], https://github.com/junit-team/junit5[JUnit5]
Expand Down
46 changes: 19 additions & 27 deletions docs/AboutUs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,46 +11,38 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio

== Project Team

=== John Doe
image::damithc.jpg[width="150", align="left"]
{empty}[http://www.comp.nus.edu.sg/~damithch[homepage]] [https://github.com/damithc[github]] [<<johndoe#, portfolio>>]
=== Haw Zhe Hao Elroy
image::elroyhaw.png[width="150", align="left"]
{empty} [https://github.com/elroyhaw[github]]

Role: Project Advisor
Role: Team Lead

'''

=== John Roe
image::lejolly.jpg[width="150", align="left"]
{empty}[http://github.com/lejolly[github]] [<<johndoe#, portfolio>>]
=== Giam Ju Xian
image::giamjuxian.png[width="150", align="left"]
{empty}[http://github.com/giamjuxian[github]]

Role: Team Lead +
Responsibilities: UI
Role: Developer and Testing +
Responsibilities: Ensures the testing of the project is done properly and on time.

'''

=== Johnny Doe
image::yijinl.jpg[width="150", align="left"]
{empty}[http://github.com/yijinl[github]] [<<johndoe#, portfolio>>]
=== Fong Mei Yee Flora
image::florafong97.png[width="150", align="left"]
{empty}[http://github.com/florafong97[github]]

Role: Developer +
Responsibilities: Data
Role: Documentation and Code Quality +
Responsibilities: Looks after code quality, ensures adherence to coding standards, and the quality of various project documents.

'''

=== Johnny Roe
image::m133225.jpg[width="150", align="left"]
{empty}[http://github.com/m133225[github]] [<<johndoe#, portfolio>>]
=== Yang Yafei
image::YangYafei1998.png[width="150", align="left"]
{empty}[http://github.com/YangYafei1998[github]]

Role: Developer +
Responsibilities: Dev Ops + Threading
Role: Deliverables and Deadlines +
Responsibilities: Ensure project deliverables are done on time and in the right format.

'''

=== Benson Meier
image::yl_coder.jpg[width="150", align="left"]
{empty}[http://github.com/yl-coder[github]] [<<johndoe#, portfolio>>]

Role: Developer +
Responsibilities: UI

'''
2 changes: 1 addition & 1 deletion docs/ContactUs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

* *Bug reports, Suggestions* : Post in our https://github.com/se-edu/addressbook-level4/issues[issue tracker] if you noticed bugs or have suggestions on how to improve.
* *Contributing* : We welcome pull requests. Follow the process described https://github.com/oss-generic/process[here]
* *Email us* : You can also reach us at `damith [at] comp.nus.edu.sg`
* *Email us* : You can also reach us at `elroyhaw [at] u.nus.edu`
139 changes: 47 additions & 92 deletions docs/DeveloperGuide.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
= AddressBook Level 4 - Developer Guide
= HealthBook - Developer Guide
:site-section: DeveloperGuide
:toc:
:toc-title:
Expand Down Expand Up @@ -239,92 +239,26 @@ Classes used by multiple components are in the `seedu.addressbook.commons` packa

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

// tag::undoredo[]
=== Undo/Redo feature
=== Delete patient and doctor feature
==== Current Implementation
The delete patient and doctor features are facilitated by `DeletePatientCommand` and `DeleteDoctorCommand`. Both extends
`DeleteCommand` such that it is able to delete a specific class of `Person` (i.e. `Patient` or `Doctor`) instead. Additionally,
instead of deletion by index, deletion by name is used in this implementation.

The undo/redo mechanism is facilitated by `VersionedAddressBook`.
It extends `AddressBook` with an undo/redo history, stored internally as an `addressBookStateList` and `currentStatePointer`.
Additionally, it implements the following operations:
Step 1. The user types in `delete-patient` or `delete-doctor` in the command box followed by the parameters `n/John Doe p/12345678`

* `VersionedAddressBook#commit()` -- Saves the current address book state in its history.
* `VersionedAddressBook#undo()` -- Restores the previous address book state from its history.
* `VersionedAddressBook#redo()` -- Restores a previously undone address book state from its history.

These operations are exposed in the `Model` interface as `Model#commitAddressBook()`, `Model#undoAddressBook()` and `Model#redoAddressBook()` respectively.

Given below is an example usage scenario and how the undo/redo mechanism behaves at each step.

Step 1. The user launches the application for the first time. The `VersionedAddressBook` will be initialized with the initial address book state, and the `currentStatePointer` pointing to that single address book state.

image::UndoRedoStartingStateListDiagram.png[width="800"]

Step 2. The user executes `delete 5` command to delete the 5th person in the address book. The `delete` command calls `Model#commitAddressBook()`, causing the modified state of the address book after the `delete 5` command executes to be saved in the `addressBookStateList`, and the `currentStatePointer` is shifted to the newly inserted address book state.

image::UndoRedoNewCommand1StateListDiagram.png[width="800"]

Step 3. The user executes `add n/David ...` to add a new person. The `add` command also calls `Model#commitAddressBook()`, causing another modified address book state to be saved into the `addressBookStateList`.

image::UndoRedoNewCommand2StateListDiagram.png[width="800"]

[NOTE]
If a command fails its execution, it will not call `Model#commitAddressBook()`, so the address book state will not be saved into the `addressBookStateList`.

Step 4. The user now decides that adding the person was a mistake, and decides to undo that action by executing the `undo` command. The `undo` command will call `Model#undoAddressBook()`, which will shift the `currentStatePointer` once to the left, pointing it to the previous address book state, and restores the address book to that state.

image::UndoRedoExecuteUndoStateListDiagram.png[width="800"]

[NOTE]
If the `currentStatePointer` is at index 0, pointing to the initial address book state, then there are no previous address book states to restore. The `undo` command uses `Model#canUndoAddressBook()` to check if this is the case. If so, it will return an error to the user rather than attempting to perform the undo.

The following sequence diagram shows how the undo operation works:

image::UndoRedoSequenceDiagram.png[width="800"]

The `redo` command does the opposite -- it calls `Model#redoAddressBook()`, which shifts the `currentStatePointer` once to the right, pointing to the previously undone state, and restores the address book to that state.

[NOTE]
If the `currentStatePointer` is at index `addressBookStateList.size() - 1`, pointing to the latest address book state, then there are no undone address book states to restore. The `redo` command uses `Model#canRedoAddressBook()` to check if this is the case. If so, it will return an error to the user rather than attempting to perform the redo.

Step 5. The user then decides to execute the command `list`. Commands that do not modify the address book, such as `list`, will usually not call `Model#commitAddressBook()`, `Model#undoAddressBook()` or `Model#redoAddressBook()`. Thus, the `addressBookStateList` remains unchanged.

image::UndoRedoNewCommand3StateListDiagram.png[width="800"]

Step 6. The user executes `clear`, which calls `Model#commitAddressBook()`. Since the `currentStatePointer` is not pointing at the end of the `addressBookStateList`, all address book states after the `currentStatePointer` will be purged. We designed it this way because it no longer makes sense to redo the `add n/David ...` command. This is the behavior that most modern desktop applications follow.

image::UndoRedoNewCommand4StateListDiagram.png[width="800"]

The following activity diagram summarizes what happens when a user executes a new command:

image::UndoRedoActivityDiagram.png[width="650"]
Step 2. Upon hitting enter, the `Patient` or `Doctor` will be removed from the system

==== Design Considerations
===== Aspect: Algorithm to find `Patient` or `Doctor` to delete
* Alternative 1 (current choice): Loop through `model.getFilteredPersonList()` to find `Patient` or `Doctor` to delete
** Pros: Easy to implement
** Cons: If size of list grows unusually large (unusual because of our target audience), it may take awhile to retrieve the
`Patient` or `Doctor`

===== Aspect: How undo & redo executes

* **Alternative 1 (current choice):** Saves the entire address book.
** Pros: Easy to implement.
** Cons: May have performance issues in terms of memory usage.
* **Alternative 2:** Individual command knows how to undo/redo by itself.
** Pros: Will use less memory (e.g. for `delete`, just save the person being deleted).
** Cons: We must ensure that the implementation of each individual command are correct.

===== Aspect: Data structure to support the undo/redo commands

* **Alternative 1 (current choice):** Use a list to store the history of address book states.
** Pros: Easy for new Computer Science student undergraduates to understand, who are likely to be the new incoming developers of our project.
** Cons: Logic is duplicated twice. For example, when a new command is executed, we must remember to update both `HistoryManager` and `VersionedAddressBook`.
* **Alternative 2:** Use `HistoryManager` for undo/redo
** Pros: We do not need to maintain a separate list, and just reuse what is already in the codebase.
** Cons: Requires dealing with commands that have already been undone: We must remember to skip these commands. Violates Single Responsibility Principle and Separation of Concerns as `HistoryManager` now needs to do two different things.
// end::undoredo[]

// tag::dataencryption[]
=== [Proposed] Data Encryption

_{Explain here how the data encryption feature will be implemented}_

// end::dataencryption[]
* Alternative 2: Use a Map that maps name to `Patient` or `Doctor`
** Pros: Fast retrieval
** Cons: Will have to change a lot of lines of code

=== Logging

Expand Down Expand Up @@ -815,13 +749,18 @@ See this https://github.com/se-edu/addressbook-level4/pull/599[PR] for the step-

*Target user profile*:

* has a need to manage a significant number of contacts
* Clinic Receptionists
* has a need to manage a significant number of appointments
* has a need to keep track of history of patients, appointments and prescriptions
* prefer desktop apps over other types
* can type fast
* prefers typing over mouse input
* is reasonably comfortable using CLI apps

*Value proposition*: manage contacts faster than a typical mouse/GUI driven app
*Value proposition*:
Our platform will allow the clinic receptionist to easily manage patient’s medical information
and appointments with the doctors. This will allow appointments to be efficiently managed and
information transfer to be more seamless.

[appendix]
== User Stories
Expand All @@ -831,25 +770,41 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un
[width="59%",cols="22%,<23%,<25%,<30%",options="header",]
|=======================================================================
|Priority |As a ... |I want to ... |So that I can...
|`* * *` |new user |see usage instructions |refer to instructions when I forget how to use the App
|`* * *` |receptionist |register accounts for patients or doctors |keep track of their appointments and other information

|`* * *` |user |add a new person |
|`* * *` |receptionist |delete an account for patients or doctors |remove accounts that are not in use or invalid

|`* * *` |user |delete a person |remove entries that I no longer need
|`* * *` |receptionist |view patient’s upcoming appointments, recent visits and follow-ups requests on the landing page |easily look through the patients information

|`* * *` |user |find a person by name |locate details of persons without having to go through the entire list
|`* * *` |receptionist |add prescription to patient after appointment |keep their latest completed appointment updated

|`* *` |user |hide <<private-contact-detail,private contact details>> by default |minimize chance of someone else seeing them by accident
|`* * *` |receptionist |delete prescription to patient after appointment |remove any discrepancies found

|`*` |user with many persons in the address book |sort persons by name |locate a person easily
|=======================================================================
|`* * *` |receptionist |edit prescription to patient after appointment |amend any discrepancies found

_{More to be added}_
|`* * *` |receptionist |check prescription provided by doctor |follow up with the patients if they wish to check their prescription

|`* * *` |receptionist |add patient details (especially medical history) to patient’s profile |allow the doctors to find the patients records easily

|`* * *` |receptionist |delete patient details (especially medical history) from patient's profile |allow the doctors to find the most updated patients records

|`* * *` |receptionist |view patient’s details prior to appointment |provide information to the doctor, allowing them to know the full extent of patient’s health condition

|`* * *` |receptionist |remind a particular patient of their next appointment |prevent him/her from forgetting their appointments

|`* * *` |receptionist |remind all patients of their next appointment |prevent them from forgetting their appointments

|`* * *` |receptionist |book an doctor’s appointment for patient |reserve an appointment with doctor for the patient

|`* * *` |receptionist |edit an doctor’s appointment for patient |edit a reserve slot for an appointment with doctor for the patient

|`* * *` |receptionist |delete an doctor’s appointment for patient |remove a reserve slot for an appointment with doctor for the patient
|=======================================================================

[appendix]
== Use Cases

(For all use cases below, the *System* is the `AddressBook` and the *Actor* is the `user`, unless specified otherwise)
(For all use cases below, the *System* is the `HealthBook` and the *Actor* is the `receptionist`, unless specified otherwise)

[discrete]
=== Use case: Delete person
Expand Down
Loading