From 36c54854f8db5d6ddd597b81111a39f9e5001c33 Mon Sep 17 00:00:00 2001 From: "Damith C. Rajapakse" Date: Tue, 7 Feb 2017 22:17:15 +0800 Subject: [PATCH 1/2] Remove unused *tag methods from AddressBook Remove unused addTag() removeTag() and containsTag() from AddressBook class --- src/seedu/addressbook/data/AddressBook.java | 25 --------------------- 1 file changed, 25 deletions(-) diff --git a/src/seedu/addressbook/data/AddressBook.java b/src/seedu/addressbook/data/AddressBook.java index b3ab0dfeb..7af05d271 100644 --- a/src/seedu/addressbook/data/AddressBook.java +++ b/src/seedu/addressbook/data/AddressBook.java @@ -82,15 +82,6 @@ public void addPerson(Person toAdd) throws DuplicatePersonException { allPersons.add(toAdd); } - /** - * Adds a tag to the list of tags present in the address book. - * - * @throws DuplicateTagException if an equivalent tag already exists. - */ - public void addTag(Tag toAdd) throws DuplicateTagException { - allTags.add(toAdd); - } - /** * Checks if an equivalent person exists in the address book. */ @@ -98,13 +89,6 @@ public boolean containsPerson(ReadOnlyPerson key) { return allPersons.contains(key); } - /** - * Checks if an equivalent person exists in the address book. - */ - public boolean containsTag(Tag key) { - return allTags.contains(key); - } - /** * Removes the equivalent person from the address book. * @@ -114,15 +98,6 @@ public void removePerson(ReadOnlyPerson toRemove) throws PersonNotFoundException allPersons.remove(toRemove); } - /** - * Removes the equivalent Tag from the address book. - * - * @throws TagNotFoundException if no such Tag could be found. - */ - public void removeTag(Tag toRemove) throws TagNotFoundException { - allTags.remove(toRemove); - } - /** * Clears all persons and tags from the address book. */ From 446acefc1c197e18f2af2754852c797b8273b60a Mon Sep 17 00:00:00 2001 From: Dion Date: Mon, 6 Mar 2017 11:56:57 +0800 Subject: [PATCH 2/2] added user story of editing person details in addressbook added use case of renaming tag and editing person details in addressbook added NFR of speed of operation of program --- .README.md.html | 677 ++++++++++++++++++++++++++++++ doc/.DeveloperGuide.md.html | 805 ++++++++++++++++++++++++++++++++++++ doc/DeveloperGuide.md | 48 +++ 3 files changed, 1530 insertions(+) create mode 100644 .README.md.html create mode 100644 doc/.DeveloperGuide.md.html diff --git a/.README.md.html b/.README.md.html new file mode 100644 index 000000000..af90e2d0e --- /dev/null +++ b/.README.md.html @@ -0,0 +1,677 @@ + + + + +/Users/dionngg/Documents/ISE Y2S2/CS2103/GITHUB SHIT/addressbook-level3/.README.md.html + + + + + + + + + + +

Build Status Codacy Badge

+

AddressBook (Level 3)

+

+ +

What's different from level 2

+ +

Useful Links

+ +

Contributors

+ +

Acknowledgements

+

Some parts of this sample application was inspired by the excellent Java FX tutorial by Marco Jakob

+

Contact Us

+ + + diff --git a/doc/.DeveloperGuide.md.html b/doc/.DeveloperGuide.md.html new file mode 100644 index 000000000..b1f8dba10 --- /dev/null +++ b/doc/.DeveloperGuide.md.html @@ -0,0 +1,805 @@ + + + + +/Users/dionngg/Documents/ISE Y2S2/CS2103/GITHUB SHIT/addressbook-level3/doc/.DeveloperGuide.md.html + + + + + + + + + + +

Developer Guide

+ +

Setting up

+

Prerequisites

+
    +
  1. JDK 8 or later
  2. +
  3. Eclipse IDE
  4. +
  5. e(fx)clipse plugin for Eclipse (Do the steps 2 onwards given in this page)
  6. +
+

Importing the project into Eclipse

+
    +
  1. Fork this repo, and clone the fork to your computer
  2. +
  3. Open Eclipse (Note: Ensure you have installed the e(fx)clipse plugin as given in the prerequisites above)
  4. +
  5. Click File > Import
  6. +
  7. Click General > Existing Projects into Workspace > Next
  8. +
  9. Click Browse, then locate the project's directory
  10. +
  11. Click Finish
  12. +
+

Design

+

+

Testing

+ +

Appendix A : User Stories

+

Priorities: High (must have) - * * *, Medium (nice to have) - * *, Low (unlikely to have) - *

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PriorityAs a ...I want to ...So that I can...
* * *new usersee usage instructionsrefer to instructions when I forget how to use the App
* * *useradd a new person
* * *userdelete a personremove entries that I no longer need
* * *userfind a person by namelocate details of persons without having to go through the entire list
* *userhide private contact details by defaultminimize chance of someone else seeing them by accident
* *useredit person informationso that I do not need to delete and re-add a person if he changes contact information
*user with many persons in the address booksort persons by namelocate a person easily
+

Appendix B : Use Cases

+

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

+

Use case: Delete person

+

MSS

+
    +
  1. User requests to list persons
  2. +
  3. AddressBook shows a list of persons
  4. +
  5. User requests to delete a specific person in the list
  6. +
  7. AddressBook deletes the person
    Use case ends.
  8. +
+

Extensions

+

2a. The list is empty

+
+

Use case ends

+
+

3a. The given index is invalid

+
+

3a1. AddressBook shows an error message
Use case resumes at step 2

+
+

Use case: Edit person information

+

MSS

+
    +
  1. User requests to list person
  2. +
  3. Addressbook shows a list of persons
  4. +
  5. User requests to edit a specific person in the list
  6. +
  7. Addressbook request for information that user wants to edit
  8. +
  9. User provides edited information for the specific person variables
  10. +
  11. Addressbook updates the person
    Use case ends.
  12. +
+

Extensions

+

2a. The list is empty

+
+

Use case ends

+
+

3a. The given index is invalid

+
+

3a1. Addressbook shows error message
Use case resumes at step 2

+
+

Use case: Renaming existing tag

+

MSS

+
    +
  1. User requests to list tags
  2. +
  3. Addressbook shows a list of tags
  4. +
  5. User requests to edit a specific tag in the list
  6. +
  7. Addressbook request for new name for tag
  8. +
  9. User inputs new name for tag
  10. +
  11. Addressbook renames the specified tag Use case ends.
  12. +
+

Extensions

+

2a. The list is empty

+
+

Use case ends

+
+

3a. The given index is invalid

+
+

3a1. Addressbook shows error message
Use case resumes at step 2

+
+

Appendix C : Non Functional Requirements

+
    +
  1. Should work on any mainstream OS as long as it has Java 8 or higher installed.
  2. +
  3. Should be able to hold up to 1000 persons.
  4. +
  5. Should come with automated unit tests and open source code.
  6. +
  7. Should favor DOS style commands over Unix-style commands.
  8. +
  9. Should run any command in less than 3 seconds.
  10. +
+

Appendix D : Glossary

+
Mainstream OS
+
+

Windows, Linux, Unix, OS-X

+
+
Private contact detail
+
+

A contact detail that is not meant to be shared with others

+
+ + diff --git a/doc/DeveloperGuide.md b/doc/DeveloperGuide.md index c82c3afb9..020b1c8ba 100644 --- a/doc/DeveloperGuide.md +++ b/doc/DeveloperGuide.md @@ -46,6 +46,7 @@ Priority | As a ... | I want to ... | So that I can... `* * *` | user | delete a person | remove entries that I no longer need `* * *` | user | find a person by name | locate details of persons without having to go through the entire list `* *` | user | hide [private contact details](#private-contact-detail) by default | minimize chance of someone else seeing them by accident +`* *` | user | edit person information | so that I do not need to delete and re-add a person if he changes contact information `*` | user with many persons in the address book | sort persons by name | locate a person easily @@ -74,12 +75,59 @@ Use case ends. > 3a1. AddressBook shows an error message
Use case resumes at step 2 +#### Use case: Edit person information + +**MSS** + +1. User requests to list person +2. Addressbook shows a list of persons +3. User requests to edit a specific person in the list +4. Addressbook request for information that user wants to edit +5. User provides edited information for the specific person variables +6. Addressbook updates the person
+Use case ends. + +**Extensions** + +2a. The list is empty + +> Use case ends + +3a. The given index is invalid + +> 3a1. Addressbook shows error message
+ Use case resumes at step 2 + +#### Use case: Renaming existing tag + +**MSS** + +1. User requests to list tags +2. Addressbook shows a list of tags +3. User requests to edit a specific tag in the list +4. Addressbook request for new name for tag +5. User inputs new name for tag +6. Addressbook renames the specified tag +Use case ends. + +**Extensions** + +2a. The list is empty + +> Use case ends + +3a. The given index is invalid + +> 3a1. Addressbook shows error message
+ Use case resumes at step 2 + ## Appendix C : Non Functional Requirements 1. Should work on any [mainstream OS](#mainstream-os) as long as it has Java 8 or higher installed. 2. Should be able to hold up to 1000 persons. 3. Should come with automated unit tests and open source code. 4. Should favor DOS style commands over Unix-style commands. +5. Should run any command in less than 3 seconds. ## Appendix D : Glossary