Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/junnbang/main into update…
Browse files Browse the repository at this point in the history
…-about-us
  • Loading branch information
junnbang committed Oct 3, 2019
2 parents 3af8c45 + cc8f669 commit 5e35ac7
Show file tree
Hide file tree
Showing 5 changed files with 120 additions and 102 deletions.
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.PHONY: test

test:
./config/travis/run-checks.sh && \
./gradlew clean checkstyleMain checkstyleTest test coverage coveralls asciidoctor
14 changes: 5 additions & 9 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
= Address Book (Level 3)
= Deliveria - a delivery task manager
ifdef::env-github,env-browser[:relfileprefix: docs/]

https://travis-ci.org/se-edu/addressbook-level3[image:https://travis-ci.org/se-edu/addressbook-level3.svg?branch=master[Build Status]]
https://ci.appveyor.com/project/damithc/addressbook-level3[image:https://ci.appveyor.com/api/projects/status/3boko2x2vr5cc3w2?svg=true[Build status]]
https://coveralls.io/github/se-edu/addressbook-level3?branch=master[image:https://coveralls.io/repos/github/se-edu/addressbook-level3/badge.svg?branch=master[Coverage Status]]
https://www.codacy.com/app/damith/addressbook-level3?utm_source=github.com&utm_medium=referral&utm_content=se-edu/addressbook-level3&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]]
https://travis-ci.com/AY1920S1-CS2103T-F14-4/main[image:https://travis-ci.com/AY1920S1-CS2103T-F14-4/main.svg?branch=master[Build Status]]

ifdef::env-github[]
image::docs/images/Ui.png[width="600"]
Expand All @@ -16,21 +12,21 @@ 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 *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.
* See below for a detailed introduction.
== Site Map

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

== Acknowledgements

* The code base is developed based on the `AddressBook-Level3` project by https://se-education.org[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://openjfx.io/[JavaFX], https://github.com/FasterXML/jackson[Jackson], https://github.com/junit-team/junit5[JUnit5]


== Licence : link:LICENSE[MIT]
4 changes: 2 additions & 2 deletions docs/ContactUs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
:site-section: ContactUs
:stylesDir: stylesheets

* *Bug reports, Suggestions* : Post in our https://github.com/se-edu/addressbook-level3/issues[issue tracker] if you noticed bugs or have suggestions on how to improve.
* *Bug reports, Suggestions* : Post in our https://github.com/AY1920S1-CS2103T-F14-4/main/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 `tsong1 [at] comp.nus.edu.sg`
199 changes: 108 additions & 91 deletions docs/UserGuide.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
= AddressBook Level 3 - User Guide
= Deliveria - User Guide
:site-section: UserGuide
:toc:
:toc-title:
Expand All @@ -14,132 +14,162 @@ ifdef::env-github[]
endif::[]
:repoURL: https://github.com/se-edu/addressbook-level3

By: `Team SE-EDU` Since: `Jun 2016` Licence: `MIT`
Group Name: `CS2103-F14-4`

By: `Chee You, Rushagrid Kunthamas, Sam Yong Jek, Song Tianyi, Tan Jun Bang`

Since: `Jun 2016` Licence: `MIT`

== Introduction

AddressBook Level 3 (AB3) is for those who *prefer to use a desktop app for managing contacts*. More importantly, AB3 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, AB3 can get your contact management tasks done faster than traditional GUI apps. Interested? Jump to the <<Quick Start>> to get started. Enjoy!
Deliveria is a *desktop application* that allows a *delivery manager* to *manage and assign delivery tasks* efficiently. While it consists of a _Graphical User Interface_ (GUI) that is user-friendly, Deliveria is *optimized for those who prefer* to work with a _Command Line Interface_ (CLI) which allows fast management of the delivery tasks in an organisation.

== Quick Start
== Getting Started
.Draft UI mockup
image::/images/Ui.png[Ui]
[caption="Figure 1: ",link="/images/Ui.png"]
. Ensure you have Java 11 or above installed in your Computer.
. Download the latest release deliveria.jar https://github.com/AY1920S1-CS2103T-F14-4/main/releases[here].
. Copy the file to the folder you want to use as the home folder for your Address Book.
. Double-click the file to start the app. The GUI should appear in a few seconds.
. Type the command in the command box and press Enter to execute it.
e.g. typing help and pressing Enter will open the help window.
. Some example commands you can try
* Lists all contacts: `list`

. Ensure you have Java `11` or above installed in your Computer.
. Download the latest `addressbook.jar` link:{repoURL}/releases[here].
. Copy the file to the folder you want to use as the home folder for your Address Book.
. Double-click the file to start the app. The GUI should appear in a few seconds.
+
image::Ui.png[width="790"]
+
. Type the command in the command box and press kbd:[Enter] to execute it. +
e.g. typing *`help`* and pressing kbd:[Enter] will open the help window.
. Some example commands you can try:
* Adds a contact named John Doe to the Address Book: `Add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01`

* *`list`* : lists all contacts
* **`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.
* **`delete`**`3` : deletes the 3rd contact shown in the current list
* *`exit`* : exits the app
* Deletes the 3rd contact shown in the current list: `Delete 3`

. Refer to <<Features>> for details of each command.
* Exits the app: `exit`

. Refer to <<Features>> for details of each command.

[[Features]]
== Features

====
*Command Format*
* Words in `UPPER_CASE` are the parameters to be supplied by the user e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`.
* 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.
* [action] [parameter 1] [parameter 2] [parameter 3]
* Parameter consists of a delimiter and a word. For example, to tag a person on index 1: `edit 1 t/ College`
* Commands are case sensitive
* Order of parameter is can be reordered freely.
====

=== Viewing help : `help`

List all available commands
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]...`
=== View delivery tasks: `view`

[TIP]
A person can have any number of tags (including 0)
Lists all delivery tasks
Format: `list delivery`

Examples:
=== Get delivery details: `read`

* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01`
* `add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal`
Retrieves the details of 3rd task shown in the current list
Format: `list delivery`

=== Listing all persons : `list`

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

=== Editing a person : `edit`
=== Delete delivery tasks: `delete`
Deletes an existing task shown in the current list +
Format: `delete delivery INDEX`

****
* Deletes the task at the specified `INDEX`. The index refers to the index number shown in the displayed task list. The index *must be a positive integer* 1,2,3,...
****

Edits an existing person in the address book. +
Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...`
=== Update driver field for a delivery task: `update`

Attach an existing task shown in the current list to Driver: `DriverName` +
Format: `update delivery INDEX n/DriverName`

****
* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index *must be a positive integer* 1, 2, 3, ...
* At least one of the optional fields must be provided.
* Existing values will be updated to the input values.
* When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative.
* You can remove all the person's tags by typing `t/` without specifying any tags after it.
* Attaches the task at the specified `INDEX` to Driver: `DriverName`. The index refers to the index number shown in the displayed task list. The index *must be a positive integer* 1,2,3,...
****

Examples:
Examples: +
* `update delivery 3 n/John Doe`

* `edit 1 p/91234567 e/johndoe@example.com` +
Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively.
* `edit 2 n/Betsy Crower t/` +
Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags.
=== View list of drivers: `list`

List all drivers +
Format: `list drivers`

=== Locating persons by name: `find`
=== Get driver details: `read`

Finds persons whose names contain any of the given keywords. +
Format: `find KEYWORD [MORE_KEYWORDS]`
Retrieves the details of an existing driver shown in current list +
Format: `read driver INDEX`

****
* The search is case insensitive. e.g `hans` will match `Hans`
* The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans`
* Only the name is searched.
* Only full words will be matched e.g. `Han` will not match `Hans`
* Persons matching at least one keyword will be returned (i.e. `OR` search). e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang`
* Retrives the details of driver at specified `INDEX`. The index refers to the index number shown in the displayed driver list. The index *must be a positive integer* 1,2,3,...
****

Examples:

* `find John` +
Returns `john` and `John Doe`
* `find Betsy Tim John` +
Returns any person having names `Betsy`, `Tim`, or `John`

// tag::delete[]
=== Deleting a person : `delete`
=== Delete a driver : `delete driver`

Deletes the specified person from the address book. +
Format: `delete INDEX`
Deletes the specified driver from the driver list. +
Format: `delete driver INDEX`

****
* Deletes the person at the specified `INDEX`.
* The index refers to the index number shown in the displayed person list.
* The index *must be a positive integer* 1, 2, 3, ...
* Deletes the driver at the specified `INDEX`.
* The driver cannot be deleted if it's already assigned to a task.
* The index refers to the index numbers shown in the displayed driver's list.
* The index *must be a positive integer* 1, 2, 3, ..
****

Examples:

* `list` +
`delete 2` +
Deletes the 2nd person in the address book.
`delete driver 2` +
Deletes the 2nd driver in the address book.
* `find Betsy` +
`delete 1` +
Deletes the 1st person in the results of the `find` command.

// end::delete[]
=== Clearing all entries : `clear`

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

=== Editing a driver : `update driver`

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

****
* Edits the driver at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index *must be a positive integer* 1, 2, 3, ...
* At least one of the optional fields must be provided.
* Existing values will be updated to the input values.
****

Examples:

* `edit 1 p/91234567 e/johndoe@example.com` +
Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively.
* `edit 2 n/Betsy Crower t/` +
Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags.


=== Assign a task to a driver: `assign`

Assign an existing task a driver. +
Format: `assign TASK_INDEX DRIVER_INDEX`

****
* If the driver is not available for that task, an error message will be shown.
* The indices refer to the numbers shown in the displayed lists.
****

Examples:

* `assign 1 3` +
Assigns the task at index 1 to the driver at index 3.

// end::delete[]

=== Exiting the program : `exit`

Expand All @@ -151,27 +181,14 @@ Format: `exit`
Address book data are saved in the hard disk automatically after any command that changes the data. +
There is no need to save manually.

// tag::dataencryption[]
=== Encrypting data files `[coming in v2.0]`

_{explain how the user can enable/disable data encryption}_
// end::dataencryption[]

== FAQ

*Q*: How do I transfer my data to another Computer? +
*A*: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Address Book folder.

== Command Summary

* *Add* `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...` +
e.g. `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague`
* *Clear* : `clear`
* *Delete* : `delete INDEX` +
e.g. `delete 3`
* *Edit* : `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]...` +
e.g. `edit 2 n/James Lee e/jameslee@example.com`
* *Find* : `find KEYWORD [MORE_KEYWORDS]` +
e.g. `find James Jake`
* *List* : `list`
* *Help* : `help`
*Q*: Where is the saved file at? +
*A*: It is located in the same folder where the .jar file is. There will be a folder called `data`.

*Q*: How do I know the list of commands? +
*A*: The `help` command will give a list of available commands.

Binary file modified docs/images/Ui.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 5e35ac7

Please sign in to comment.