Skip to content

Commit e810ac9

Browse files
authored
Merge pull request #28 from AY2526S2-CS2103T-T08-2/revert-26-master
Revert "Clean DG"
2 parents 2a08876 + 6423736 commit e810ac9

File tree

1 file changed

+129
-1
lines changed

1 file changed

+129
-1
lines changed

docs/DeveloperGuide.md

Lines changed: 129 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
pageNav: 3
55
---
66

7-
# MALAdress Developer Guide
7+
# AB-3 Developer Guide
88

99
<!-- * Table of Contents -->
1010
<page-nav-print />
@@ -323,6 +323,94 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
323323
**Extensions**
324324

325325

326+
* 2a. Invalid phone format - System shows error message and does not add.
327+
328+
* 3a.Duplicate contact detected - System rejects add and shows duplicate error.
329+
330+
331+
332+
**Use case: Tag a contact as supplier/customer and update remarks**
333+
System updates the conta
334+
335+
#### Design considerations:
336+
337+
**Aspect: How undo & redo executes:**
338+
339+
* **Alternative 1 (current choice):** Saves the entire address book.
340+
* Pros: Easy to implement.
341+
* Cons: May have performance issues in terms of memory usage.
342+
343+
* **Alternative 2:** Individual command knows how to undo/redo by
344+
itself.
345+
* Pros: Will use less memory (e.g. for `delete`, just save the person being deleted).
346+
* Cons: We must ensure that the implementation of each individual command are correct.
347+
348+
_{more aspects and alternatives to be added}_
349+
350+
### \[Proposed\] Data archiving
351+
352+
_{Explain here how the data archiving feature will be implemented}_
353+
354+
355+
--------------------------------------------------------------------------------------------------------------------
356+
357+
## **Documentation, logging, testing, configuration, dev-ops**
358+
359+
* [Documentation guide](Documentation.md)
360+
* [Testing guide](Testing.md)
361+
* [Logging guide](Logging.md)
362+
* [Configuration guide](Configuration.md)
363+
* [DevOps guide](DevOps.md)
364+
365+
--------------------------------------------------------------------------------------------------------------------
366+
367+
## **Appendix: Requirements**
368+
369+
### Product scope
370+
371+
**Target user profile**:
372+
373+
* has a need to manage a significant number of contacts
374+
* prefer desktop apps over other types
375+
* can type fast
376+
* prefers typing to mouse interactions
377+
* is reasonably comfortable using CLI apps
378+
379+
**Value proposition**: manage contacts faster than a typical mouse/GUI driven app
380+
381+
382+
### User stories
383+
384+
Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*`
385+
386+
| Priority | As a …​ | I want to …​ | So that I can…​ |
387+
|----------|--------------------------------------------|------------------------------|------------------------------------------------------------------------|
388+
| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the App |
389+
| `* * *` | user | add a new person | |
390+
| `* * *` | user | delete a person | remove entries that I no longer need |
391+
| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list |
392+
| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident |
393+
| `*` | user with many persons in the address book | sort persons by name | locate a person easily |
394+
395+
*{More to be added}*
396+
397+
### Use cases
398+
399+
(For all use cases below, the **System** is the `AddressBook` and the **Actor** is the `user`, unless specified otherwise)
400+
401+
**Use case: Add a supplier/customer contact with contact info**
402+
403+
**MSS**
404+
405+
1. The user enters the add command with name and phone.
406+
2. System shows “successfully saved” message
407+
3. System refreshed the UI contact list with the latest added contact.
408+
409+
Use case ends.
410+
411+
**Extensions**
412+
413+
326414
* 2a. Invalid phone format - System shows error message and does not add.
327415
* 3a.Duplicate contact detected - System rejects add and shows duplicate error.
328416

@@ -394,6 +482,46 @@ System updates the contact with the new tag and updated remarks.
394482

395483
Given below are instructions to test the app manually.
396484

485+
ct with the new tag and updated remarks.
486+
487+
488+
**MSS**
489+
490+
1. The user enters a tag command with a supplier or consumer tag and its remarks.
491+
2. The system shows a “successfully updated” message.
492+
3. System refreshed the UI contact list with the latest added contact.
493+
494+
Use case ends.
495+
496+
**Extensions**
497+
498+
499+
* 2a. Invalid phone format - System shows error message and does not add.
500+
501+
* 3a.Duplicate contact detected - System rejects add and shows duplicate error.
502+
503+
504+
*{More to be added}*
505+
506+
### Non-Functional Requirements
507+
508+
1. Should work on any _mainstream OS_ as long as it has Java `17` or above installed.
509+
2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage.
510+
3. 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.
511+
512+
*{More to be added}*
513+
514+
### Glossary
515+
516+
* **Mainstream OS**: Windows, Linux, Unix, MacOS
517+
* **Private contact detail**: A contact detail that is not meant to be shared with others
518+
519+
--------------------------------------------------------------------------------------------------------------------
520+
521+
## **Appendix: Instructions for manual testing**
522+
523+
Given below are instructions to test the app manually.
524+
397525
<box type="info" seamless>
398526

399527
**Note:** These instructions only provide a starting point for testers to work on;

0 commit comments

Comments
 (0)