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

Merge Branch v1.4 into Master #244

Merged
merged 19 commits into from
Nov 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

* This is ProjectPRO for university students with a lot of projects.<br>
Example usages:
* Group contact lists
* Group contact lists
* Track group mates availability
* The project simulates an ongoing school software project for a desktop application (called _ProjectPRO_) used for managing group mates
* It is **written in OOP fashion**. It provides a **reasonably well-written** code base **bigger** (around 6 KLoC) than what students usually write in beginner-level SE modules, without being overwhelmingly big.
* It comes with a **reasonable level of user and developer documentation**.

* This project is a **part of the se-education.org** initiative. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info.
412 changes: 183 additions & 229 deletions docs/DeveloperGuide.md

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ Welcome back to ProjectPRO. Simply head over to our Features section to gain ins
## Quick Start


1. Ensure you have Java 11 or above installed on your computer.
1. Ensure you have Java 11 or above installed on your computer.
- Simply go to your terminal and type `java -version`. ![here](images/UG/QuickStart1.png)

2. Download the latest ProjectPRO.jar from [here](https://github.com/AY2324S1-CS2103T-T10-3/tp/releases).
Expand All @@ -103,9 +103,9 @@ Welcome back to ProjectPRO. Simply head over to our Features section to gain ins
- For Mac Users:
- ![MACGUIDE](images/UG/QuickStart3.png)
- For Windows Users:

4. Launch ProjectPRO.
- For Mac users:
- For Mac users:
1. Open a command terminal
2. type `cd Desktop` , followed by `cd ProjectPro`
3. type `java -jar ProjectPRO.jar` to run the application.
Expand Down Expand Up @@ -478,7 +478,7 @@ You can remove available time slots of your contacts.
**Example(s):**
- `deletetime n/Alex Yeoh t/mon 1400 - mon 1600`
This removes a time slot when Alex Yeoh is available from your contact list.

Insert Image
Deleted Time From: Alex Yeoh

Expand All @@ -504,7 +504,7 @@ You list all available time slots of your contacts.
**Example(s):**
- `listtime n/Alex Yeoh`
This lists all time slots when Alex Yeoh is available from your contact list.

Insert Image
Listed times of Person: Alex Yeoh
MON 1400 - MON 1600
Expand Down Expand Up @@ -562,7 +562,7 @@ You can remove meeting times from your groups.
**Example(s):**
- `deletetime g/CS2100 t/mon 1400 - mon 1600`
This removes a time slot when Alex Yeoh is available from your contact list.

Insert Image
Deleted Time From: Alex Yeoh

Expand All @@ -588,7 +588,7 @@ You list meeting time for your groups.
**Example(s):**
- `listtime g/CS2100`
This lists all meeting times of the CS2100 group.

Insert Image
Listed Time From: CS2100

Expand All @@ -614,7 +614,7 @@ You can find a meeting time slot for your group where everyone is available.
**Example(s):**
- `findfreetime g/CS2100 d/60`
This finds a common meeting time of 60 minutes for your CS2100 group.

Insert Image


Expand Down Expand Up @@ -680,4 +680,4 @@ You can exit ProjectPRO.


**Potential error(s):**
- Extra inputs detected.
- Extra inputs detected.
2 changes: 1 addition & 1 deletion docs/diagrams/AddCommandSequenceDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,4 @@ deactivate LogicManager



@enduml
@enduml
6 changes: 3 additions & 3 deletions docs/diagrams/ArchitectureSequenceDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ Participant ":Logic" as logic LOGIC_COLOR
Participant ":Model" as model MODEL_COLOR
Participant ":Storage" as storage STORAGE_COLOR

user -[USER_COLOR]> ui : "delete 1"
user -[USER_COLOR]> ui : "delete n/Alex"
activate ui UI_COLOR

ui -[UI_COLOR]> logic : execute("delete 1")
ui -[UI_COLOR]> logic : execute("delete n/Alex")
activate logic LOGIC_COLOR

logic -[LOGIC_COLOR]> model : deletePerson(p)
logic -[LOGIC_COLOR]> model : deletePerson(Alex)
activate model MODEL_COLOR

model -[MODEL_COLOR]-> logic
Expand Down
11 changes: 6 additions & 5 deletions docs/diagrams/BetterModelClassDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,18 @@ skinparam arrowColor MODEL_COLOR
skinparam classBackgroundColor MODEL_COLOR

AddressBook *-right-> "1" UniquePersonList
AddressBook *-right-> "1" UniqueTagList
UniqueTagList -[hidden]down- UniquePersonList
UniqueTagList -[hidden]down- UniquePersonList
AddressBook *-right-> "1" UniqueGroupList
UniqueGroupList -[hidden]down- UniquePersonList
UniqueGroupList -[hidden]down- UniquePersonList

UniqueTagList -right-> "*" Tag
UniqueGroupList -right-> "*" Group
UniquePersonList -right-> Person

Person -up-> "*" Tag
Person -up-> "*" Group

Person *--> Name
Person *--> Phone
Person *--> Email
Person *--> Address
Person *--> FreeTime
@enduml
2 changes: 1 addition & 1 deletion docs/diagrams/ComponentManagers.puml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Class "<<interface>>\nLogic" as Logic
Class LogicManager
}

package Model as ModelPackage {
package ProjectPROModel as ModelPackage {
Class "<<interface>>\nModel" as Model
Class ModelManager
}
Expand Down
70 changes: 0 additions & 70 deletions docs/diagrams/DeleteSequenceDiagram.puml

This file was deleted.

12 changes: 6 additions & 6 deletions docs/diagrams/ModelClassDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ Class UserPrefs

Class UniquePersonList
Class Person
Class Address
Class Email
Class Groups
Class Name
Class Phone
Class Tag
Class FreeTimes

Class I #FFFFFF
}
Expand All @@ -39,16 +39,16 @@ AddressBook *--> "1" UniquePersonList
UniquePersonList --> "~* all" Person
Person *--> Name
Person *--> Phone
Person *--> "*" Groups
Person *--> Email
Person *--> Address
Person *--> "*" Tag
Person *--> "*" FreeTimes

Person -[hidden]up--> I
UniquePersonList -[hidden]right-> I

Name -[hidden]right-> Phone
Phone -[hidden]right-> Address
Address -[hidden]right-> Email
Phone -[hidden]right-> Email
Email -[hidden]right-> Groups

ModelManager --> "~* filtered" Person
@enduml
11 changes: 9 additions & 2 deletions docs/diagrams/StorageClassDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ Class "<<interface>>\nAddressBookStorage" as AddressBookStorage
Class JsonAddressBookStorage
Class JsonSerializableAddressBook
Class JsonAdaptedPerson
Class JsonAdaptedTag
Class JsonAdaptedGroup
Class JsonAdaptedTime
Class GroupRemark
}

}
Expand All @@ -37,7 +39,12 @@ Storage -right-|> AddressBookStorage
JsonUserPrefsStorage .up.|> UserPrefsStorage
JsonAddressBookStorage .up.|> AddressBookStorage
JsonAddressBookStorage ..> JsonSerializableAddressBook
JsonSerializableAddressBook --> "*" JsonAdaptedGroup
JsonSerializableAddressBook --> "*" JsonAdaptedPerson
JsonAdaptedPerson --> "*" JsonAdaptedTag
JsonAdaptedPerson --> "*" JsonAdaptedTime
JsonAdaptedGroup --> "*" JsonAdaptedTime
JsonAdaptedGroup --> "*" GroupRemark
JsonAdaptedGroup --> "*" JsonAdaptedPerson
JsonAdaptedPerson --> "*" JsonAdaptedGroup

@enduml
2 changes: 1 addition & 1 deletion docs/team/kailash201.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Given below are my contributions to the project.

* **New Feature**: Added the ability to allow user add free time interval into their contacts.
* What it does: allows the user to add non-clashing free time interval into their contacts.
* Justification: This feature allows the user to see when their contacts or group mates are free. In addition to that, this feature allows `findfreetime` feature to work.
* Justification: This feature allows the user to see when their contacts or group mates are free. In addition to that, this feature allows `findfreetime` feature to work.
* Highlights: This feature needed to ensure that the time interval added to a contact by the user does not clash with other time interval that contact has. This feature allows multiple time intervals to be added in a single input. Due to that, a lot of challenges were faced in the parsing logic as making it convenient for the user in terms of input will open up room for more invalid errors.

* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2324s1.github.io/tp-dashboard/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code&since=2023-09-22&chartGroupIndex=36&chartIndex=2%23%2F%23%2F)
Expand Down
9 changes: 4 additions & 5 deletions docs/team/nicholastng010601.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ Given below are my contributions to the project.
* Highlights: This enhancement affects existing commands and commands to be added in the future. It required an in-depth analysis of design principles. Since it involved creating a new class of objects, it required careful planning and utilising of OOP principles.

* **New Feature**: Added the ability to delete time.
* What it does: allows the user to delete time which had been added to a contact or group.
* What it does: allows the user to delete time which had been added to a contact or group.
* Justification: This feature improves the product significantly because a user can make mistakes in adding free time to contacts and this function provides a convenient way for users to remove the error.
* Highlights: This enhancement required an in-depth analysis of parser and various conditions whereby the command would be carried out. For example, the time keyed in must exist within the contact. Various designs were also considered, such as allowing multiple time slots to be keyed in at once to improve the user experience. In such a case, we also wanted to allow time that was keyed in correctly to be deleted, even if the command had certain time slots which were wrong. The implementation too was difficult as it required the involvement of our time interval class and comparing the various time slots to come up with a error-free yet efficient implementation.

* **Improved Feature**: Added the ability to save not only contacts, but groups and time intervals.
* What it does: allows the user's application to save groups and time intervals in the form of JSON, so that when the user reboots their application, their data will be saved and loaded up properly.
* Justification: This feature is a core feature as without it, users would have to retype all their groups and times everytime they on their application.
* Highlights: This enhancement required the in-depth analysis of the existing process of saving and loading of the JSON file. It required meticulousness and attention to detail as it involved complex logical processes such as adding a person to the group he is in, while also adding the group to the person's own internal list, whereby any error would result in unexpected results. It also required careful considerations regarding the important variables that had to be stored for the save function to fully capture all the details and allow the user to load the application just as he or she stored it.
* Justification: This feature is a core feature as without it, users would have to retype all their groups and times everytime they on their application.
* Highlights: This enhancement required the in-depth analysis of the existing process of saving and loading of the JSON file. It required meticulousness and attention to detail as it involved complex logical processes such as adding a person to the group he is in, while also adding the group to the person's own internal list, whereby any error would result in unexpected results. It also required careful considerations regarding the important variables that had to be stored for the save function to fully capture all the details and allow the user to load the application just as he or she stored it.

* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2324s1.github.io/tp-dashboard/#/widget/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code&since=2023-09-22&chartGroupIndex=36&chartIndex=3)

Expand All @@ -41,9 +41,8 @@ Given below are my contributions to the project.
* Added activity and sequence diagrams for the above functions. This includes for delete person time command, shown here.
* <puml src="diagrams/DeletePersonTimeDiagram.puml" alt="DeletePersonTimeDiagram"/>
* <puml src="diagrams/DeletePersonTimeActivityDiagram.puml" alt="DeletePersonTimeActivityDiagram"/>

* **Contributions beyond project team**
* Meticulously review other groups work and provided feedback on potential bugs and how they could imrpove their product [here](https://github.com/nicholastng010601/ped/tree/main/files).
* Meticulously review other groups work and provided feedback on potential bugs and how they could improve their product [here](https://github.com/nicholastng010601/ped/tree/main/files).


[//]: # (* **Community**:)
Expand Down
12 changes: 6 additions & 6 deletions docs/team/zd292.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ Given below are my contributions to the project.

* **New Feature**: Added the ability to find a free time slot for group meetings.
* What it does: Allows the user to find a common time slot within their group.
* Justification: This feature improves the product significantly because users are now able to find a common meeting time slot, which solves one of the pain points, being difficulty in coordinating meetings.
* Highlights: This feature involved careful planning and coordination between members of how we wanted to implement the concept of time and consequently how I would implement the feature to find a common time slot.
*
* Justification: This feature improves the product significantly because users are now able to find a common meeting time slot, which solves one of the pain points, being difficulty in coordinating meetings.
* Highlights: This feature involved careful planning and coordination between members of how we wanted to implement the concept of time and consequently how I would implement the feature to find a common time slot.

* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2324s1.github.io/tp-dashboard/?search=zd292&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code&since=2023-09-22&tabOpen=true&tabType=authorship&tabAuthor=ZD292&tabRepo=AY2324S1-CS2103T-T10-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false)


Expand All @@ -28,12 +28,12 @@ Given below are my contributions to the project.

* **Documentation**:
* User Guide:
* Added documentation for the features
* Added documentation for the features
* Listing Meeting Time From a Group `listtime`
* Finding Free Time of a Group `findfreetime`
* Viewing Help: `help`
* Clearing all Data: `clear`

* Developer Guide:
* Add sequence diagram for grouping a contact
* Add sequence diagram for grouping a contact

1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
org.gradle.parallel=false
org.gradle.crlf=lf
org.gradle.jvmargs=-XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=utf-8

# TODO: This is a workaround for a JDK11 bug which causes test coverage upload to fail.
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
Loading
Loading