nus-cs2103-AY2122S1 / pe-dev-response

0 stars 0 forks source link

Inconvenient for a user to create a group using full name #252

Open nus-pe-bot opened 3 years ago

nus-pe-bot commented 3 years ago

For example, if I want to add Charlotte Oliveriro into the newly created group, I have to enter full name, it is time costly and not convenient enough. Can try follow the findcontacts command format, provide partial name to search for a name in the lists.

Expected: I can create a group with this command creategroup gn/Balin n/Charlotte.

Actual: This command not allowed, and it is qutie inconvenient if I want to add a lot of names with long length.

Suggestions: 1. Can try instead of using full name, using index in the full contact list

  1. If multiple names found, can use multistage to specify the exact contact. Bug1.png

[original: nus-cs2103-AY2122S1/pe-interim#258] [original labels: severity.Low type.FeatureFlaw]

chrus-chong commented 3 years ago

Team's Response

To answer why we chose the command design we chose, let us first lay out a scenario where the command format will prove very useful.

We have two friends named “Charlotte Tan” and “Charlotte Oliveiro”. Say we wish to add only Charlotte Oliveiro to our group; we can do this if we have entered Charlotte Oliveiro in full as opposed to just Charlotte. This is a design choice on our part given that we wish to allow for contacts with the same first name to be added to our app. The alternative suggested by the tester is valid, and would be suitable for this use case too, but it is a matter of choice and adding a person to the group by name is not an inconvenience, certainly not enough to merit being regarded as a bug.

The recommendation to add group members by index is a good one, but one that would not be consistent with our command format structure. The current commands that take in INDEX as a parameter are editcontact, deletecontact, and deleteexpense. In all these cases, we constrain the user such that these commands are successfully executed only when the user is viewing a contact page/list (for edit and delete contact features) or expense page (for delete expense feature).

Using index instead of name for the creategroup command would require a similar constraint (i.e. they would have to be viewing the contacts page), as we do not want our users to be able to add in members to their group based on index willy-nilly without being sure of who exactly they are adding to the group. However, this leads to sacrifices with respect to some of our other goals such as: -

  1. We wish to provide the user more flexibility and allow them to add group members from any screen.
  2. More importantly, not allowing users to add members from any screen means that users are inconvenienced by the fact that they cannot see the names of existing groups and create a group at the same time. This is important, as we impose a constraint on users that the group name must be unique. It is important that the user can make sure he isn't attempting to create a duplicate group whilst trying to create a new group.

By contrast, adding group members by name quells both the above issues, due to the lack of the need for such a constraint, whilst also ensuring that contacts are not added to groups by accident or haphazardly by reliance on memory of their index in the last visible contact list. This last point also means that users are protected from themselves.

For all these reasons, we reject this issue.

Duplicate status (if any):

--