HugeNoob / pe

0 stars 0 forks source link

[json editing] Invalid json data is destructive #3

Open HugeNoob opened 11 months ago

HugeNoob commented 11 months ago

Description

If a user edits the json data and makes two users have the same name, the data will not be loaded properly into the application.

Steps to reproduce

Change two persons to have the same name in the json.

image.png

Expected behaviour

Error message stating data is not valid. Or some warnings guide.

Actual behaviour

Application loads with no data.

image.png

Elaboration of labels

The main reason why I put high severity is because the application saves data on exit.

Consider this scenario:

  1. I want to make fast edits, hence I edit the json directly.
  2. I genuinely forgot that there is a John already in my list, and accidentally change another person's name to John.
  3. I open the application and notice all my data is gone.
  4. I quit and restart the application in panic.
  5. Step 4 wipes my invalid data completely, making me lose all my progress of wedding tracking.

Functionality bug because it is a legitimate user behaviour that may happen.

nus-pe-script commented 11 months ago

Team's Response

Marked NotInScope as Prof has stated in the forum that "Recovering from improper edits to the data file (or other config files) was not an expectations at v1.4, unless you specifically stated such a feature in the UG." (Link)

Furthermore, we believe that even if this report was valid, it should be of Medium severity as:

  1. We believe this product only inconveniences a small subset of users as not many users would be comfortable enough with technology to want to edit the json directly.
  2. Point (1) is especially true for our target audience (wedding planners).

    Items for the Tester to Verify

    :question: Issue response

Team chose [response.NotInScope]

Reason for disagreement: [replace this with your explanation]


## :question: Issue severity Team chose [`severity.Medium`] Originally [`severity.High`] - [ ] I disagree **Reason for disagreement:** [replace this with your explanation]