Skip to content

Commit

Permalink
Merge from upstream
Browse files Browse the repository at this point in the history
  • Loading branch information
snss231 committed Mar 28, 2022
2 parents 99841fa + 8620909 commit 5dfbba9
Show file tree
Hide file tree
Showing 134 changed files with 2,594 additions and 547 deletions.
36 changes: 23 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,30 @@
![Ui](docs/images/Ui.png)

# NUS Classes
NUS Classes is an app that enables the professors to better manage contacts from large numbers of students and staff,
and allow the professor to document the task that he/she needs to do.
**NUS Classes** is an app that enables the professors to better manage contacts from large numbers of students and staff,
and allows the professors to document the tasks that they need to do.

## Features
### Features

New features added on top of [AddressBook-Level3](https://se-education.org/addressbook-level3/)
* Create task
* Update task
* Delete task
* List all or a single task
* Tag task
Features added on top of AB3.

## Others
Feature | Description
--- | ---
Create Task | Add and schedule (*recurring*) tasks on NUS Classes easily with a single command.
Update Task | Edit tasks which are outdated or when mistakes were made.
Delete Task | Delete tasks which are unnecessary or when you are done with it.
Un/Assign Task| Assign and unassign contacts to a task. Help with organization and planning!
View Task | View the people assigned to a task. Help with remembering who you are suppose to meet!
Tag Task | Tag a task with different tags. Help with categorizing tasks!
Filter Task | Too many tasks? Filter them based on keywords!
Alert | Forgetful? No worries, NUS Classes will remind you when tasks are approaching deadline!

* NUS Classes user guide can be found here: [User Guide](https://ay2122s2-cs2103t-t12-4.github.io/tp/UserGuide.html).
* This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org).
* This project was adopted from the existing AB3 se-education.org project. Refer to the AB3 product website **[here](https://se-education.org/addressbook-level3/)**.
### Others

* **User Guide** for NUS Classes can be found here: [User Guide](https://ay2122s2-cs2103t-t12-4.github.io/tp/UserGuide.html).
* **Developer Guide** for NUS Classes can be found here: [Developer Guide](https://ay2122s2-cs2103t-t12-4.github.io/tp/DeveloperGuide.html).

### Acknowledgements
This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org).
Additionally, this project was adopted from the existing AB3 se-education.org project. Please refer
to the AB3 product website **[here](https://se-education.org/addressbook-level3/)** for more information.
6 changes: 5 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ checkstyle {
toolVersion = '8.29'
}

run {
enableAssertions = true
}

test {
useJUnitPlatform()
finalizedBy jacocoTestReport
Expand Down Expand Up @@ -70,7 +74,7 @@ dependencies {
}

shadowJar {
archiveName = 'addressbook.jar'
archiveName = 'NUSClasses.jar'
}

defaultTasks 'clean', 'test'
169 changes: 108 additions & 61 deletions docs/DeveloperGuide.md

Large diffs are not rendered by default.

341 changes: 244 additions & 97 deletions docs/UserGuide.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_sass/minima/_base.scss
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ a {
.social-media-list &:hover {
text-decoration: none;

.username {
.gitUsername {
text-decoration: underline;
}
}
Expand Down
9 changes: 9 additions & 0 deletions docs/diagrams/Activity Diagram/DeleteTaskOutcome.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@startuml
(*) --> "DeleteTask command executed"
if "Delete task successful" then
-left->[true] "Message display: Deleted Task: Index"
-> (*)
else
-right->[false] "throw CommandException"
-->(*)
@enduml
9 changes: 9 additions & 0 deletions docs/diagrams/Activity Diagram/EditTaskOutcome.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@startuml
(*) --> "EditTask command executed"
if "Edit task successful" then
-left->[true] "Message display: Update Task: 'Index'"
-> (*)
else
-right->[false] "throw CommandException"
-->(*)
@enduml
32 changes: 32 additions & 0 deletions docs/diagrams/DeleteModelSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
@startuml
!include style.puml

box Logic LOGIC_COLOR_T1
participant "d:DeleteCommand" as DeleteCommand LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
participant ":AddressBook" as AddressBook MODEL_COLOR
participant ":TaskList" as TaskList MODEL_COLOR
end box


[-> DeleteCommand : execute()
activate DeleteCommand

DeleteCommand -> Model : deletePerson(target)
activate Model

Model -> AddressBook : removePerson(target)
activate AddressBook

AddressBook --> Model
deactivate AddressBook

Model -> TaskList : removePerson(target)
activate TaskList

TaskList --> Model
deactivate TaskList
@enduml
69 changes: 69 additions & 0 deletions docs/diagrams/DeleteTaskSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
@startuml
!include style.puml

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":DeleteTaskCommandParser" as DeleteTaskCommandParser LOGIC_COLOR
participant ":DeleteTaskCommand" as DeleteTaskCommand LOGIC_COLOR
participant ":CommandResult" as CommandResult LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
end box

[-> LogicManager : execute("deletet 1")
activate LogicManager

LogicManager -> AddressBookParser : parseCommand("deletet 1")
activate AddressBookParser

create DeleteTaskCommandParser
AddressBookParser -> DeleteTaskCommandParser : DeleteTaskCommandParser()
activate DeleteTaskCommandParser

DeleteTaskCommandParser --> AddressBookParser
deactivate DeleteTaskCommandParser

AddressBookParser -> DeleteTaskCommandParser : parse("1")
activate DeleteTaskCommandParser

create DeleteTaskCommand
DeleteTaskCommandParser -> DeleteTaskCommand : DeleteTaskCommand(1)
activate DeleteTaskCommand

DeleteTaskCommand --> DeleteTaskCommandParser
deactivate DeleteTaskCommand

DeleteTaskCommandParser --> AddressBookParser
deactivate DeleteTaskCommandParser
'Hidden arrow to position the destroy marker below the end of the activation bar.
DeleteTaskCommandParser -[hidden]-> AddressBookParser
destroy DeleteTaskCommandParser

AddressBookParser --> LogicManager
deactivate AddressBookParser

LogicManager -> DeleteTaskCommand : execute()
activate DeleteTaskCommand

DeleteTaskCommand -> Model : deleteTask(1)
activate Model

Model --> DeleteTaskCommand
deactivate Model

create CommandResult
DeleteTaskCommand -> CommandResult : CommandResult(...)
activate CommandResult

CommandResult --> DeleteTaskCommand
deactivate CommandResult

DeleteTaskCommand --> LogicManager : result
deactivate DeleteTaskCommand

[<--LogicManager
deactivate LogicManager
@enduml
111 changes: 111 additions & 0 deletions docs/diagrams/EditTaskSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
@startuml
!include style.puml

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":EditTaskCommandParser" as EditTaskCommandParser LOGIC_COLOR
participant "ParserUtil" as ParserUtil LOGIC_COLOR
participant "editTaskDescriptor:EditTaskDescriptor" as EditTaskDescriptor LOGIC_COLOR
participant ":EditTaskCommand" as EditTaskCommand LOGIC_COLOR
participant ":CommandResult" as CommandResult LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
end box

-> LogicManager : parseCommand("editt ...")
activate LogicManager

LogicManager -> AddressBookParser : parseCommand("editt ...")
activate AddressBookParser

create EditTaskCommandParser
AddressBookParser -> EditTaskCommandParser : EditTaskCommandParser()
activate EditTaskCommandParser

EditTaskCommandParser --> AddressBookParser
deactivate EditTaskCommandParser

AddressBookParser -> EditTaskCommandParser : parse(...)
activate EditTaskCommandParser

EditTaskCommandParser -> ParserUtil : parseIndex(...)
activate ParserUtil

ParserUtil -> EditTaskCommandParser : index
deactivate ParserUtil

create EditTaskDescriptor
EditTaskCommandParser -> EditTaskDescriptor : EditTaskDescriptor()
activate EditTaskDescriptor

EditTaskDescriptor --> EditTaskCommandParser
deactivate EditTaskDescriptor

opt Task name present
EditTaskCommandParser -> EditTaskDescriptor : setName(...)
activate EditTaskDescriptor
EditTaskDescriptor --> EditTaskCommandParser
deactivate EditTaskDescriptor
end

opt DateTime present
EditTaskCommandParser -> EditTaskDescriptor : setDate(...)
activate EditTaskDescriptor
EditTaskDescriptor --> EditTaskCommandParser
deactivate EditTaskDescriptor
end

opt Tags present
EditTaskCommandParser -> ParserUtil : parseTags(...)
activate ParserUtil
ParserUtil --> EditTaskCommandParser : Tags
deactivate ParserUtil
EditTaskCommandParser -> EditTaskDescriptor : setTags(...)
activate EditTaskDescriptor
EditTaskDescriptor --> EditTaskCommandParser
deactivate EditTaskDescriptor
end

create EditTaskCommand
EditTaskCommandParser -> EditTaskCommand : EditTaskCommand(index, editTaskDescriptor)
activate EditTaskCommand

EditTaskCommand --> EditTaskCommandParser
deactivate EditTaskCommand

EditTaskCommandParser --> AddressBookParser
deactivate EditTaskCommandParser
'Hidden arrow to position the destroy marker below the end of the activation bar.
EditTaskCommandParser -[hidden]-> AddressBookParser
destroy EditTaskCommandParser

AddressBookParser --> LogicManager
deactivate AddressBookParser

LogicManager -> EditTaskCommand : execute()
activate EditTaskCommand

EditTaskCommand -> Model : setTask(...)
activate Model

Model --> EditTaskCommand
EditTaskCommand -> Model : updateFilteredTaskList(...)
Model --> EditTaskCommand
deactivate Model

create CommandResult
EditTaskCommand -> CommandResult : CommandResult(...)
activate CommandResult

CommandResult --> EditTaskCommand
deactivate CommandResult

EditTaskCommand --> LogicManager : result
deactivate EditTaskCommand

[<--LogicManager
deactivate LogicManager
@enduml
33 changes: 23 additions & 10 deletions docs/diagrams/ModelClassDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -7,44 +7,57 @@ skinparam classBackgroundColor MODEL_COLOR
Package Model <<Rectangle>>{
Class "<<interface>>\nReadOnlyAddressBook" as ReadOnlyAddressBook
Class "<<interface>>\nReadOnlyUserPrefs" as ReadOnlyUserPrefs
Class "<<interface>>\nReadOnlyTaskList" as ReadOnlyTaskList
Class "<<interface>>\nModel" as Model
Class AddressBook
Class ModelManager
Class UserPrefs
Class TaskList
Class Task

Class UniquePersonList
Class Person
Class Address
Class Username
Class Email
Class Name
Class Phone
Class Tag
Class Link

}

Class HiddenOutside #FFFFFF
HiddenOutside ..> Model

AddressBook .up.|> ReadOnlyAddressBook
AddressBook .up..|> ReadOnlyAddressBook
TaskList .up..|> ReadOnlyTaskList

ModelManager .up.|> Model
Model .right.> ReadOnlyUserPrefs
Model .left.> ReadOnlyAddressBook
Model .down.> ReadOnlyUserPrefs
Model .down.> ReadOnlyAddressBook
Model .down.> ReadOnlyTaskList
ModelManager -left-> "1" AddressBook
ModelManager -right-> "1" UserPrefs
ModelManager -up-> "1" UserPrefs
ModelManager -right-> "1" TaskList
UserPrefs .up.|> ReadOnlyUserPrefs

TaskList --> "~* " Task

AddressBook *--> "1" UniquePersonList
UniquePersonList --> "~* all" Person
UniquePersonList --> "~* " Person
Person *--> Name
Person *--> Phone
Person *--> Email
Person *--> Address
Person *--> Username
Person *--> "*" Tag

Task -> "*" Tag
Task -down-> "0 .. 1" Link

Name -[hidden]right-> Phone
Phone -[hidden]right-> Address
Address -[hidden]right-> Email
Task -[hidden]left-----> Person


ModelManager -->"~* filtered" Person
ModelManager -->"~*" Person
ModelManager -->"~*" Task
@enduml
1 change: 1 addition & 0 deletions docs/diagrams/ParserClasses.puml
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,5 @@ XYZCommandParser ..> ParserUtil
ParserUtil .down.> Prefix
ArgumentTokenizer .down.> Prefix
XYZCommand -up-|> Command
ArgumentMultimap ..> Prefix
@enduml
Loading

0 comments on commit 5dfbba9

Please sign in to comment.