diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d7135ecc0f0..8f1bee55a30 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1,18 +1,10 @@ +--- +layout: page +title: Developer Guide +--- + * Table of Contents -1. [Acknowledgements](#acknowledgements) -2. [Setting Up, Getting Started](#setting-up-getting-started) -3. [Design](#design) - 1. [Architecture](#architecture) - 2. [UI Component](#ui-component) - 3. [Logic Component](#logic-component) - 4. [Model Component](#model-component) - 5. [Storage Component](#storage-component) - 6. [Common Classes](#common-classes) -4. [Implementation](#implementation) - 1. [Proposed - Undo/Redo feature](#proposed-undoredo-feature) - 2. [Proposed - Data archiving](#proposed-data-archiving) -5. [Other Helpful Resources](#other-helpful-resources) -6. [Appendix](#appendix) +{:toc} -------------------------------------------------------------------------------------------------------------------- ## **Acknowledgements** @@ -139,6 +131,8 @@ The `Model` component, * 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) +Please note that a Person contains multiple Roles and an Event can contain multiple persons. The upper '*', lying on the Person-Role arrow, is for the Event-Person association. + ### Role Component **API** : [`Role.java`](https://github.com/AY2425S1-CS2103T-W14-4/tp/blob/master/src/main/java/seedu/eventfulnus/model/person/role/Role.java) @@ -304,36 +298,32 @@ without having to dig through paperwork / NUSync. Priorities: High (must have) - `HIGH`, Medium (nice to have) - `MED`, Low (unlikely to have) - `LOW` -| Priority | As a … | I want to … | So that I can… | -|----------|-----------------|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------| -| `HIGH` | first-time user | view a brief tutorial on using CLI commands | understand the basic functions and navigation of the app | -| `HIGH` | first-time user | see a list of available commands and their descriptions | familiarize myself with the list of commands and app functions | -| `HIGH` | first-time user | add a new participant | start building my participant list from scratch | -| `HIGH` | first-time user | view a summary of all participants grouped by their sport categories | get an overview of participant distribution | -| `HIGH` | first-time user | search for participants by name, phone number or email | locate details of participants without having to go through the entire list | -| `HIGH` | first-time user | view a list of participants for a specific event | understand how participants are scheduled and grouped | -| `HIGH` | first-time user | save the current participant list and details to a file | back up my participant records and access them later | -| `HIGH` | familiar user | update a participant's details | keep participant records current and accurate | -| `HIGH` | familiar user | assign participants to specific event | track their involvement and ensure proper scheduling | -| `HIGH` | familiar user | group participants by their faculty membership | manage and organize participants according to faculty membership | -| `HIGH` | familiar user | delete a participant | remove outdated or incorrect participant records | -| `MED` | first-time user | view detailed information about a participant on a separate tab from main search | ensure I have accurate and complete information on a participant | -| `MED` | first-time user | view a sample event schedule with participants' relevant details shown | understand how to manage and track participants' involvement | -| `MED` | first-time user | access help documentation directly from the CLI | get assistance with using various features of the application | -| `MED` | familiar user | search for participants based on multiple criteria | find specific groups of participants efficiently | -| `MED` | familiar user | view a summary of a participant’s involvement in past event | understand their history and performance in previous events | -| `MED` | familiar user | import participant details from a CSV file | quickly add multiple participants | -| `MED` | expert user | create custom participant fields specific to different types of events | tailor the application to various event requirements | -| `MED` | expert user | customize CLI command shortcuts and aliases for frequently used actions | enhance productivity and streamline workflows | -| `MED` | expert user | use advanced search filters to find participants | find participants based on specific information with precision | -| `MED` | familiar user | export participant details to a CSV file | share participant records with others | -| `LOW` | familiar user | view a report of participants based on their sport category or faculty membership | understand how participants are distributed | -| `LOW` | familiar user | view edit history of participant details | track updates and maintain data integrity | -| `LOW` | expert user | bulk import participant details from multiple CSV files | streamline data entry for large-scale events | -| `LOW` | expert user | set up automated notifications for participants based on their roles | keep them informed without manual follow-up | -| `LOW` | expert user | bulk update participant details or event assignments | efficiently manage changes for large numbers of participants | -| `LOW` | expert user | generate complex, customized reports combining multiple data points | gain detailed insights into event management | -| `LOW` | expert user | schedule regular backups of participant database | ensure data is protected and recoverable in case of issues | +| Priority | As a … | I want to … | So that I can… | +|----------|------------------|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------| +| `HIGH` | first-time user | view a user guide to understand CLI commands | understand the basic functions and navigation of the app | +| `HIGH` | first-time user | add a new participant | start building my participant list from scratch | +| `HIGH` | first-time user | view a summary of all participants grouped by their sport categories | get an overview of participant distribution | +| `HIGH` | first-time user | search for participants by name, phone number or email | locate details of participants without having to go through the entire list | +| `HIGH` | familiar user | update a participant's details | keep participant records current and accurate | +| `HIGH` | familiar user | assign participants to specific events | track their involvement and ensure proper scheduling | +| `HIGH` | familiar user | group participants by their faculty membership | manage and organize participants according to faculty membership | +| `HIGH` | familiar user | delete a participant | remove outdated or incorrect participant records | +| `HIGH` | familiar user | update an event's details | keep events records current and accurate | +| `HIGH` | familiar user | delete an event | remove outdated or incorrect event records | +| `HIGH` | familiar user | search for events via keywords | locate details of events without having to go through the entire list | +| `MED` | first-time user | view detailed information about a participant on a separate tab from main search | ensure I have accurate and complete information on a participant | +| `MED` | first-time user | view a sample event schedule with participants' relevant details shown | understand how to manage and track participants' involvement | +| `MED` | familiar user | search for participants based on multiple criteria | find specific groups of participants efficiently | +| `MED` | familiar user | view a summary of a participant’s involvement in past events | understand their history and performance in previous events | +| `MED` | expert user | create custom participant fields specific to different types of events | tailor the application to various event requirements | +| `MED` | expert user | customize CLI command shortcuts and aliases for frequently used actions | enhance productivity and streamline workflows | +| `MED` | expert user | use advanced search filters to find participants | find participants based on specific information with precision | +| `LOW` | familiar user | view a report of participants based on their sport category or faculty membership | understand how participants are distributed | +| `LOW` | familiar user | view edit history of participant details | track updates and maintain data integrity | +| `LOW` | expert user | set up automated notifications for participants based on their roles | keep them informed without manual follow-up | +| `LOW` | expert user | bulk update participant details or event assignments | efficiently manage changes for large numbers of participants | +| `LOW` | expert user | generate complex, customized reports combining multiple data points | gain detailed insights into event management | +| `LOW` | expert user | schedule regular backups of participant database | ensure data is protected and recoverable in case of issues | ### Use cases @@ -469,8 +459,27 @@ Use case resumes from step 2.