forked from nusCS2113-AY1920S1/PersonalAssistant-Duke
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/AY1920S1-CS2113T-F10-3/main
- Loading branch information
Showing
12 changed files
with
557 additions
and
9 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,252 @@ | ||
= AlphaNUS - Developer Guide | ||
:site-section: DeveloperGuide | ||
:toc: | ||
:toc-title: | ||
:toc-placement: preamble | ||
:sectnums: | ||
:imagesDir: images | ||
:stylesDir: stylesheets | ||
:xrefstyle: full | ||
ifdef::env-github[] | ||
:tip-caption: :bulb: | ||
:note-caption: :information_source: | ||
:warning-caption: :warning: | ||
endif::[] | ||
:repoURL: https://github.com/se-edu/addressbook-level3/tree/master | ||
|
||
By: `AY1920S1-CS2113T-F10-3` Since: `Aug 2019` Licence: `NUS` | ||
|
||
[appendix] | ||
== Product Scope | ||
|
||
*Target user profile*: | ||
|
||
* has a need to manage a significant number of payment forms | ||
* prefer desktop apps over other types | ||
* can type fast | ||
* prefers typing over mouse input | ||
* is reasonably comfortable using CLI apps | ||
|
||
*Value proposition*: Manage payments faster than a typical mouse/GUI driven app | ||
|
||
[appendix] | ||
== User Stories | ||
|
||
Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (unlikely to have) - `*` | ||
|
||
[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 | ||
|
||
|`* * *` |NUS Treasurer |add the budget for an event |spend within my budget | ||
|
||
|`* * *` |NUS Treasurer |add my deadlines |keep track of the payments to be submitted | ||
|
||
|`* *` |NUS Treasurer |set priorities for each deadline |decide which task to finish first | ||
|
||
|`* *` |NUS Treasurer |view the amount of money remaining from my budget |budget my spending better | ||
|
||
|`* *` |NUS Treasurer |edit my forms easily |correct any mistakes i make | ||
|
||
|`* *` |NUS Treasurer |delete my forms easily |correct any mistakes i make | ||
|
||
|`* *` |NUS Treasurer |find my forms easily |locate details of an event without going through the whole list | ||
|
||
|`* *` |NUS Treasurer |approve my payment forms |track which payment forms have been approved | ||
|
||
|`*` |NUS Treasurer |categorise the payment forms I submitted into projects |keep track of the payment forms belonging to a particular project | ||
|
||
|`*` |NUS Treasurer |share my payment forms |get approval from my superiors | ||
|======================================================================= | ||
|
||
[appendix] | ||
== Use Cases | ||
|
||
(For all use cases below, the *System* is `AlphaNUS` and the *Actor* is the `NUS Treasurer`, unless specified otherwise) | ||
|
||
=== Use case: Add a new deadline | ||
|
||
*MSS* | ||
|
||
1. User opens the JAR file. | ||
2. AlphaNUS shows a command line along with different sections such as “Deadlines”, “Payments” and “Payment History”. | ||
3. User types in the command line the deadline description and time. | ||
4. AlphaNUS adds the deadline. | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 3a. User types in an invalid deadline command. | ||
** 3a1. AlphaNUS shows an error message and the correct deadline input format. | ||
+ | ||
Use case ends. | ||
|
||
=== Use case: Add a new payment form | ||
|
||
*MSS* | ||
|
||
1. User opens the JAR file. | ||
2. AlphaNUS shows a command line along with different sections such as “Deadlines”, “Payments” and “Payment History”. | ||
3. User types in the command line the payment description, items and the cost of each item. | ||
4. AlphaNUS adds the payment form. | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 3a. User types in an invalid payment command. | ||
** 3a1. AlphaNUS shows an error message and the correct payment input format. | ||
+ | ||
Use case ends. | ||
|
||
=== Use case: Find a payment form or deadline | ||
|
||
*MSS* | ||
|
||
1. User opens the JAR file. | ||
2. AlphaNUS shows a command line along with different sections such as “Deadlines”, “Payments” and “Payment History”. | ||
3. User types in the command line the command to find and a keyword containing part of the description of a deadline or payment form. | ||
4. AlphaNUS lists the deadlines and payment forms with descriptions that matches the keyword. | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 3a. User types in an invalid find command. | ||
** 3a1. AlphaNUS shows an error message and the correct find input format. | ||
+ | ||
Use case ends. | ||
|
||
[none] | ||
* 3b. User types in a keyword that returns no match. | ||
** 3b1. AlphaNUS shows a no-match error message. | ||
+ | ||
Use case ends. | ||
|
||
=== Use case: Edit the description of a payment form or a deadline | ||
|
||
*MSS* | ||
|
||
1. User opens the JAR file. | ||
2. AlphaNUS shows a command line along with different sections such as “Deadlines”, “Payments” and “Payment History”. | ||
3. User types in command line the command to edit a payment form or deadline with a new description. | ||
4. AlphaNUS updates the payment form/deadline with the new description. | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 3a. User types in a non-existing id. | ||
** 3a1. AlphaNUS shows a non-existing id error message. | ||
+ | ||
Use case ends. | ||
|
||
=== Use case: Edit the time of a deadline | ||
|
||
*MSS* | ||
|
||
1. User opens the JAR file. | ||
2. AlphaNUS shows a command line along with different sections such as “Deadlines”, “Payments” and “Payment History”. | ||
3. User requests to reschedule a deadline to a new time. | ||
4. AlphaNUS updates the deadline with the new time. | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 3a. User types in a non-existing id for a deadline. | ||
** 3a1. AlphaNUS shows a non-existing id error message. | ||
+ | ||
Use case ends. | ||
|
||
[none] | ||
* 3b. User types in an invalid time. | ||
** 3b1. AlphaNUS shows an invalid time error message. | ||
+ | ||
Use case ends. | ||
|
||
[none] | ||
* 3c. User requests to snooze the deadline. | ||
** 3c1. AlphaNUS snoozes the deadline by 1 hour. | ||
+ | ||
Use case ends. | ||
|
||
[none] | ||
* 3d. User requests to [.underline]#find the deadline# first. | ||
** 3d1. AlphaNUS lists the deadlines that match the keyword searched. | ||
+ | ||
Use case resumes from step 3. | ||
|
||
=== Use case: Edit the <<payment-details, payment details>> of a payment form | ||
|
||
*MSS* | ||
|
||
1. User opens the JAR file. | ||
2. AlphaNUS shows a command line along with different sections such as “Deadlines”, “Payments” and “Payment History”. | ||
3. User requests to redetail a payment form. | ||
4. AlphaNUS updates the payment form with its new payment details. | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 3a. User types in a non-existing id for a payment form. | ||
** 3a1. AlphaNUS shows a non-existing id error message. | ||
+ | ||
Use case ends. | ||
|
||
[none] | ||
* 3d. User requests to [.underline]#find the payment form# first. | ||
** 3d1. AlphaNUS lists the payment forms that match the keyword searched. | ||
+ | ||
Use case resumes from step 3. | ||
|
||
|
||
=== Use case: Approve a payment form | ||
|
||
*MSS* | ||
|
||
1. User opens the JAR file. | ||
2. AlphaNUS shows a command line along with different sections such as “Deadlines”, “Payments” and “Payment History”. | ||
3. User requests to approve a payment form. | ||
4. AlphaNUS sets the payment form to approved. | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 3a. User types in a non-existing id for a payment form. | ||
** 3a1. AlphaNUS shows a non-existing id error message. | ||
+ | ||
Use case ends. | ||
|
||
[none] | ||
* 3d. User requests to [.underline]#find the payment form# first. | ||
** 3d1. AlphaNUS lists the payment forms that match the keyword searched. | ||
+ | ||
Use case resumes from step 3. | ||
|
||
[appendix] | ||
== Non Functional Requirements | ||
|
||
. Should work on any <<mainstream-os,mainstream OS>> as long as it has Java `11` or above installed. | ||
. Should be able to support up to 1000 payment forms and deadlines 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. | ||
|
||
[appendix] | ||
== Glossary | ||
|
||
[[mainstream-os]] Mainstream OS:: | ||
Windows, Linux, Unix, OS-X | ||
|
||
[[payment-details]] Payment Details:: | ||
The item name and its cost in a payment form. |
Oops, something went wrong.