diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 2c2de2cfc0d..81ed39f047d 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,5 +1,6 @@ --- -layout: page title: About Us +layout: page +title: About Us --- We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg). @@ -32,7 +33,7 @@ You can reach us at the email `e0588244.nus.edu.sg` -[[github](http://github.com/eltongohjh)] +[[github](http://github.com/eltongohjh)] [[portfolio](team/eltongohjh.md)] * Role: Developer @@ -50,7 +51,7 @@ You can reach us at the email `e0588244.nus.edu.sg` ### Jonathan Kwok - + [[github](http://github.com/HalphasX)] [[portfolio](team/halphasx.md)] diff --git a/docs/Configuration.md b/docs/Configuration.md index da8c5133b7e..fe118c75b24 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -1,5 +1,6 @@ --- -layout: page title: Configuration guide +layout: page +title: Configuration guide --- Certain properties of the application can be controlled (e.g user preferences file location, logging level) through the diff --git a/docs/DevOps.md b/docs/DevOps.md index 61d9c7dfceb..03d7812d0da 100644 --- a/docs/DevOps.md +++ b/docs/DevOps.md @@ -1,5 +1,6 @@ --- -layout: page title: DevOps guide +layout: page +title: DevOps guide --- * Table of Contents {:toc} diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 385a3886c30..9bf333600f8 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1,5 +1,6 @@ --- -layout: page title: Developer Guide +layout: page +title: Developer Guide --- * Table of Contents {:toc} @@ -8,8 +9,9 @@ layout: page title: Developer Guide ## **Acknowledgements** -* {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the - original source as well} +This project is a further iteration of the [_AddressBook-Level 3 ( +AB-3)_](https://nus-cs2103-ay2122s1.github.io/tp/DeveloperGuide.html) project. All features we have are in addition to +those already present in AB-3. Removed features are listed as well. -------------------------------------------------------------------------------------------------------------------- @@ -19,171 +21,77 @@ Refer to the guide [_Setting up and getting started_](SettingUp.md). -------------------------------------------------------------------------------------------------------------------- -## **Design** +## Glossary + +* **Autocomplete**: A functionality to complete a `Tag` or a `Command` without users typing the complete strings +* **Command structure**: The order in which parameters and command words must be written in order for the command to be + correctly parsed +* **Dummy data**: Sample data used in testing or example data present on first launch of application +* **Group**: A container containing `Person` objects with shared traits that is created by the user +* **Key power features**: Essential features that will be used often when running the software application +* **Mainstream OS**: Windows, Linux, Unix, MacOS +* **Metadata**: Personal data about a `Person` object +* **Note**: A general description of each `Person` to record their activities, with last edit timestamp attached +* **Pin**: Fixing a `Person` to the top of the current list of `Person` objects or a `Group` +* **Subgroup**: A child of a `Group` used to store multiple persons based on a more specific category than `Group`. A ** + Subgroup** can be created by specifying the parent group of the **Subgroup**. A person in a **Subgroup** is + automatically in the parent `Group` as well +* **Tag**: A string descriptor attached to `Group` objects or `Person` objects +* **Ungrouped**: Used to describe a `Person` object with no grouping -
+-------------------------------------------------------------------------------------------------------------------- -:bulb: **Tip:** The `.puml` files used to create diagrams in this document can be found in -the [diagrams](https://github.com/se-edu/addressbook-level3/tree/master/docs/diagrams/) folder. Refer to the [_PlantUML -Tutorial_ at se-edu/guides](https://se-education.org/guides/tutorials/plantUml.html) to learn how to create and edit -diagrams. -
+## **Design** ### Architecture - - -The ***Architecture Diagram*** given above explains the high-level design of the App. - -Given below is a quick overview of main components and how they interact with each other. - -**Main components of the architecture** - -**`Main`** has two classes -called [`Main`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/Main.java) -and [`MainApp`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/MainApp.java). It -is responsible for, - -* At app launch: Initializes the components in the correct sequence, and connects them up with each other. -* At shut down: Shuts down the components and invokes cleanup methods where necessary. - -[**`Commons`**](#common-classes) represents a collection of classes used by multiple other components. - -The rest of the App consists of four components. - -* [**`UI`**](#ui-component): The UI of the App. -* [**`Logic`**](#logic-component): The command executor. -* [**`Model`**](#model-component): Holds the data of the App in memory. -* [**`Storage`**](#storage-component): Reads data from, and writes data to, the hard disk. - -**How the architecture components interact with each other** - -The *Sequence Diagram* below shows how the components interact with each other for the scenario where the user issues -the command `delete 1`. - - - -Each of the four main components (also shown in the diagram above), +The **Architecture** of our iteration is built upon AB-3. Please refer to the AB-3 **Architecture** +section for the general Architectural design of the app. Only changes will be listed here. -* defines its *API* in an `interface` with the same name as the Component. -* implements its functionality using a concrete `{Component Name}Manager` class (which follows the corresponding - API `interface` mentioned in the previous point. +### Model Changes -For example, the `Logic` component defines its API in the `Logic.java` interface and implements its functionality using -the `LogicManager.java` class which follows the `Logic` interface. Other components interact with a given component -through its interface rather than the concrete class (reason: to prevent outside component's being coupled to the -implementation of a component), as illustrated in the (partial) class diagram below. - - - -The sections below give more details of each component. - -### UI 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) - -![Structure of the UI Component](images/UiClassDiagram.png) - -The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel` -, `StatusBarFooter` 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) - -The `UI` component, - -* executes user commands using the `Logic` component. -* listens for changes to `Model` data so that the UI can be updated with the modified data. -* keeps a reference to the `Logic` component, because the `UI` relies on the `Logic` to execute commands. -* depends on some classes in the `Model` component, as it displays `Person` object residing in the `Model`. - -### Logic component - -** -API** : [`Logic.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/logic/Logic.java) - -Here's a (partial) class diagram of the `Logic` component: - - - -How the `Logic` component works: - -1. When `Logic` is called upon to execute a command, it uses the `AddressBookParser` class to parse the user command. -1. This results in a `Command` object (more precisely, an object of one of its subclasses e.g., `AddCommand`) which is - executed by the `LogicManager`. -1. The command can communicate with the `Model` when it is executed (e.g. to add a person). -1. The result of the command execution is encapsulated as a `CommandResult` object which is returned back from `Logic`. - -The Sequence Diagram below illustrates the interactions within the `Logic` component for the `execute("delete 1")` API -call. - -![Interactions Inside the Logic Component for the `delete 1` Command](images/DeleteSequenceDiagram.png) - -
:information_source: **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. -
- -Here are the other classes in `Logic` (omitted from the class diagram above) that are used for parsing a user command: - - - -How the parsing works: - -* When called upon to parse a user command, the `AddressBookParser` class creates an `XYZCommandParser` (`XYZ` is a - placeholder for the specific command name e.g., `AddCommandParser`) which uses the other classes shown above to parse - the user command and create a `XYZCommand` object (e.g., `AddCommand`) which the `AddressBookParser` returns back as - a `Command` object. -* All `XYZCommandParser` classes (e.g., `AddCommandParser`, `DeleteCommandParser`, ...) inherit from the `Parser` - interface so that they can be treated similarly where possible e.g, during testing. - -### Model component +*(placeholder API for now, will update to our own link later when implemented.)* ** API** : [`Model.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/model/Model.java) - - - -The `Model` component, +![ModelClassDiagram](images/ModelClassDiagram.png) -* stores the address book data i.e., all `Person` objects (which are contained in a `UniquePersonList` object). -* stores the currently 'selected' `Person` objects (e.g., results of a search query) as a separate _filtered_ list which - is exposed to outsiders as an unmodifiable `ObservableList` that can be 'observed' e.g. the UI can be bound to - this list so that the UI automatically updates when the data in the list change. -* stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as - a `ReadOnlyUserPref` objects. -* does not depend on any of the other three components (as the `Model` represents data entities of the domain, they - should make sense on their own without depending on other components) +* `Person` does not contain the `Address` field anymore. +* `Person` contains a new `Note` field. +* This UML diagram is the current class structure implemented. -
:information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects.
+Here is the better class structure to be implemented: +![ModelClassDiagram2](images/BetterModelClassDiagram.png) - - -
+* `Trie` allows tags to be autocompleted as commands are entered. +* Storing `String` objects in a `Trie` in AddressBook allows all tags to only get created once instead of once per + object. +* Storing tags as `String` objects in a trie is simpler than a dedicated `Tag` class. ### Storage component +*(placeholder API for now, will update to our own link later when implemented.)* + ** API** : [`Storage.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/storage/Storage.java) - +![StorageClassDiagram](images/StorageClassDiagram.png) The `Storage` component, -* can save both address book data and user preference data in json format, and read them back into corresponding - objects. -* inherits from both `AddressBookStorage` and `UserPrefStorage`, which means it can be treated as either one (if only - the functionality of only one is needed). -* depends on some classes in the `Model` component (because the `Storage` component's job is to save/retrieve objects - that belong to the `Model`) +* now includes a new `Archive` Storage component +* `Archive` allows users to temporarily remove `Person`s from their Address Book ### Common classes -Classes used by multiple components are in the `seedu.addressbook.commons` package. +** +API** : [`Trie.java`](https://github.com/AY2122S1-CS2103T-W08-1/tp/blob/master/src/main/java/seedu/address/commons/core/trie/Trie.java) + +* Allows grouping and autocompletion of `Tag` and `Command` objects. +* Supports addition and deletion of items. +* Supports finding of first item. +* Supports finding of first item that contains specified keyword. -------------------------------------------------------------------------------------------------------------------- @@ -307,74 +215,120 @@ _{Explain here how the data archiving feature will be implemented}_ ### Product scope -**Target user profile**: - +**Target user profile**: mentor professors * has a need to manage a significant number of contacts * prefer desktop apps over other types * can type fast * prefers typing to mouse interactions * is reasonably comfortable using CLI apps +* has groups of contacts that have different needs **Value proposition**: manage contacts faster than a typical mouse/GUI driven app ### User stories -Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` - -| Priority | As a …​ | I want to …​ | So that I can…​ | -| -------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- | -| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the App | -| `* * *` | user | add a new person | | -| `* * *` | user | delete a person | remove entries that I no longer need | -| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list | -| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident | -| `*` | user with many persons in the address book | sort persons by name | locate a person easily | - -*{More to be added}* +Priorities:

+ +* High - must have

+* Medium - nice to have

+* Low - unlikely to have

+* Default - already implemented) + +|As a … |I want to … |So that I can … |Priority |Status |When? | +|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------|------------|-----------|--------------| +|on the go user |add notes without wifi or internet access |use the app anywhere |Default | |Iteration 1.2 | +|new user |have dummy data |see what my entries look like |Default | |Iteration 1.2 | +|new user |remove all dummy entries easily |start doing work quickly |Medium | |Iteration 1.2 | +|general user, new user |see a simple UI which shows essential features immediately and hides away advanced features till you need them|slowly learn the features |High | |Iteration 1.2 | +|general user, mentor professor, module professor |take notes with timestamps |see my notes chronologically |High | |Iteration 1.2 | +|general user, mentor professor, module professor |edit the groups or tags of a student | |High | |Iteration 1.2 | +|mentor professor |group the students based on the mentoring subjects |tag or comment on each group separately |High | |Iteration 1.2 | +|general user, mentor professor, module professor |have easy-to-remember commands for inputting information | |High | |Iteration 1.2 | +|general user |delete groups/subgroups | |High |Not started|Iteration 1.2 | +|experienced user, general user |add tags cumulatively |not retype my old tags |High |Not started|Iteration 1.2 | +|new user |see clear error messages that explains how to enter the correct command |learn the right syntax from my errors |High |Not started|Iteration 1.2b| +|experienced user, general user, mentor professor, module professor |edit previous notes I have taken | |High | |Iteration 1.2b| +|mentor professor, module professor, new user |have an easily accessible help page | |High | |Iteration 1.2b| +|experienced user, general user, mentor professor, module professor, new user, on the go user|search by tag/category |find students based on tag/category |High |Not started|Iteration 1.2b| +|general user, mentor professor, module professor |have notes attached to categories |save notes relevant to a whole group |Medium | |Iteration 1.2b| +|general user |create general notes |take down any thoughts I have on the fly |Medium |Not started|Iteration 1.2b| +|new user |see a confirmation message if I choose to delete something |avoid accidental deletions |Medium | |Iteration 1.2b| +|experienced user, mentor professor, module professor |specify the kinds of data attached to contacts which is viewable from the front page |only see information that I need |Nice To Have| |Iteration 1.3 | +|general user |display all of the user information in an easy to reference format |read large amounts of information at once easily |Medium | |Iteration 1.3 | +|mentor professor, module professor |initialise the contacts for many students at once |add similar students by batch |Medium | |Iteration 1.3 | +|mentor professor |see the last time I contacted a student |know if I need to check up on them |Medium | |Iteration 1.3 | +|new user |get prompted for the arguments. |learn the command structure |Medium | |Iteration 1.3 | +|experienced user |pin users I need to access regularly |see commonly accessed users easily |Low | |Iteration 1.3b| +|experienced user |see personal metadata such as number of high-priority students & number of contacts |determine my own usage |Low | |Iteration 1.3b| +|new user |see a short tutorial |get familiar with key features |Low |Not started|Iteration 1.3b| +|general user |see a list of recently looked up people |quickly add on thoughts on the people I've just seen |Medium | |Iteration 1.3b| +|mentor professor, module professor |hide groups |ignore groups no longer relevant to me |Low | |Iteration 1.3b| +|general user, mentor professor, module professor, on the go user |export the data to PDF & CSV / Excel |reference the information in another format |Low | |Iteration 1.3b| +|experienced user |sort by complete inclusion of terms rather than matching any term |narrow down my search results easily |Low |Not started|Iteration 1.3b| +|general user |create general reminders |remind myself of tasks I need to do for my mentees/students|Low |Not started|Iteration 1.3b| +|experienced user, module professor |set my own command aliases |use my own commands when I am used to them |Low | |Delay | +|experienced user, mentor professor, module professor |use shorter commands |save time |Medium | |Delay | ### Use cases (For all use cases below, the **System** is the `AddressBook` and the **Actor** is the `user`, unless specified otherwise) -**Use case: Delete a person** +**Use case: Add a note** **MSS** -1. User requests to list persons +1. User requests to add a note to the person 2. AddressBook shows a list of persons -3. User requests to delete a specific person in the list -4. AddressBook deletes the person +3. User requests to add a note to a specific person in the list +4. AddressBook opens up a pop up dialogue for the user to type the note for the person +5. User requests to save the note to the person +6. AddressBook stores the book to the person +7. AddressBook saves the note to storage Use case ends. **Extensions** -* 2a. The list is empty. - - Use case ends. +* 2a. The list is empty. Use case ends. * 3a. The given index is invalid. + * 3a1. AddressBook shows an error message. Use case resumes at step 2. - * 3a1. AddressBook shows an error message. +**Use case: User types a command** - Use case resumes at step 2. +**MSS** -*{More to be added}* +1. User starts typing a command in AddressBook +2. AddressBook shows possible commands starting with what user has typed +3. User presses tab to select the right command +4. User presses enter to execute the selected command +5. AddressBook runs command (UC1) + + Use case ends. + +**Extensions** + +* 2a. The typed string is not in any command. + * 2a1. AddressBook displays no commands. Use case resumes at step 1. ### Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. 2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. -3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be +3. A user with above average typing speed for regular English text (i.e., not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. - -*{More to be added}* - -### Glossary - -* **Mainstream OS**: Windows, Linux, Unix, OS-X -* **Private contact detail**: A contact detail that is not meant to be shared with others +4. Installing a new update shall not in any way, modify or erase existing data and value from the previous version, and + the new update should be compatible with the data produced earlier within the system. +5. Should be able to store notes in English language, and provisions shall be made to support all languages. +6. The system should be able to handle notes with at most 1000 lines without any noticeable decrease in performance, so + that users can keep extensive notes on their mentees. +7. The user should not lose any data if the system exits prematurely. +8. The system should be able to reply to the prompt or command from the user within 3 seconds. +9. The system should be intuitive to use for a mentor professor. +10. Should ensure personal data privacy and security of data access. +11. Software testing will require the use of automated testing. The test will be deleted after successful implementation + of the software system. -------------------------------------------------------------------------------------------------------------------- diff --git a/docs/Documentation.md b/docs/Documentation.md index 1c2dfdbea76..f44acbd4d56 100644 --- a/docs/Documentation.md +++ b/docs/Documentation.md @@ -1,5 +1,6 @@ --- -layout: page title: Documentation guide +layout: page +title: Documentation guide --- **Setting up and maintaining the project website:** diff --git a/docs/Logging.md b/docs/Logging.md index 638eecdeaf8..26cbbb7d981 100644 --- a/docs/Logging.md +++ b/docs/Logging.md @@ -1,5 +1,6 @@ --- -layout: page title: Logging guide +layout: page +title: Logging guide --- * We are using `java.util.logging` package for logging. diff --git a/docs/SettingUp.md b/docs/SettingUp.md index 62373bf6950..0dfce54a21d 100644 --- a/docs/SettingUp.md +++ b/docs/SettingUp.md @@ -1,5 +1,6 @@ --- -layout: page title: Setting up and getting started +layout: page +title: Setting up and getting started --- * Table of Contents {:toc} @@ -54,11 +55,9 @@ If you plan to use Intellij IDEA (highly recommended): 1. **Learn the design** When you are ready to start coding, we recommend that you get some sense of the overall design by reading - about [AddressBook’s architecture](DeveloperGuide.md#architecture). + about [Notor’s architecture](DeveloperGuide.md#architecture). 1. **Do the tutorials** These tutorials will help you get acquainted with the codebase. * [Tracing code](tutorials/TracingCode.md) - * [Adding a new command](tutorials/AddRemark.md) - * [Removing fields](tutorials/RemovingFields.md) diff --git a/docs/Testing.md b/docs/Testing.md index 011acfeda35..63ad1cc2c57 100644 --- a/docs/Testing.md +++ b/docs/Testing.md @@ -1,5 +1,6 @@ --- -layout: page title: Testing guide +layout: page +title: Testing guide --- * Table of Contents {:toc} diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 0e11757a718..08c91f87539 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -1,10 +1,9 @@ --- -layout: page title: User Guide +layout: page +title: User Guide --- -AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** ( -CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact -management tasks done faster than traditional GUI apps. +Notor is a desktop app for mentors to keep tabs on their mentees, **optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Notor allows you to take notes quickly and efficiently, and keeping them in an easy to reference format, which is vital if you are taking notes during meetings with mentees. * Table of Contents {:toc} @@ -16,7 +15,7 @@ management tasks done faster than traditional GUI apps. 2. Download the latest `notor.jar`. -3. Copy the file to the folder you want to use as the _home folder_ for your AddressBook. +3. Copy the file to the folder you want to use as the _home folder_ for your Notor. 4. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
@@ -79,7 +78,7 @@ Format: `help` #### Clearing all entries : `clear` -Clears all entries from the address book. +Clears all entries from Notor. Format: `clear` @@ -374,7 +373,7 @@ Notor data are saved as a JSON file `[JAR file location]/data/Notor.json`. Advan directly by editing that data file.

:exclamation: **Caution:** -If your changes to the data file makes its format invalid, AddressBook will discard all data and start with an empty data file at the next run. +If your changes to the data file makes its format invalid, Notor will discard all data and start with an empty data file at the next run.
### Archiving data files `[coming in v2.0]` @@ -387,7 +386,7 @@ _Details coming soon ..._ **Q**: How do I transfer my data to another Computer?
**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains -the data of your previous AddressBook home folder. +the data of your previous Notor home folder. -------------------------------------------------------------------------------------------------------------------- @@ -412,8 +411,7 @@ Action | Format | Advanced Format **Delete** | `group g:GROUP_NAME /delete g:GROUP_NAME` | `g g:GROUP_NAME /d g:GROUP_NAME` **Note** | `group g:GROUP_NAME /note` | `g g:GROUP_NAME /n g:GROUP_NAME` **Create subgroup** | `group GROUP_NAME /create sg:SUB_GROUP_NAME` | `g g:GROUP_NAME /c sg:SUB_GROUP_NAME` -**Edit -subgroup** | `group GROUP_NAME:SUB_GROUP_NAME /edit sg:SUB_GROUP_NAME` | `g g:GROUP_NAME:SUB_GROUP_NAME /e sg:SUB_GROUP_NAME` +**Edit subgroup** | `group GROUP_NAME:SUB_GROUP_NAME /edit sg:SUB_GROUP_NAME` | `g g:GROUP_NAME:SUB_GROUP_NAME /e sg:SUB_GROUP_NAME` **Delete subgroup** | `group GROUP_NAME /delete sg:SUB_GROUP_NAME` | `g GROUP_NAME /d sg:SUB_GROUP_NAME` **Note subgroup** | `group GROUP_NAME /note sg:SUB_GROUP_NAME` | `g GROUP_NAME /n sg:SUB_GROUP_NAME` diff --git a/docs/_config.yml b/docs/_config.yml index 6bd245d8f4e..08b56c3bedb 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,4 +1,4 @@ -title: "AB-3" +title: "Notor" theme: minima header_pages: @@ -8,7 +8,7 @@ header_pages: markdown: kramdown -repository: "se-edu/addressbook-level3" +repository: "AY2122S1-CS2103T-W08-1/tp" github_icon: "images/github-icon.png" plugins: diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss index 89c20b7c939..b88a6789278 100644 --- a/docs/assets/css/style.scss +++ b/docs/assets/css/style.scss @@ -1,16 +1,10 @@ --- - -# -Only the main Sass file needs front matter - -( -the dashes are enough - -) +# Only the main Sass file needs front matter (the dashes are enough) --- -@import "minima/skins/{{ site.minima.skin | default: 'classic' }}", -"minima/initialize"; +@import + "minima/skins/{{ site.minima.skin | default: 'classic' }}", + "minima/initialize"; .icon { height: 21px; diff --git a/docs/diagrams/BetterModelClassDiagram.puml b/docs/diagrams/BetterModelClassDiagram.puml index 5731f9cbaa1..f9b1fee96c7 100644 --- a/docs/diagrams/BetterModelClassDiagram.puml +++ b/docs/diagrams/BetterModelClassDiagram.puml @@ -4,18 +4,21 @@ skinparam arrowThickness 1.1 skinparam arrowColor MODEL_COLOR skinparam classBackgroundColor MODEL_COLOR +'class Trie +'class "Trie" as Trie_Tag_List + AddressBook *-right-> "1" UniquePersonList -AddressBook *-right-> "1" UniqueTagList -UniqueTagList -[hidden]down- UniquePersonList -UniqueTagList -[hidden]down- UniquePersonList +AddressBook *-right-> "1" Trie +Trie -[hidden]down- UniquePersonList +Trie -[hidden]down- UniquePersonList -UniqueTagList *-right-> "*" Tag +Trie *-right-> "*" String UniquePersonList -right-> Person -Person -up-> "*" Tag +Person -up-> "*" String Person *--> Name Person *--> Phone Person *--> Email -Person *--> Address +Person *--> Note @enduml diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index 1122257bd9a..0b32b6b26dc 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -18,11 +18,11 @@ Class ReadOnlyUserPrefs Class UniquePersonList Class Person -Class Address Class Email Class Name Class Phone Class Tag +Class Note } @@ -43,12 +43,10 @@ UniquePersonList --> "~* all" Person Person *--> Name Person *--> Phone Person *--> Email -Person *--> Address +Person *--> Note Person *--> "*" Tag Name -[hidden]right-> Phone -Phone -[hidden]right-> Address -Address -[hidden]right-> Email ModelManager -->"~* filtered" Person @enduml diff --git a/docs/diagrams/StorageClassDiagram.puml b/docs/diagrams/StorageClassDiagram.puml index 85ac3ea2dee..de2666dec50 100644 --- a/docs/diagrams/StorageClassDiagram.puml +++ b/docs/diagrams/StorageClassDiagram.puml @@ -18,26 +18,37 @@ package "AddressBook Storage" #F4F6F6{ Interface AddressBookStorage <> Class JsonAddressBookStorage Class JsonSerializableAddressBook -Class JsonAdaptedPerson -Class JsonAdaptedTag } +package "Archive Storage" #F4F6F6{ +Interface ArchiveStorage <> +Class JsonArchiveStorage +Class JsonSerializableArchive +} + +Class JsonAdaptedPerson +Class JsonAdaptedTag } Class HiddenOutside #FFFFFF HiddenOutside ..> Storage StorageManager .up.|> Storage -StorageManager -up-> "1" UserPrefsStorage StorageManager -up-> "1" AddressBookStorage +StorageManager -up-> "1" ArchiveStorage +StorageManager -up-> "1" UserPrefsStorage -Storage -left-|> UserPrefsStorage -Storage -right-|> AddressBookStorage +Storage -left-|> AddressBookStorage +Storage -left-|> ArchiveStorage +Storage -right-|> UserPrefsStorage -JsonUserPrefsStorage .up.|> UserPrefsStorage JsonAddressBookStorage .up.|> AddressBookStorage +JsonArchiveStorage .up.|> ArchiveStorage +JsonUserPrefsStorage .up.|> UserPrefsStorage JsonAddressBookStorage ..> JsonSerializableAddressBook +JsonArchiveStorage ..> JsonSerializableArchive JsonSerializableAddressBook --> "*" JsonAdaptedPerson +JsonSerializableArchive --> "*" JsonAdaptedPerson JsonAdaptedPerson --> "*" JsonAdaptedTag @enduml diff --git a/docs/images/BetterModelClassDiagram.png b/docs/images/BetterModelClassDiagram.png index 1ec62caa2a5..930ea5fd986 100644 Binary files a/docs/images/BetterModelClassDiagram.png and b/docs/images/BetterModelClassDiagram.png differ diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png index 39d7aec4b33..f6c65987e57 100644 Binary files a/docs/images/ModelClassDiagram.png and b/docs/images/ModelClassDiagram.png differ diff --git a/docs/images/StorageClassDiagram.png b/docs/images/StorageClassDiagram.png index 82c66f8f16e..8aa3288920e 100644 Binary files a/docs/images/StorageClassDiagram.png and b/docs/images/StorageClassDiagram.png differ diff --git a/docs/images/add-remark/$Remark.png b/docs/images/add-remark/$Remark.png deleted file mode 100644 index 959c634406d..00000000000 Binary files a/docs/images/add-remark/$Remark.png and /dev/null differ diff --git a/docs/images/add-remark/CommandInterface.png b/docs/images/add-remark/CommandInterface.png deleted file mode 100644 index b52e7811c52..00000000000 Binary files a/docs/images/add-remark/CommandInterface.png and /dev/null differ diff --git a/docs/images/add-remark/ContextMenu.png b/docs/images/add-remark/ContextMenu.png deleted file mode 100644 index 77536724e45..00000000000 Binary files a/docs/images/add-remark/ContextMenu.png and /dev/null differ diff --git a/docs/images/add-remark/CreateTest.png b/docs/images/add-remark/CreateTest.png deleted file mode 100644 index 6b7d6dcafec..00000000000 Binary files a/docs/images/add-remark/CreateTest.png and /dev/null differ diff --git a/docs/images/add-remark/GradleRun.png b/docs/images/add-remark/GradleRun.png deleted file mode 100644 index 281cc45f098..00000000000 Binary files a/docs/images/add-remark/GradleRun.png and /dev/null differ diff --git a/docs/images/add-remark/ParserInterface.png b/docs/images/add-remark/ParserInterface.png deleted file mode 100644 index 60c7892a534..00000000000 Binary files a/docs/images/add-remark/ParserInterface.png and /dev/null differ diff --git a/docs/images/add-remark/RemarkBound.png b/docs/images/add-remark/RemarkBound.png deleted file mode 100644 index d335382b286..00000000000 Binary files a/docs/images/add-remark/RemarkBound.png and /dev/null differ diff --git a/docs/images/add-remark/RemarkComplete.png b/docs/images/add-remark/RemarkComplete.png deleted file mode 100644 index 124ced2c752..00000000000 Binary files a/docs/images/add-remark/RemarkComplete.png and /dev/null differ diff --git a/docs/images/add-remark/RemarkFailureOutput.png b/docs/images/add-remark/RemarkFailureOutput.png deleted file mode 100644 index 351257ea332..00000000000 Binary files a/docs/images/add-remark/RemarkFailureOutput.png and /dev/null differ diff --git a/docs/images/add-remark/RemarkHello.png b/docs/images/add-remark/RemarkHello.png deleted file mode 100644 index aad48d02f8f..00000000000 Binary files a/docs/images/add-remark/RemarkHello.png and /dev/null differ diff --git a/docs/images/add-remark/RemarkNotImplemented.png b/docs/images/add-remark/RemarkNotImplemented.png deleted file mode 100644 index 1d187f39403..00000000000 Binary files a/docs/images/add-remark/RemarkNotImplemented.png and /dev/null differ diff --git a/docs/images/halphasx.jpg b/docs/images/halphasx.png similarity index 100% rename from docs/images/halphasx.jpg rename to docs/images/halphasx.png diff --git a/docs/images/remove/$address.png b/docs/images/remove/$address.png deleted file mode 100644 index cf0434e0e83..00000000000 Binary files a/docs/images/remove/$address.png and /dev/null differ diff --git a/docs/images/remove/SafeDeleteConflicts.png b/docs/images/remove/SafeDeleteConflicts.png deleted file mode 100644 index 8f0abeffd4d..00000000000 Binary files a/docs/images/remove/SafeDeleteConflicts.png and /dev/null differ diff --git a/docs/images/remove/UnsafeDelete.png b/docs/images/remove/UnsafeDelete.png deleted file mode 100644 index 9e376d02a0c..00000000000 Binary files a/docs/images/remove/UnsafeDelete.png and /dev/null differ diff --git a/docs/images/remove/UnsafeDeleteOnField.png b/docs/images/remove/UnsafeDeleteOnField.png deleted file mode 100644 index 44d5bb0a442..00000000000 Binary files a/docs/images/remove/UnsafeDeleteOnField.png and /dev/null differ diff --git a/docs/index.md b/docs/index.md index c29f262d13e..c40b68fa325 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,18 +1,19 @@ --- -layout: page title: AddressBook Level-3 +layout: page +title: Notor --- -[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) +[![CI Status](https://github.com/AY2122S1-CS2103T-W08-1/tp/actions/workflows/gradle.yml/badge.svg)](https://github.com/AY2122S1-CS2103T-W08-1/tp/actions) [![codecov](https://codecov.io/gh/AY2122S1-CS2103T-W08-1/tp/branch/master/graph/badge.svg?token=2I1HSRYBDN)](https://codecov.io/gh/AY2122S1-CS2103T-W08-1/tp) ![Ui](images/Ui.png) -**AddressBook is a desktop application for managing your contact details.** While it has a GUI, most of the user +**Notor** aims to help **mentors** who wish to keep tabs on their mentees, by providing **a quick way to take notes and mantain records on their mentees**. While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). -* If you are interested in using AddressBook, head over to the [_Quick Start_ section of the **User +* If you are interested in using Notor, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start). -* If you are interested about developing AddressBook, the [**Developer Guide**](DeveloperGuide.html) is a good place to +* If you are interested about developing Notor, the [**Developer Guide**](DeveloperGuide.html) is a good place to start. **Acknowledgements** diff --git a/docs/team/elroygohjy.md b/docs/team/elroygohjy.md index 1c7f9b05f33..fd79d37186a 100644 --- a/docs/team/elroygohjy.md +++ b/docs/team/elroygohjy.md @@ -1,5 +1,6 @@ --- -layout: page title: Elroy's Project Portfolio Page +layout: page +title: Elroy's Project Portfolio Page --- ### Project: Notor diff --git a/docs/team/eltongohjh.md b/docs/team/eltongohjh.md index f83793fa8e7..fd45357ae59 100644 --- a/docs/team/eltongohjh.md +++ b/docs/team/eltongohjh.md @@ -1,5 +1,6 @@ --- -layout: page title: Elton's Project Portfolio Page +layout: page +title: Elton's Project Portfolio Page --- ### Project: Notor diff --git a/docs/team/halphasx.md b/docs/team/halphasx.md index 5bf4981dc26..b9e8fe19c71 100644 --- a/docs/team/halphasx.md +++ b/docs/team/halphasx.md @@ -1,5 +1,6 @@ --- -layout: page title: Jonathan's Project Portfolio Page +layout: page +title: Jonathan's Project Portfolio Page --- ### Project: Notor diff --git a/docs/team/johndoe.md b/docs/team/johndoe.md index 7fb922e60e3..918d8f91fa3 100644 --- a/docs/team/johndoe.md +++ b/docs/team/johndoe.md @@ -1,5 +1,6 @@ --- -layout: page title: John Doe's Project Portfolio Page +layout: page +title: John Doe's Project Portfolio Page --- ### Project: AddressBook Level 3 diff --git a/docs/team/kaixin-hc.md b/docs/team/kaixin-hc.md index 0a1e41ab350..8ee929f4245 100644 --- a/docs/team/kaixin-hc.md +++ b/docs/team/kaixin-hc.md @@ -1,5 +1,6 @@ --- -layout: page title: Hannah's Project Portfolio Page +layout: page +title: Hannah's Project Portfolio Page --- ### Project: Notor @@ -16,15 +17,13 @@ Given below are my contributions to the project. * **Project management**: - * **Enhancements to existing features**: * **Documentation**: - * Readme + * ReadMe * Setting up AboutUs page + portfolios * **Community**: * **Tools**: - * _{you can add/remove categories in the list above}_ diff --git a/docs/team/yukun99.md b/docs/team/yukun99.md index 62d09170082..9af32c21857 100644 --- a/docs/team/yukun99.md +++ b/docs/team/yukun99.md @@ -1,5 +1,6 @@ --- -layout: page title: Yukun's Project Portfolio Page +layout: page +title: Yukun's Project Portfolio Page --- ### Project: Notor