Skip to content

Commit

Permalink
Merge branch 'master' into branch-Docs-UpdateDocumentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Kb-Tay committed Nov 13, 2023
2 parents e32be65 + a126288 commit d5eae6d
Show file tree
Hide file tree
Showing 24 changed files with 326 additions and 172 deletions.
2 changes: 1 addition & 1 deletion docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg`
[[portfolio](team/jylow.md)]

* Role: Developer
* Responsibilities: Debugging + Testing
* Responsibilities: Quality Assurance + Testing

### Alyssa Png Kai Wen

Expand Down
195 changes: 114 additions & 81 deletions docs/DeveloperGuide.md

Large diffs are not rendered by default.

7 changes: 4 additions & 3 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ title: UNOFAS User Guide
---

## Welcome to UNOFAS!
Welcome to the User Guide for UNOFAS, your comprehensive solution for efficient and organized client contact management. Ever found yourself spending countless hours sorting and managing your clients' contacts? We understand the importance of managing your school commitments alongside maintaining strong relationships with your clients as dedicated student financial advisors. UNOFAS has been designed to streamline administrative hassles, providing you with the tools you need to manage clients' contacts efficiently.

## What is UNOFAS?
UNOFAS (UNO: One FAS: Financial Advisors app) is a **desktop app for Financial Advisors to manage clients contacts and schedule appointments,
Expand All @@ -19,12 +20,12 @@ use as financial advisors.
To help you make the most of this resource, we would recommend that you take some time to read through the entire guide.
You can then utilize the Table of Contents provided below and click on the relevant links to easily navigate through
the guide and access the information you might need or want to take another look at. We hope that this guide serves you well
to help make managing your clients a more pleasant experience.i
to help make managing your clients a more pleasant experience.

## Legend
:information-source: Important information to take note of. <br>
:information_source: Important information to take note of. <br>
:bulb: Useful tips for improving usability of the application. <br>
:caution: Mistakes to be wary of.
:exclamation: Mistakes to be wary of.


## Table of Contents
Expand Down
31 changes: 31 additions & 0 deletions docs/diagrams/AppointmentListSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
@startuml
!include style.puml
skinparam ArrowFontStyle plain

box Model MODEL_COLOR_T1
participant ":ModelManager" as ModelManager MODEL_COLOR
participant ":ObservableList<Appointment>" as observableAppointments MODEL_COLOR
end box

[-> ModelManager: setPerson(personToEdit, editedPerson)
activate ModelManager

ModelManager -> ModelManager: setAppointmentList()
activate ModelManager

ModelManager -> observableAppointments: clear()
activate observableAppointments
observableAppointments --> ModelManager
deactivate observableAppointments

loop through filteredPersons
ModelManager -> ModelManager: addToAppointmentListIfPresent(person)
activate ModelManager

deactivate ModelManager
end loop

deactivate ModelManager
[<--ModelManager
deactivate ModelManager
@enduml
42 changes: 42 additions & 0 deletions docs/diagrams/FindCommandSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
@startuml
!include style.puml
skinparam ArrowFontStyle plain

box Logic LOGIC_COLOR_T1
participant ":Logic" as Logic LOGIC_COLOR
participant "command:FindCommand" as FindCommand LOGIC_COLOR
participant "commandResult:CommandResult" as CommandResult LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant "model:Model" as Model MODEL_COLOR
end box

[-> Logic : execute(command)
activate Logic

Logic -> FindCommand : execute(model)
activate FindCommand

FindCommand -> Model: updateFilteredPersonList(predicate)
activate Model

Model --> FindCommand:
deactivate Model

create CommandResult
FindCommand -> CommandResult
activate CommandResult

CommandResult --> FindCommand
deactivate CommandResult

FindCommand --> Logic: commandResult
deactivate FindCommand

CommandResult -[hidden]-> Model
destroy FindCommand

[<--Logic : commandResult
deactivate Logic
@enduml
24 changes: 24 additions & 0 deletions docs/diagrams/GatherClassActivityDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@startuml
skin rose
skinparam ActivityFontSize 15
skinparam ArrowFontSize 12
start
:User executes gather command;

:User input is parsed;

'Since the beta syntax does not support placing the condition outside the
'diamond we place it as the true branch instead.

switch ()
case([prefix == "t/"])
:Gathers all email addresses of
clients with given tag;
case([prefix == "fp/"])
:Gathers all email addresses of
clients with given financial plan;
case([else])
:Throws error message;
endswitch
stop
@enduml
9 changes: 9 additions & 0 deletions docs/diagrams/ScheduleActivityDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,15 @@ start
switch ()
case([the schedule command is valid])
: Creates a ScheduleCommand which is executed by Logic Manager;
switch()
case([person has an appointment])
: Prompt user to decide if they wish to override;
if () then ([user continues])
else ([user cancels])
stop;
endif;
case([else])
endswitch
: Updates Person in FilterPersonList to have the scheduled appointment;
case([else])
: Throws an error;
Expand Down
Binary file added docs/images/AppointmentListSequenceDiagram.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/FindCommandSequenceDiagram.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/GatherClassActivityDiagram.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 modified docs/images/ScheduleActivityDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 13 additions & 10 deletions docs/team/alyssapng.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ such as sorting, scheduling and other commands to query information quickly requ
### Summary of Contributions

Given below are my contributions to the project.
* **New feature**: Added the ability to gather email of clients by Financial plan and Tag

* **New feature**: Added the ability to gather email of clients by Financial plan and Tag.

* What it does: It takes a prompt as input and retrieves emails of clients where the prompt matches a substring of their Financial Plan or Tag names.
* Justification: This feature significantly improves the product's efficiency by allowing financial advisors to consolidate emails effectively. It simplifies communication, enabling advisors to update multiple clients about changes in their financial plans or schedule crucial meetings promptly.
* Highlights:
Expand All @@ -25,24 +27,25 @@ Given below are my contributions to the project.


* **Enhancements Implemented**:
* Gather command to be able to gather emails by tags
* Gather command to be able to gather emails by tags.
* Pull request [#109](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/109)
* Enhancing the UI design for UNOFAS
* Enhancing the UI design for UNOFAS.
* Justification: Provide financial advisors with a more intuitive, visually appealing interface, optimizing content visibility to reduce the likelihood of overlooking crucial details.
* Pull request [#151](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/151)


* **Contributions to the UG**:
* Updated Title and Introduction
* Added Argument Summary
* Added documentation for the features `gather`
* Updated Title and Introduction.
* Added Argument Summary.
* Added documentation for the features `gather`.
* Reading through UG and identifying formatting issues.


* **Contributions to the DG**:
* Added target user profile, value proposition, user stories and user cases.
* Added class diagram and sequence diagram for `gather` feature.
* Added implementation details for `gather` feature.
* Added planned enhancement for `gather` feature.
* Added target user profile, value proposition, user stories and user cases
* Added class diagram and sequence diagram for `gather` feature
* Added implementation details for `gather` feature
* Added planned enhancement for `gather` feature


* **Community**:
Expand Down
28 changes: 14 additions & 14 deletions docs/team/jylow.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,37 +13,37 @@ such as sorting, scheduling and other commands to query information quickly requ

Given below are my contributions to the project.

* **New Feature**: Added the ability to sort list by appointments and lexicographical order [\#73](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/73) [\#90](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/90)
* **New Feature**: Added the ability to sort list by appointment time and name by lexicographical order. [\#73](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/73) [\#90](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/90)
* What it does: Allows the user to perform sorting of list by appointment time and lexicographical order of name.
* Justification: This feature improves the product significantly because a user can more efficiently find clients by name and the proximity of their appointments to view upcoming appointments.
* Highlights: This enhancement creates a base to implement different sorting capabilities in the future through sorting by new comparators. It required an understanding of ObservableList interface and the way the list is being tracked by JavaFX.
* Credits: The feature was implemented by referencing java ObservableList documentation.
* Credits: The feature was implemented by referencing JavaFX ObservableList documentation.

* **New Feature**: Added confirm override window for `schedule` command if person already has a current appointment [\#123](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/123)

* **New Feature**: Added confirm override window for `schedule` command if person already has a current appointment. [\#123](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/123)
* What it does: Caution a user if he intends to schedule a new appointment when there is already one that is not yet complete.
* Justification: Most people only arrange one appointment at a time. So the design prevents multiple appointments and also serves as a reminder of a previously set appointment.
* Highlights: This feature causes the logic flow of the method to change if there is currently an appointment and results in breaking the execution into 2, getting a response from the user before deciding whether to continue the execution of the program.
* Credits: The feature was implemented by referencing the help function from AB3. However, the main logic of getting the original appointment and displaying it for the user as well as splitting the execution of the function was done by myself.
* Credits: The feature was implemented by referencing the help function from AB3. However, the main logic of the function was done by myself.

* **Code Contributed**: [RepoSense](https://nus-cs2103-ay2324s1.github.io/tp-dashboard/?search=jylow&breakdown=true)

* **Enhancements Implemented**:
* Fixed bugs identified during manual testing
* Fixed bugs identified during manual testing.

* **Contributions to the UG**:
* Added documentation for the features `sort` [\#81](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/81)
* Maintained known issues to be solved
* Added documentation for the feature `sort`. [\#81](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/81)
* Maintained known issues to be solved.
* Proofreading of UG and making changes such as standardising terms used throughout the UG.

* **Contributions to the DG**:
* Added documentation for sort function
* Added sequence diagram for sort function
* Update schedule and clear command documentation to include the warning prompts
* Added documentation for sort function and improved documentation for `schedule` command.
* Added sequence and activity diagram for sort function and update activity diagram for `schedule` command to include overriding.
* Update schedule and clear command documentation to include the warning prompts.

* **Community**:
* PRs reviewed (with non-trivial review comments): [\#125](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/125) [\#133](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/133#pullrequestreview-1699166607)
* Contributed to 1 forum discussion (examples: [1](https://github.com/nus-cs2103-AY2324S1/forum/issues/172#issuecomment-1730790631))
* Reported bugs and suggestions for other teams in the class during PED
* Contributed to 1 forum discussion. (examples: [1](https://github.com/nus-cs2103-AY2324S1/forum/issues/172#issuecomment-1730790631))
* Reported bugs and suggestions for other teams in the class during PED.

* **Contributions to team-based tasks**:
* Released v1.3 and 1.4 of the application
* Released v1.3 and v1.4 of the application.
28 changes: 14 additions & 14 deletions docs/team/kb-tay.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,20 @@ UNOFAS is a desktop app for **Financial Advisors (FA)** to manage client’s con

Given below are my contributions to the project.

* **New Feature**: Added the ScheduleItem class as a new field to Person
* What it does: Ensures that a Person has a 1-to-1 relationship with a ScheduleItem object.
* Justification: This feature provides users the ability to associate appointments with their clients.
* Highlights: An abstract class is used to allow methods to be executed on the person's appointment field without needing to know if it is a null appointment or appointment.
* **New Feature**: Added the `ScheduleItem` class as a new field to Person
* Justification: This feature provides users the ability to associate appointments with their clients.
* Pull Request [#70](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/70)

<br>

* **New Feature** Added the ability to schedule appointments.
* What it does: Allows the user to create an appointment with the specified client.
* **New Feature**: Added the ability to `schedule` appointments.
* What it does: Allows the user to create an appointment associated with the specified client.
* Justification: This feature provides users the ability to schedule and keep track of appointments with their clients.
* Pull Request [#70](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/70)

<br>

* **New Feature** Added the ability to complete appointments.
* **New Feature**: Added the ability to complete appointments.
* What it does: Allows users to clear appointments completed from the contact book.
* Justification: With this feature, user can keep track of appointments completed.
* Highlights: This command allows for more flexibility, giving users the choice to clear appointments by user's index or by a date.
Expand All @@ -38,25 +36,27 @@ Given below are my contributions to the project.

* **Enhancements Implemented**:
* Added testing for implemented features
* Refactored `ScheduleItem` class to adhere to LSP. [#108](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/108) [#217](https://github.com/AY2324S1-CS2103T-F12-1/tp/issues/217)
* Refactored `CompleteCommand` to better adhere to the command pattern.
* Refactored `ScheduleItem` class to adhere to LSP. [#108](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/108)
* Refactored `CompleteCommand` to better adhere to the command pattern. [#217](https://github.com/AY2324S1-CS2103T-F12-1/tp/issues/217)


* **Contributions to the UG**:
* Added documentation for `schedule` command and `complete` under feature section. [#137](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/137) [#135](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/137) [#210](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/210)


* **Contributions to the DG**:
* Added class diagram and sequence diagram for `schedule` feature.
* Added documentation on implementation and design considerations for `schedule` feature.
* Added sequence and activity diagram for `complete` feature.
* Document the overview of how `Command` is executed.
* Added documentation, class diagram and sequence diagram for `schedule` feature.
* Added documentation on design considerations for `Appointment` field. [#137](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/137)
* Added sequence and activity diagram for `complete` feature. [#209](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/209/files)
* Added documentation on implementation and design considerations for `complete` feature.


* **Community**:
* Review PRs of teammates. [#109](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/109) [#205](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/205) [#110](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/110) [#256](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/256)
* Review DG and suggested bug fixes for teammates. [#285](https://github.com/AY2324S1-CS2103T-F12-1/tp/issues/285) [#278] (https://github.com/AY2324S1-CS2103T-F12-1/tp/issues/278)
* Review DG and suggested bug fixes for teammates. [#285](https://github.com/AY2324S1-CS2103T-F12-1/tp/issues/285) [#278](https://github.com/AY2324S1-CS2103T-F12-1/tp/issues/278)


* **Contributions to team-based tasks**
* Update Developer Guide - Update diagrams for the general components.
* Update Developer Guide - Update diagram for `Model` and `Storage`, checked for overall correctness. [#128](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/128)
* Handled PE-D bug triaging.
25 changes: 12 additions & 13 deletions docs/team/nikele2001.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,7 @@ such as sorting, scheduling and other commands to query information quickly requ

Given below are my contributions to the project.

* **New Feature**: Added `FinancialPlan` field and wrote tests
* Justification: As a financial advisor, it would be convenient to have a person's current financial plans available for business purposes.
* (Pull request [#69](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/69))

<br>

* **New Feature**: Added appointment sidebar that shows upcoming appointments of clients in chronological order and wrote tests
* **New Feature**: Added appointment list that shows upcoming appointments of clients in chronological order and wrote tests.
* Justification: Financial advisors may want to view all upcoming appointments easily in chronological order so that it is easier for them to plan their timetables.
* Highlights: This enhancement creates another UI element to show various other appointment-specific details in the future. It requires an understanding of ObservableList interface and the way the list is being tracked by JavaFX.
* (Pull request [#110](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/110))
Expand All @@ -29,18 +23,23 @@ Given below are my contributions to the project.


* **Enhancements Implemented**:
* `FinancialPlan` field to allow financial advisors to execute commands specific to financial plans subscribed by clients
* Override prompt to ask user for confirmation before overriding an appointment.

* Added `FinancialPlan` field and wrote tests.
* Justification: As a financial advisor, it would be convenient to have a person's current financial plans available for business purposes.
* (Pull request [#69](https://github.com/AY2324S1-CS2103T-F12-1/tp/pull/69))

* **Contributions to the UG**:
* Added introduction to UG.
* Added and updated all UI images.
* Added general UI information table
* Added general UI information table.


* **Contributions to the DG**:
* Added use cases for `schedule` command, adding financial plans via the `fp/` prefix and sorting clients' contacts.
* Update class diagram for `Model` and `UI`
* Added use cases for `schedule` command, `sort` command, `complete` command and adding financial plans via the `fp/` prefix.
* Updated user stories.
* Updated UML class diagrams for `Model` and `UI` components.
* Added sequence diagram for the `setPerson()` method in the `ScheduleCommand#execute()` method to illustrate how the appointment list is being updated.
* Added activity diagram for the `gather` command.
* Contributed to `Instructions for manual testing` in DG.
* Added effort section.


Expand Down
Loading

0 comments on commit d5eae6d

Please sign in to comment.