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

[v1.1][F12-B1] NUS F&T #73

Open
wants to merge 58 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
f5be020
Replace verbose loops with lambda expressions
vivekscl Jan 21, 2018
cf8761d
UniquePersonList#setPersons(List<Person>): refactor verbose loop
vivekscl Jan 21, 2018
529d75f
[#634] Replace all verbose loops with lambda expression (#805)
Zhiyuan-Amos Feb 22, 2018
0cc5f39
AddressBook#removePerson(Person): update return type
nicholaschuayunzhi Feb 28, 2018
f090090
UniquePersonList#remove(Person): update return type
nicholaschuayunzhi Feb 28, 2018
088db25
MainWindow.fxml: update onCloseRequest event to call handleExit()
yamidark Feb 16, 2018
2f4405c
[#830] UniquePersonList, AddressBook: update return type for remove a…
Zhiyuan-Amos Mar 2, 2018
da85890
change repoURL
zhuleyan Mar 6, 2018
acca022
updates DeveloperGuide and UserGuide repo URL
A0155428B Mar 9, 2018
c6f99b1
edit repoURL
zhuleyan Mar 9, 2018
f3770cf
Merge pull request #2 from A0155428B/v1.0
A0155428B Mar 9, 2018
de4bad7
corrects typo for UserGuide & DeveloperGuide repo URL
A0155428B Mar 9, 2018
e5982f6
Merge pull request #4 from A0155428B/v1.0
A0155428B Mar 9, 2018
336a399
Merge pull request #5 from zhuleyan/repoURL
zhuleyan Mar 9, 2018
5b5b3a5
test
zhuleyan Mar 9, 2018
6764454
Merge branch 'master' of https://github.com/CS2103JAN2018-F12-B1/main
zhuleyan Mar 11, 2018
a66db04
add user stories
zhuleyan Mar 13, 2018
c67eae0
add remark command
zhuleyan Mar 14, 2018
4bac6e4
test
zhuleyan Mar 14, 2018
dc69643
adds ! in HelpCommand
A0155428B Mar 14, 2018
99056f3
Reverts changes to previous commit and updates the build status and c…
A0155428B Mar 14, 2018
c3ef2ea
Remove codacy badge
A0155428B Mar 14, 2018
d5002ff
Merge pull request #14 from A0155428B/travis_test
A0155428B Mar 14, 2018
1513fc6
Corrects typo in README.adoc
A0155428B Mar 14, 2018
1d58475
Merge pull request #15 from A0155428B/travis_test
A0155428B Mar 14, 2018
0126fb8
Updates README.adoc to match project
A0155428B Mar 14, 2018
179ad87
Merge pull request #20 from A0155428B/travis_test
A0155428B Mar 14, 2018
8c2e7bb
edit aboutus file
zhuleyan Mar 14, 2018
82aac1b
Merge pull request #21 from zhuleyan/aboutus
zhuleyan Mar 14, 2018
99318f9
Updates target user and value proposition in DeveloperGuide
A0155428B Mar 14, 2018
ab448df
Updates NFR in DeveloperGuide
A0155428B Mar 14, 2018
d5742f0
Update use cases in DeveloperGuide
A0155428B Mar 14, 2018
f53c13d
Merge pull request #22 from A0155428B/v1.0_document_update
A0155428B Mar 14, 2018
2af26af
Updates BrowserPanel to implement google search
A0155428B Mar 14, 2018
7b21485
Merge pull request #23 from A0155428B/select_command
A0155428B Mar 14, 2018
15530d4
Adds alias for Add, Clear, Delete, Edit, Find, List, Redo, Select, Un…
A0155428B Mar 14, 2018
57865f4
Updates AddressBookParser to recognise Command Alias
A0155428B Mar 14, 2018
7ceb5fe
Adds tests for Command Alias in AddressBookParserTest
A0155428B Mar 14, 2018
2303218
Corrests indentation
A0155428B Mar 14, 2018
2efe71e
Corrects typo
A0155428B Mar 14, 2018
c0707db
update aboutus page
zhuleyan Mar 15, 2018
273c41a
Merge pull request #26 from zhuleyan/aboutus
zhuleyan Mar 15, 2018
d728190
update user stories to be more specific
zhuleyan Mar 15, 2018
842a9a0
update java test of remark command
zhuleyan Mar 15, 2018
79e074d
resolve trailing whitespace
zhuleyan Mar 15, 2018
0217e95
resolve checkstyle
zhuleyan Mar 15, 2018
9397724
solve requireNonNull problem
zhuleyan Mar 15, 2018
ea42eb1
Updates UserGuide to include alias
A0155428B Mar 15, 2018
1c5cbd5
Updates icon to suit project
A0155428B Mar 15, 2018
863dda1
Adds a picture of nus logo in default page
A0155428B Mar 15, 2018
10abc60
Merge pull request #28 from zhuleyan/v1.1
zhuleyan Mar 16, 2018
4c64579
Merge pull request #29 from A0155428B/UI_updates
A0155428B Mar 16, 2018
2f98fb0
Merge branch 'master' into Alias
A0155428B Mar 16, 2018
ffada1f
Corrects typo
A0155428B Mar 16, 2018
dae074f
Removes whitespace
A0155428B Mar 16, 2018
1bb6680
Removes more whitespace
A0155428B Mar 16, 2018
7692e66
Remove trailing whitespace
A0155428B Mar 16, 2018
666120e
Merge pull request #25 from A0155428B/Alias
A0155428B Mar 16, 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
10 changes: 4 additions & 6 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
= Address Book (Level 4)
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://travis-ci.org/CS2103JAN2018-F12-B1/main[image:https://travis-ci.org/CS2103JAN2018-F12-B1/main.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://coveralls.io/github/CS2103JAN2018-F12-B1/main?branch=master[image:https://coveralls.io/repos/github/CS2103JAN2018-F12-B1/main/badge.svg?branch=master[Coverage Status]]
https://gitter.im/se-edu/Lobby[image:https://badges.gitter.im/se-edu/Lobby.svg[Gitter chat]]

ifdef::env-github[]
Expand All @@ -16,9 +15,8 @@ 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).
* It is a Java sample application intended for students learning Software Engineering while using Java as the main programming language.
* It is a Java application intended for NUS students. It helps them to facilitate and track their progress in NUS.
* 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.
Expand All @@ -27,7 +25,6 @@ endif::[]

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

Expand All @@ -36,5 +33,6 @@ endif::[]
* 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/TomasMikula/EasyBind[EasyBind], 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/junit4[JUnit4]
* This application is developed based on AddressBook-Level4 project created by SE-EDU initiative at https://github.com/se-edu/

== Licence : link:LICENSE[MIT]
44 changes: 8 additions & 36 deletions docs/AboutUs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,53 +3,25 @@
:imagesDir: images
:stylesDir: stylesheets

AddressBook - Level 4 was developed by the https://se-edu.github.io/docs/Team.html[se-edu] team. +
_{The dummy content given below serves as a placeholder to be used by future forks of the project.}_ +
NUS F&T was developed by the https://CS2103JAN2018-F12-B1/teams/developers team. +
{empty} +
We are a team based in the http://www.comp.nus.edu.sg[School of Computing, National University of Singapore].
We are a team based in the http://www.nus.edu.sg[National University of Singapore].

== 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>>]

Role: Project Advisor

'''

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

Role: Team Lead +
Responsibilities: UI

'''

=== Johnny Doe
image::yijinl.jpg[width="150", align="left"]
{empty}[http://github.com/yijinl[github]] [<<johndoe#, portfolio>>]
=== ZHU Leyan
image::zhuleyan.png[width="150", align="left"]
{empty}[https://github.com/zhuleyan[github]]

Role: Developer +
Responsibilities: Data

'''

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

Role: Developer +
Responsibilities: Dev Ops + Threading

'''

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

Role: Developer +
Responsibilities: UI

'''
138 changes: 131 additions & 7 deletions docs/DeveloperGuide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ ifdef::env-github[]
:tip-caption: :bulb:
:note-caption: :information_source:
endif::[]
:repoURL: https://github.com/se-edu/addressbook-level4/tree/master
:repoURL: https://github.com/CS2103JAN2018-F12-B1/main/tree/master

By: `Team SE-EDU`      Since: `Jun 2016`      Licence: `MIT`

Expand Down Expand Up @@ -780,15 +780,15 @@ See this https://github.com/se-edu/addressbook-level4/pull/599[PR] for the step-
[appendix]
== Product Scope

*Target user profile*:
*Target user profile*: NUS students

* has a need to manage a significant number of contacts
* 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*: manage contacts faster than a typical mouse/GUI driven app and helps user to track study progress in NUS.

[appendix]
== User Stories
Expand All @@ -809,9 +809,76 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un
|`* *` |user |hide <<private-contact-detail,private contact details>> by default |minimize chance of someone else seeing them by accident

|`*` |user with many persons in the address book |sort persons by name |locate a person easily

|`* * *` |user |clear the address book |remove all entries

|`* * *` |user |edit a person |modify information of the person

|`* *` |user |view all the commands that I have entered |

|`* *` |user |undo my most recent command |change it back

|`* *` |user |reverse the most recent undo command |regret undoing

|`*` |user who wants to know more information about the person |select a person |see the Google search page of this person

|`* * *` |user |look at my timetable |

|`* *` |user |add an event to my calendar |

|`* *` |user |delete an event from my calendar |remove events that I no longer need

|`* *` |user |edit an event in my calendar |modify details of an event

|`* *` |forgetful user |get a message when an event is coming |be reminded of the event

|`* * *` |user |add a module |record the courses I have taken

|`* * *` |user |delete a module |remove modules that I haven't taken yet

|`* *` |user |edit a module |modify the course code

|`* *` |user |list all modules |see all courses I have taken

|`*` |user who has taken many modules |sort all modules by course code |locate a module easily

|`* * *` |user who has taken many modules |find a module by name |find it easily

|`* * *` |user who has taken many modules |find a module by course code |find it easily

|`* * *` |user who has taken many modules |find a module by semester |find it easily

|`* *` |user |select a module |see details of the module

|`* *` |user |calculate my CAP |

|`* *` |user |calculate my module credits |

|`* *` |user |access my IVLE web page |

|`* * *` |busy user |type the command in a shorter way |type it quickly to save time

|`* *` |user who has many different tags for people in the address book |arrange different colors for different tags |easily differentiate tags

|`* *` |user |delete a specific tag from everyone |remove tags that I no longer need

|`* *` |user |add a remark for a specific person |record more detailed information of the person

|`* *` |user |edit a remark for a specific person |

|`* *` |user |delete a remark for a specific person |remove remarks that are no longer useful

|`*` |user |import photos of people in the address book |

|`* *` |new user |set my password |get more security

|`* *` |user |reset my password |

|`*` |user |change the theme of this address book |select the preferred looking

|`*` |user |export a contact |share it with others
|=======================================================================

_{More to be added}_

[appendix]
== Use Cases
Expand Down Expand Up @@ -844,16 +911,73 @@ Use case ends.
+
Use case resumes at step 2.

_{More to be added}_
=== Use case: Edit module

*MSS*

1. User requests to list modules
2. AddressBook shows a list of modules
3. User requests to edit a specific person in the list with new information
4. AddressBook updates the module
+
Use case ends.

*Extensions*

[none]
* 2a. The list is empty.
+
Use case ends.

* 3a. The given index is invalid.
+
[none]
** 3a1. AddressBook shows an error message.
+
Use case resumes at step 2.

=== Use case: Import photo of person

*MSS*

1. User requests to list persons
2. AddressBook shows a list of persons
3. User requests to upload photo to a specific person in the list
4. AddressBook request for file location
5. User specifies file location
6. AddressBook import the photo and attach it to the specified person
+
Use case ends.

*Extensions*

[none]
* 2a. The list is empty.
+
Use case ends.

* 3a. The given index is invalid.
+
[none]
** 3a1. AddressBook shows an error message.
+
Use case resumes at step 2.

* 5a. The given file location is invalid.
+
** 5a1. AddressBook shows an error message.
+
Use case resumes at step 4.

[appendix]
== Non Functional Requirements

. Should work on any <<mainstream-os,mainstream OS>> as long as it has Java `1.8.0_60` or higher installed.
. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage.
. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.

_{More to be added}_
. User should be able to protect his contacts and information with a password.
. User should ba able to use the addressbook on both online and offline settings.
. User guide should be easy to understand.

[appendix]
== Glossary
Expand Down
33 changes: 22 additions & 11 deletions docs/UserGuide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ ifdef::env-github[]
:tip-caption: :bulb:
:note-caption: :information_source:
endif::[]
:repoURL: https://github.com/se-edu/addressbook-level4
:repoURL: https://github.com/CS2103JAN2018-F12-B1/main

By: `Team SE-EDU` Since: `Jun 2016` Licence: `MIT`

== Introduction

AddressBook Level 4 (AB4) is for those who *prefer to use a desktop app for managing contacts*. More importantly, AB4 is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB4 can get your contact management tasks done faster than traditional GUI apps. Interested? Jump to the <<Quick Start>> to get started. Enjoy!
NUS F&T is for those who *prefer to use a desktop app for managing contacts*. More importantly, AB4 is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB4 can get your contact management tasks done faster than traditional GUI apps. Interested? Jump to the <<Quick Start>> to get started. Enjoy!

== Quick Start

Expand Down Expand Up @@ -54,6 +54,7 @@ e.g. typing *`help`* and pressing kbd:[Enter] will open the help window.
* Items in square brackets are optional e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`.
* Items with `…`​ after them can be used multiple times including zero times e.g. `[t/TAG]...` can be used as `{nbsp}` (i.e. 0 times), `t/friend`, `t/friend t/family` etc.
* Parameters can be in any order e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable.
* Some commands have an alias, which can be used to execute the command e.g. to add a person to the address book, you can type either `add n/John Doe` or `a n/John Doe`.
====

=== Viewing help : `help`
Expand All @@ -63,7 +64,8 @@ Format: `help`
=== Adding a person: `add`

Adds a person to the address book +
Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...`
Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...` +
Alias: `a`

[TIP]
A person can have any number of tags (including 0)
Expand All @@ -76,12 +78,14 @@ Examples:
=== Listing all persons : `list`

Shows a list of all persons in the address book. +
Format: `list`
Format: `list` +
Alias: `l`

=== Editing a person : `edit`

Edits an existing person in the address book. +
Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...`
Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...` +
Alias: `e`

****
* Edits the person at the specified `INDEX`. The index refers to the index number shown in the last person listing. The index *must be a positive integer* 1, 2, 3, ...
Expand All @@ -101,7 +105,8 @@ Edits the name of the 2nd person to be `Betsy Crower` and clears all existing ta
=== Locating persons by name: `find`

Finds persons whose names contain any of the given keywords. +
Format: `find KEYWORD [MORE_KEYWORDS]`
Format: `find KEYWORD [MORE_KEYWORDS]` +
Alias: `f`

****
* The search is case insensitive. e.g `hans` will match `Hans`
Expand All @@ -121,7 +126,8 @@ Returns any person having names `Betsy`, `Tim`, or `John`
=== Deleting a person : `delete`

Deletes the specified person from the address book. +
Format: `delete INDEX`
Format: `delete INDEX` +
Alias: `d`

****
* Deletes the person at the specified `INDEX`.
Expand All @@ -141,7 +147,8 @@ Deletes the 1st person in the results of the `find` command.
=== Selecting a person : `select`

Selects the person identified by the index number used in the last person listing. +
Format: `select INDEX`
Format: `select INDEX` +
Alias: `s`

****
* Selects the person and loads the Google search page the person at the specified `INDEX`.
Expand Down Expand Up @@ -172,7 +179,8 @@ Pressing the kbd:[&uarr;] and kbd:[&darr;] arrows will display the previous and
=== Undoing previous command : `undo`

Restores the address book to the state before the previous _undoable_ command was executed. +
Format: `undo`
Format: `undo` +
Alias: `u`

[NOTE]
====
Expand All @@ -198,7 +206,8 @@ The `undo` command fails as there are no undoable commands executed previously.
=== Redoing the previously undone command : `redo`

Reverses the most recent `undo` command. +
Format: `redo`
Format: `redo` +
Alias: `r`

Examples:

Expand All @@ -221,7 +230,8 @@ The `redo` command fails as there are no `undo` commands executed previously.
=== Clearing all entries : `clear`

Clears all entries from the address book. +
Format: `clear`
Format: `clear` +
Alias: `c`

=== Exiting the program : `exit`

Expand Down Expand Up @@ -262,3 +272,4 @@ e.g.`select 2`
* *History* : `history`
* *Undo* : `undo`
* *Redo* : `redo`

Binary file added docs/images/liuyiming.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/zhuleyan.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading