Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CS2103T-F11-3] SecureIT #62

Open
wants to merge 491 commits into
base: master
Choose a base branch
from

Conversation

hooncp
Copy link

@hooncp hooncp commented Sep 19, 2019

@hooncp hooncp changed the title [CS2103T-F11-3] Onepass [CS2103T-F11-3] SecureIT Oct 3, 2019
* is reasonably comfortable using CLI apps

*Value proposition*: manage contacts faster than a typical mouse/GUI driven app

*Value proposition*: Remember only one password, and save the hassle of remembering all other confidential documents (account details, credit card details, secret files, secret notes). Have a safe and secure way to store all confidential documents locally, without the use of the online/ third party / cloud-reliant vaults.

[appendix]
== User Stories

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our team has read through your user stories and we notice that some important ones might be missing.

Must have:

  • List passwords
  • Find passwords associated with some accounts
  • List credit card info
  • Add new file to encryption system

Nice to have:

  • Two-factor authentication

@@ -295,56 +301,479 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un
[width="59%",cols="22%,<23%,<25%,<30%",options="header",]
|=======================================================================
|Priority |As a ... |I want to ... |So that I can...

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of your user stories are in the wrong format, e.g. I can be sure ....


Reliability

* The app shall throw appropriate exceptions when any user input is invalid or any user action fails to execute completely.
Copy link

@stevenwjy stevenwjy Oct 4, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it would be better if you could paraphrase this into the system has to be robust to errors, because an NFR should not be too detail.


Data Integrity

* Should be able to check for the data integrity as to verify that no one has modified the files within secureIT in an unauthorised fashion.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sounds too functional, maybe it would be better to rephrase the sentence into this program should consider data integrity of files.

---

[discrete]
=== UC21 - Encrypt a file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could be missing extension, 1a where file to encrypt is missing

* 2a. Details entered are invalid
+
[none]
** 2a1. FileSys shows an error message
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could be an unnecessary UI detail mentioned might want to try: "notify user" instead of "shows error message" which might be a bit specific


---
[discrete]
=== UC11 - Add a password
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be missing a guarantee: "password is added"

@@ -98,9 +93,9 @@ image::LogicClassDiagram.png[]
*API* :

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text in the diagrams seems too small, perhaps the arrows could be shorter so the diagram can be more zoomed in?
image

@@ -109,7 +104,7 @@ Given below is the Sequence Diagram for interactions within the `Logic` componen
.Interactions Inside the Logic Component for the `delete 1` Command
image::DeleteSequenceDiagram.png[]

NOTE: The lifeline for `DeleteCommandParser` 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 `DeleteNoteCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram.

[[Design-Model]]
=== Model component

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text in the diagram seems to be too small as well and the diagram appears a bit cluttered. Perhaps the Model class diagram could be split into sub components for Card, Notes etc.
image


[NOTE]
If the `currentStatePointer` is at index 0, pointing to the initial address book state, then there are no previous address book states to restore. The `undo` command uses `Model#canUndoAddressBook()` to check if this is the case. If so, it will return an error to the user rather than attempting to perform the undo.
image::AnalysePasswordSequenceDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The activation bar for DictionaryAnalyser self-called method getAllMatches() seems to be missing a return arrow. Also, the DictionaryMatch return arrow would require the return arrow head to be pointing within the activation bar instead of at the end of the bar.
image

The undo/redo mechanism is facilitated by `VersionedAddressBook`.
It extends `AddressBook` with an undo/redo history, stored internally as an `addressBookStateList` and `currentStatePointer`.
Additionally, it implements the following operations:
image::AnalyserClassDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A figure caption seems to be missing for a few diagrams.

Copy link

@Nanosync Nanosync left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some changes might help to improve the document.

@@ -98,9 +93,9 @@ image::LogicClassDiagram.png[]
*API* :
link:{repoURL}/src/main/java/seedu/address/logic/Logic.java[`Logic.java`]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Diagram can be broken down into smaller parts

@@ -109,7 +104,7 @@ Given below is the Sequence Diagram for interactions within the `Logic` componen
.Interactions Inside the Logic Component for the `delete 1` Command
image::DeleteSequenceDiagram.png[]

NOTE: The lifeline for `DeleteCommandParser` 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 `DeleteNoteCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram.

[[Design-Model]]
=== Model component

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The diagram shows a good overview of all the components, however it is a bit too small. Maybe it could be broken into smaller components.

@@ -14,7 +14,7 @@ ifdef::env-github[]
endif::[]
:repoURL: https://github.com/se-edu/addressbook-level3/tree/master

By: `Team SE-EDU`      Since: `Jun 2016`      Licence: `MIT`
By: `SecureIT`      Since: `Jun 2016`      Licence: `MIT`

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The date appears incorrect.

@@ -109,7 +104,7 @@ Given below is the Sequence Diagram for interactions within the `Logic` componen
.Interactions Inside the Logic Component for the `delete 1` Command
image::DeleteSequenceDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The diagram shows AddressBookParser. Also, since there are multiple directories, the context of delete is not explicitly mentioned in the preface. There is also no description to describe the diagram.

The undo/redo mechanism is facilitated by `VersionedAddressBook`.
It extends `AddressBook` with an undo/redo history, stored internally as an `addressBookStateList` and `currentStatePointer`.
Additionally, it implements the following operations:
image::AnalyserClassDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The diagram can be resized.
It appears too verbose.
Each component could be described individually.
Missing figure caption.

The undo/redo mechanism is facilitated by `VersionedAddressBook`.
It extends `AddressBook` with an undo/redo history, stored internally as an `addressBookStateList` and `currentStatePointer`.
Additionally, it implements the following operations:
image::AnalyserClassDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Match direction seems incorrect, did you mean Match implements BaseMatch and DictionaryMatch extends BaseMatch?

* **Alternative 2:** Individual command knows how to undo/redo by itself.
** Pros: Will use less memory (e.g. for `delete`, just save the person being deleted).
** Cons: We must ensure that the implementation of each individual command are correct.
image::InitPasswordSequenceDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are missing activation bars for Storage, Model, Logic and Ui after they are constructed.

* **Alternative 2:** Individual command knows how to undo/redo by itself.
** Pros: Will use less memory (e.g. for `delete`, just save the person being deleted).
** Cons: We must ensure that the implementation of each individual command are correct.
image::InitPasswordSequenceDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We think it would be helpful to have an activity diagram to summarise the feature.

niqiukun and others added 22 commits October 31, 2019 21:32
Fix file duplication when file is being opened before encryption
…ension

Change the rename file command to retain file extension
…-util

Add explanation of encryption method in the developer guide
eejian97 and others added 30 commits November 11, 2019 22:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants