Skip to content

Commit

Permalink
Merge branch 'master' into branch-release
Browse files Browse the repository at this point in the history
* master:
  Fix bug with defining categories
  Fix checkstyle
  Fix activity diagrams
  Fix activity diagrams
  Update DG
  Fix listT create img
  Fix nits
  DG: formatting fix
  Update UG
  Update comments
  Update DG
  Update UG
  • Loading branch information
Misra Aditya committed Nov 14, 2023
2 parents 1d4e399 + f317ce9 commit 541d322
Show file tree
Hide file tree
Showing 17 changed files with 79 additions and 58 deletions.
2 changes: 1 addition & 1 deletion docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ You can reach us at the email `e0958427[at]comp.nus.edu.sg`
<img src="images/ketweeen.png" width="200px">

[[github](http://github.com/ketweeen)]
[[portfolio](team/ketween.md)]
[[portfolio](team/ketweeen.md)]

* Role: Developer
* Responsibilities: Scheduling and tracking
Expand Down
38 changes: 31 additions & 7 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ The sections below give more details of each component.

The **API** of this component is specified in [`Ui.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/Ui.java)

<puml src="/diagrams/UiClassDiagram.puml" alt="Structure of the UI Component"/>
<puml src="diagrams/UiClassDiagram.puml" alt="Structure of the UI Component"> </puml>

The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel`, `PersonInformationPanel`, `SummaryStatisticScreen` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class which captures the commonalities between classes that represent parts of the visible GUI.
The `UI` component uses the JavaFx UI framework. The layout of these UI parts are defined in matching `.fxml` files that are in the `src/main/resources/view` folder. For example, the layout of the [`MainWindow`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/MainWindow.java) is specified in [`MainWindow.fxml`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/resources/view/MainWindow.fxml)
Expand All @@ -88,7 +88,7 @@ The `UI` component,

Here's a (partial) class diagram of the `Logic` component:

<puml src="diagrams/LogicClassDiagram." width="550"/>
<puml src="diagrams/LogicClassDiagram.puml" width="550"/>

The sequence diagram below illustrates the interactions within the `Logic` component, taking `execute("delete st/interviewed t/developer")` API call as an example.

Expand Down Expand Up @@ -266,16 +266,22 @@ The following sequence diagram shows how the view operation works:

<puml src="diagrams/ViewSequenceDiagram.puml" alt="ViewSequenceDiagram"></puml>

<box type="info" seamless>

**Note:** The lifeline for `ViewCommand` and `ViewCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram.

</box>
User should see the UI as shown below after entering `view 1` (The command shown in Command Box is re-inputted for the sake of clarity. After entering the command, command should be cleared)
![View](images/viewState.png)

Step 3. The user can then read or process the information stored for the viewed person.

<box type="info" seamless>

**Note:** The view command can be most effectively used with `search` and `list`. Since the view index is dependent on the Index on the filtered list shown, the user can view the profile after filtering for specific properties in a person using `search` and sorting them using `list`.

</box>

Alternatives considered

Alternative 1 (Chosen):
Expand Down Expand Up @@ -314,6 +320,10 @@ Parsing of the create command's tag parameters is handled by the `parse` method

Finally, the `execute()` method of the `CreateTagCommand` creates a `Tag` object for each element in the array of tag category and name pairs. These newly created tags are then added to the model.

The following activity diagram summarize what happens when a user attempts to execute the `create` command.

<puml src="diagrams/CreateTagActivityDiagram.puml" alt="CreateTagActivityDiagram"/></puml>

### Search feature

#### Implementation
Expand Down Expand Up @@ -342,10 +352,16 @@ Step 1. The user launches the application.
Step 2. The user executes `search t/intern` command to filter candidates whose status are offered.

The following sequence diagram shows how the search operation works:
<box type="info" seamless>

**Note:** The lifeline for `FindCommand` and `FindCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram.
**Note:**
* The lifeline for `FindCommand` and `FindCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram.
* The `parse` method of `FindCommandParsers` also creates objects of the `NameContainsKeywordPredicate`, `StatusContainsKeywordPredicate` and `TagContainsKeywordPredicate` but these
were instantiations not included in the sequence diagram below for the sake of brevity. However, do note that the `n`, `s`, `t` arguments in `getPredicatesList(n, s, t)` in the sequence
diagram below refer to instances of `NameContainsKeywordPredicate`, `StatusContainstKeywordPredicate` and `TagContainsKeywordPredicate` respectively.
</box>

<puml src="diagrams/SearchSequenceDiagram.puml" alt="SearchSequenceDiagram"/>
<puml src="diagrams/SearchSequenceDiagram.puml" alt="SearchSequenceDiagram" width/>

Step 3. The user should see the UI below upon entering `search t/intern`.

Expand All @@ -355,9 +371,11 @@ The following activity diagram shows summarizes what happens when a user attempt

<puml src="diagrams/SearchActivityDiagram.puml" />

<box type="info" seamless>

**Note:** The current implementation of search allows users to search by any of the categories individually or by different combinations of the categories e.g. `search n/alex bernice st/offered t/intern`
It also allows users to specify more than one search parameter for each category e.g. `search n/alex bernice`

</box>
## Delete feature

### Implementation
Expand Down Expand Up @@ -394,8 +412,12 @@ Step 2. The user executes `delete st/interviewed t/developer` command to delete

The following sequence diagram shows how the search operation works:

<box type="info" seamless>

**Note:** The lifeline for `DeleteCommand` and `DeleteCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram.

</box>

<puml src="diagrams/DeleteSequenceDiagram.puml" alt="DeleteSequenceDiagram" />

Step 3. Assuming Bernice is the applicant matching the requirements, the user should see the UI below upon entering `delete st/interviewed t/developer`.
Expand All @@ -406,8 +428,11 @@ The following activity diagram shows summarizes what happens when a user attempt

<puml src="diagrams/DeleteActivityDiagram.puml" />

<box type="info" seamless>

**Note:** The current implementation of delete by tags & status allows users to search by any of the categories individually or by different combinations of the categories.
It also allows users to specify more than one delete parameter for each category e.g. `delete t/intern manager`
</box>

### Set feature

Expand Down Expand Up @@ -512,8 +537,7 @@ The following sequence diagram shows how the `Event` operation works:

User should see the UI as shown below after executing the aforementioned command [It is assumed that the first candidate in the list is Alex Yeoh].


![EventWindow](images/eventwin.png)
<img src="images/eventwin.png" alt="EventWindow" width="550"/>

The following activity diagram shows how the `event` and `schedule` command can be used together to schedule events:

Expand Down
17 changes: 8 additions & 9 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,14 +170,14 @@ Not to worry, here are some steps you can take to fix this:
![UiBreakdown](images/uibreak.png)

| Colour | Component | Description |
| ---------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
| <img src="images/red_1.png" width="10px" height="10px"> | Menu Bar | Provides buttons for exiting, opening Help window, and opening Events window. |
| <img src="images/orange.png" width="10px" height="10px"> | Command Box | Allows you to enter a command. |
| <img src="images/yellow.png" width="10px" height="10px"> | Result Display | Displays the result of the command execution. |
| <img src="images/green.png" width="10px" height="10px"> | Applicant List Panel | Displays a list of all applicants in JABPro. |
| <img src="images/blue.png" width="10px" height="10px"> | Applicant Card | Displays certain details of an applicant for quick view, such as name, address, phone, email, tags, LinkedIn/GitHub username. |
| <img src="images/purple.png" width="10px" height="10px"> | Applicant Information Panel | Displays a detailed view of an applicant, providing information of status and remarks, in addition to the basic information about the applicant. |
| <img src="images/brown.png" width="10px" height="10px"> | Summary Statistics Panel | Displays summary statistics for a particular applicant pertaining to a specific tag. |
| <img src="images/brown.png" width="10px" height="10px"> | Applicant Card | Displays certain details of an applicant for quick view, such as name, address, phone, email, tags, LinkedIn/GitHub username. |
| <img src="images/blue.png" width="10px" height="10px"> | Applicant Information Panel | Displays a detailed view of an applicant, providing information of status and remarks, in addition to the basic information about the applicant. |
| <img src="images/purple.png" width="10px" height="10px"> | Summary Statistics Panel | Displays summary statistics for a particular applicant pertaining to a specific tag. |

In addition, there are windows such as:
* Help Window [accessed by the `help` command, or through Menu Bar].
Expand Down Expand Up @@ -734,7 +734,7 @@ An example of the `create` command being successfully executed:

3. View your newly created tags using the `listT` command.

![listT-create](images/listT-create.png)
![listT-create](images/listT-create-success.png)

Failed to create tags? Here are some possible reasons why

Expand Down Expand Up @@ -1080,10 +1080,9 @@ Exports the entries into a .csv file located in the current directory as (/data/

**Notes regarding `csv` command:**
* Export only exports the following: Name, Phone, Email, Address, Tags, Linkedin, Github, Remark, Status.
<box type="tip" seamless>
* JABPro must have write permissions, this means that if the .csv file is open,
exporting again will not be possible.

* JABPro must have write permissions, this means that if the .csv file is open,
exporting again will not be possible.

Examples:
* `export` exports the data to /data/export.csv

Expand Down
19 changes: 19 additions & 0 deletions docs/diagrams/CreateTagActivityDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
@startuml
'https://plantuml.com/activity-diagram-beta
|User|
skin rose
skinparam ActivityFontSize 15
skinparam ArrowFontSize 12
start
:Start JABPro;
:User enters create command;

if () then ([Command successfully executed])
|JABPro|
:Create tag and
add to global tag list;
else ([Command fails to execute])
:Show error message;
endif
stop
@enduml
2 changes: 1 addition & 1 deletion docs/diagrams/DeleteActivityDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ skinparam ActivityFontSize 15
skinparam ArrowFontSize 12
start
:Start JABPro;
:User enters command;
:User enters delete command;

if () then ([Command successfully executed])
|JABPro|
Expand Down
4 changes: 2 additions & 2 deletions docs/diagrams/ExportActivityDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ skinparam ArrowFontSize 12
start
:Start JABPro;
:Enter export command;
if (CommandIsSuccessful) then ([true])
if () then ([Command executes successfully])
|JABPro|
:Exports existing data to /data/export.csv;
else ([false])
else ([Command fails to execute])
|JABPro|
:Display error message and provide remedy;
|User|
Expand Down
22 changes: 0 additions & 22 deletions docs/diagrams/SearchSequenceDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,12 @@
!include style.puml
skinparam ArrowFontStyle plain


box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":FindCommandParser" as FindCommandParser LOGIC_COLOR
participant "f:FindCommand" as FindCommand LOGIC_COLOR
participant ":CommandResult" as CommandResult LOGIC_COLOR
participant "n:NameContainsKeywordPredicate" as NameContainsKeywordPredicate LOGIC_COLOR
participant "s:StatusContainsKeywordPredicate" as StatusContainsKeywordPredicate LOGIC_COLOR
participant "t:TagContainsKeywordPredicate" as TagContainsKeywordPredicate LOGIC_COLOR

end box

box Model MODEL_COLOR_T1
Expand All @@ -35,23 +30,6 @@ deactivate FindCommandParser
AddressBookParser -> FindCommandParser : parse("search st/offered")
activate FindCommandParser

create NameContainsKeywordPredicate
FindCommandParser -> NameContainsKeywordPredicate
activate NameContainsKeywordPredicate
NameContainsKeywordPredicate --> FindCommandParser : n
deactivate NameContainsKeywordPredicate

create StatusContainsKeywordPredicate
FindCommandParser -> StatusContainsKeywordPredicate
activate StatusContainsKeywordPredicate
StatusContainsKeywordPredicate --> FindCommandParser : s
deactivate StatusContainsKeywordPredicate

create TagContainsKeywordPredicate
FindCommandParser -> TagContainsKeywordPredicate
activate TagContainsKeywordPredicate
TagContainsKeywordPredicate --> FindCommandParser : t
deactivate TagContainsKeywordPredicate

FindCommandParser -> FindCommandParser: getPredicatesList(n, s, t)
activate FindCommandParser
Expand Down
7 changes: 5 additions & 2 deletions docs/diagrams/SetActivityDiagram.puml
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
@startuml
'https://plantuml.com/activity-diagram-beta
|User|
skin rose
skinparam ActivityFontSize 15
skinparam ArrowFontSize 12
start
:Start JABPro;
:Enter Set command;
if (CommandIsSuccessful) then ([true])
if () then ([Command executes successfully])
|JABPro|
:Set specified user to the specified status;
|User|
:Enter view command;
|JABPro|
:Show the updated user profile;
|User|
else ([false])
else ([Command fails to execute])
|JABPro|
:Display error message and provide remedy;
|User|
Expand Down
3 changes: 0 additions & 3 deletions docs/diagrams/eventactivitydiagram.puml
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
@startuml
'https://plantuml.com/activity-diagram-beta
skin rose
skinparam ActivityFontSize 15
skinparam ArrowFontSize 12
|User|
skin rose
skinparam ActivityFontSize 15
Expand Down
Binary file modified docs/images/Ui.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/listT-create-success.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
[![CI Status](https://github.com/ay2324s1-cs2103t-w09-4/tp/workflows/Java%20CI/badge.svg)](https://github.com/ay2324s1-cs2103t-w09-4/tp/actions)
[![codecov](https://codecov.io/gh/AY2324S1-CS2103T-W09-4/tp/branch/master/graph/badge.svg)](https://codecov.io/gh/AY2324S1-CS2103T-W09-4/tp)

![Ui](images/main.png)
![Ui](images/Ui.png)

**JABPro is a desktop application used for managing job applications received by you.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ private int countDistinctCategories(List<Tag> tags) {

for (Tag tag : tags) {
String tagCategory = tag.getTagCategory();
distinctCategories.add(tagCategory);
if (!tagCategory.equals("uncategorised")) {
distinctCategories.add(tagCategory);
}
}

return distinctCategories.size();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
import seedu.address.model.person.Github;

/**
* Parses input arguments and creates a new AddLCommand object
* Parses input arguments and creates a new AddGCommand object
*/
public class AddGCommandParser implements Parser<AddGCommand> {

/**
* Parses the given {@code String} of arguments in the context of the AddLCommand
* and returns an AddLCommand object for execution.
* Parses the given {@code String} of arguments in the context of the AddGCommand
* and returns an AddGCommand object for execution.
* @throws ParseException if the user input does not conform the expected format
*/
public AddGCommand parse(String args) throws ParseException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import seedu.address.logic.parser.exceptions.ParseException;

/**
* Parses input arguments and creates a new GithubCommand object.
* Parses input arguments and creates a new LinkedInCommand object.
*/
public class LinkedInCommandParser implements Parser<LinkedInCommand> {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@
import java.util.Optional;

import seedu.address.commons.exceptions.DataLoadingException;
import seedu.address.model.ReadOnlyAddressBook;
import seedu.address.model.ReadOnlyEventBook;

/**
* Represents a storage for {@link seedu.address.model.AddressBook}.
* Represents a storage for {@link seedu.address.model.EventBook}.
*/
public interface EventBookStorage {

Expand All @@ -19,7 +18,7 @@ public interface EventBookStorage {
Path getEventBookFilePath();

/**
* Returns AddressBook data as a {@link ReadOnlyAddressBook}.
* Returns EventBook data as a {@link ReadOnlyEventBook}.
* Returns {@code Optional.empty()} if storage file is not found.
*
* @throws DataLoadingException if loading the data from storage failed.
Expand All @@ -32,7 +31,7 @@ public interface EventBookStorage {
Optional<ReadOnlyEventBook> readEventBook(Path filePath) throws DataLoadingException;

/**
* Saves the given {@link ReadOnlyAddressBook} to the storage.
* Saves the given {@link ReadOnlyEventBook} to the storage.
* @throws IOException if there was any problem writing to the file.
*/
void saveEventBook(ReadOnlyEventBook eventBook) throws IOException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import seedu.address.model.event.Event;

/**
* An Immutable AddressBook that is serializable to JSON format.
* An Immutable EventBook that is serializable to JSON format.
*/
@JsonRootName(value = "eventbook")
class JsonSerializableEventBook {
Expand Down

0 comments on commit 541d322

Please sign in to comment.