Skip to content

Commit

Permalink
Merge pull request #37 from riccoljy/update-developer-guide
Browse files Browse the repository at this point in the history
Update developer guide (User Stories & Glossary)
  • Loading branch information
HanB1n authored Oct 3, 2024
2 parents 86a4699 + fde302e commit 59d8832
Showing 1 changed file with 58 additions and 14 deletions.
72 changes: 58 additions & 14 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

## **Acknowledgements**

_{ list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well }_
This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org).

--------------------------------------------------------------------------------------------------------------------

Expand Down Expand Up @@ -285,18 +285,59 @@ _{Explain here how the data archiving feature will be implemented}_

### User stories

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

| 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 |
| `* * *` | user | add a new person | |
| `* * *` | 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 | 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 |

*{More to be added}*
Priorities:
High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*`

Those without any stars are user stories that were considered but will not be implemented at this time.

| Priority | As a …​ | I want to …​ | So that…​ |
|:--------:|---------------------------|----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `* * *` | user | add tag(s) to each contact based on created tags such as florist, musician etc. | I can easily understand the group this person belongs to |
| `* * *` | user | add a phone number associated with each contact | I can easily find the contact information for each contact. |
| `* * *` | user | add the address associated with each contact | I can easily find the address of each contact. |
| `* * *` | user | filter contacts by tag | I can quickly see all the groups under the same tag, and find the right vendor based on the type of services provided |
| `* * *` | user | add new contacts into WedLinker | I can store the contact details of new contacts |
| `* * *` | user | delete contacts that are no longer needed | I can remove unnecessary contacts and have a more organised address book |
| `* * *` | user | search for contact by name | I can find specific contacts that I am looking for |
| `* * *` | user | create tags | I can have special categories for non traditional vendors |
| `* *` | user | edit information such as the contact number and address of each contact | all contacts have the most updated information |
| `* *` | user | clear all the contacts in the system | I can clear all my contacts quickly without having to individually delete them if I want to add in a completely new set of contacts |
| `* *` | careless user | receive a prompt that requires me to key in a confirmation that I want to delete a contact or clear the address book | I will not lose all my contacts when I accidentally type delete/ clear |
| `* *` | user | assign each guest contact its dietary requirements status | I can track the dietary requirement of each guest. |
| `* *` | user | sort contacts by alphabetical order | I can easily find the contacts required in a large address book. |
| `* *` | user | assign additional information for each contact | I can include important notes that may not fit into other categories, such as reminders for what the contact might need |
| `* *` | first-time user | see some sample contacts already available in the app | I can try out the different features without needing to add my own data (e.g allocating people to wedding, allocating task to contacts) |
| `* *` | careless, first-time user | reload the sample contacts into the app | I can continue trying out different features without needing to add my own data in case I accidentally cleared the contacts |
| `* *` | first-time user | see a help message showing all the commands/feature I can use | I can try out all the different features by referring to the message |
| `*` | user | assign tasks to contacts | I can track which tasks have been assigned to each contact. |
| `*` | user | update the status of tasks of contacts | I can track the status of completion of the tasks assigned to contacts |
| `*` | user | add a tag to each guest indicating their table number | track the table each guest is seated at |
| `*` | user | key in the table number and get the list of guests seated at that table | I can quickly identify all the groups seated at one table |
| `*` | user | assign a rating out of 5 to each vendor | I can track the experience with this vendor for future reference |
| `*` | busy user | add multiple wedding events | I can track contacts for multiple weddings at once |
| `*` | busy user | tag each contact to a wedding | I can easily see which contacts are relevant to which wedding |
| `*` | user | assign dates to a wedding | I can keep track of when different weddings are scheduled |
| `*` | user | assign dates to a wedding | I can keep track of when different weddings are scheduled |
| `*` | user | filter contacts by wedding | I can keep track of which contacts are relevant for each wedding |
| `*` | user | send out (standardised formatted) information (text/email) from the application | I can efficiently send out information without any mistakes |
| `*` | user | share the contact details to relevant third-parties for bookings (eg: venue bookings, suit/dress rental, etc.) | I can easily send out all relevant information (including dietary restriction, and other tags) to all the third-parties |
| `*` | user | exclude tags from search and filter | I can focus on contacts that are relevant to certain events or requirements without being overwhelmed by unnecessary information |
| `*` | busy user | autocomplete existing tags when user is inputting tag information | I can quickly assign roles for people that might be working with others I have already input into the system and not have to type the same roles in multiple times |
| `*` | user | assign availability to vendors | I can check who will be available for a particular wedding |
| `*` | user | filter availability of vendors | I can easily find vendors that can cater to a wedding |
| `*` | user | store multiple contact methods | I can contact the vendors through different means |
| `*` | user | re-assign tasks to another contact | I can account for vendors suddenly being unavailable |
| `*` | user | set reminders for tasks to different contacts | I can easily track and follow up with clients and vendors for deliverables |
| `*` | user | see a list of all tasks and reminders I have assigned to contacts in its own window | I can quickly and easily see what my earliest priorities are and act on them quickly |
| `*` | user | see a calendar view of tasks, reminders, and weddings I have assigned | I can see the whole timelines of my planned weddings and see how much time there is between tasks |
| `*` | user | set privacy setting for different contacts | I can keep personal and sensitive information private when sharing address book |
| `*` | forgetful user | create links between different contacts, such as assigning a vendor to a bride or groom in a wedding | I can easily navigate from key stakeholders in the wedding that I remember better to vendors who I might not remember as well |
| `*` | user | add certain vendors as favorites | I can remember which vendors performed well and see if they are favorites |
| `*` | user | access a list of all my favorite vendors | I can easily check who the best vendors were that I previously engaged with |
| | user | generate a checklist of all the contacts for a particular wedding, grouped by roles | I can keep track of who is meant to be present at the wedding |
| | user | assign a time for each contact for when they are meant to arrive | I can easily keep track of which people are on time and check who to contact in case they have not arrived yet |
| | user | attach extra documents as a file to various contacts | I can store all the information in one place, eg. Invoices from a vendor |
| | user | categorize tasks based on its nature (e.g. procurement, arrangement) | I can view tasks in a more organised manner |

### Use cases

Expand Down Expand Up @@ -565,7 +606,10 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
### Glossary

* **Mainstream OS**: Windows, Linux, Unix, MacOS
* **Private contact detail**: A contact detail that is not meant to be shared with others
* **Contact**: Contact details of an entry which includes minimally a name. Phone number, address, email address and tags are optional.
* **Tag**: An custom-made field that can be associated to contacts for ease of grouping/filtering
* **Vendor**: Businesses or persons who offer wedding services, like florists, musicians, venue in-charge, etc.
* **User**: The wedding planner who is using WedLinker

--------------------------------------------------------------------------------------------------------------------

Expand Down

0 comments on commit 59d8832

Please sign in to comment.