-
Notifications
You must be signed in to change notification settings - Fork 103
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
[CS2113-T17-2] PlanIT #14
base: master
Are you sure you want to change the base?
Changes from 84 commits
b586b21
238b7a9
1593298
cc2c5af
b925fbf
6bab83e
222130a
2cecb45
3d5bd15
cb1ef0d
63867cb
2e23aa2
e1c5d45
463b038
b8ef50f
5d4801a
2f68905
cdb4c42
3d77eb2
e0db7a9
6b1235f
494cfc6
5f54f27
4f66117
2ea64dc
beb02c7
36ef2f3
18bbe39
b687137
4fb3007
846dc56
8eb6740
89668c1
198afec
5b34db4
3250645
c0adbcf
b980cc9
e4f288f
b984c21
8efb418
cfed6ba
254bf46
133aa86
ed6db74
165b9d0
5047f2a
f9b1468
bf2ca93
ae41447
76243c0
04b6368
b6c7306
7a3a900
5b0aa65
c110a22
f502594
fee1c65
8fc1758
149333e
69ec049
7d5bbb9
2c8c869
c810506
69fa5a2
8bf6ca7
0292181
abfee7c
bf50eea
dd6c1f6
672fc48
9913c49
3801a15
9f8813f
1099d75
772e2cd
2a6c1c8
ad122d0
fd8835f
bf97ea8
d8e58a1
c7f112b
0aa928a
03a7b36
a8e847a
4081272
b0b86fd
5758d98
5fa3213
4157e1a
e4f9527
7976477
1db75d8
9ffd994
83cf135
9e478e4
dee6992
9299bbc
96fdbd3
3a56bcb
56dfce4
bfc519b
eeac365
da07916
240cccc
1a3f473
7de7da7
07d2946
02fa7a2
1300f99
3208a31
4dcb6f3
7e7d4c3
02b8c12
8ddd03c
b0afbbf
d0f71c5
fca4409
f8f1cd8
2d49bce
eb0ef83
d435e1d
800daa8
a3f5573
7e901a8
664cd41
47ba5b8
df01053
40496fa
d840747
42bb5f9
5dfc4ca
fcd808f
f037fd4
d520981
b139955
3dde4e8
c9746f6
b3a140c
8d49abe
370765e
e2a19de
63a9fae
590868a
667d00e
c6ff830
7b20afb
062602d
8b9372a
cf96660
25293d7
ad259be
0b60f68
2f9137f
d5fcd66
f349722
cb00e29
088f5be
21b42db
1f3de93
e86049e
1a8b17d
b34b1b0
3efb604
1cf0ea0
93ddd0d
bcfa499
492bdd6
5ca10ee
0da9263
51ed816
8ec1777
3a88aec
37b3c76
f8e13e6
d05f3ef
158e555
b83ec07
7969f89
78b8a3b
340ae3f
aa7ce85
7635f9b
45d8415
51378bc
96b41ff
277d336
14a3c40
8809337
1af017b
0f710b2
fc69107
f011077
d3867bf
7d9a478
70cd42b
d96bc40
a63dc41
b3e97d0
dc880fb
79042b3
16a2b61
5a66948
bd4639b
1cd9152
f37e80e
0ccf83a
b909074
18a0528
56bad8f
1e8b1dd
dade811
ea7cd25
5d398a3
f36897c
74d3d30
827663a
4c02fce
9783881
07e08d8
cf213e7
b74e58b
b927115
0fae13e
fabe19c
58c6937
c5251ab
26072db
c3f1e26
81f26ae
3f29f1d
f74596c
72d792a
39cce6a
5660e14
0dcf92d
fc9cb36
b758c2d
6f0cd57
90ab496
64da252
493a0f9
73fa5a7
b3f859c
d623fce
64254f0
df6d865
54b067b
d89abe3
1887568
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Manifest-Version: 1.0 | ||
Main-Class: seedu.duke.Duke | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -43,4 +43,5 @@ checkstyle { | |
|
||
run{ | ||
standardInput = System.in | ||
enableAssertions = true | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,8 @@ | ||
# About us | ||
|
||
Display | Name | Github Profile | Portfolio | ||
--------|:----:|:--------------:|:---------: | ||
![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
Display | Name | Github Profile | Portfolio | ||
--------|:-------------------:|:--------------:|:---------: | ||
![](https://via.placeholder.com/100.png?text=Photo) | Insaf | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Zhai Yuxin | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Brandon Owen Sjarif | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Ishita Mandal | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,17 +6,146 @@ | |
|
||
## Design & implementation | ||
|
||
{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} | ||
Our program is structured as pictured in the following class diagram: | ||
![ClassDiagram.png](diagrams/ClassDiagram.png) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider changing the following:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would be good to include the access modifier. It will be good that you spread out the class diagram as well so that the association is not overlapped. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can consider having segments in the DG that goes into more details about the different classes such as |
||
|
||
All the inheritors of Command are features that will be described below. | ||
|
||
### Addition feature | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. With regards to the sequence diagram, there should be a colon in front of the Class name, for example ":Duke". Because if you did not indicate, it means that you are not referring to the object. The "c" stated in the sequence diagram might be ambiguous too. You might also want to the box at the bottom of the sequence diagram since it's different from the convention taught during lecture. The box at the bottom of the sequence diagram also can be seen causing another bug as there is no 'end' to the activation box of the Ui object at the bottom. |
||
|
||
The addition mechanism is facilitated by 'Parser', 'Add', 'ModuleList' and 'UI', where a Module object will be created according to the content inputted by the user and stored in the module list. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can consider using 'code' feature to better distinguish the class and to draw attention. It will look something like |
||
|
||
Below is an example usage scenario and how the addition mechanism behaves at each step: | ||
|
||
Step 1: The user launches the application for the first time. A ModuleList object will be initiated with empty content. | ||
|
||
Step 2: The user input of "add m/cs2113 s/y2s1 mc/4 g/a" will be taken in for parser and an object of class 'Add' will be returned. | ||
|
||
Step 3: The execute method in the Add class that is overrides will be called with parameter of moduleList and module to be added passed. This will add the Module into the module list created in step 1. | ||
|
||
The sequence diagram below illustrates this add mechanism: | ||
|
||
![AddUML.png](diagrams/AddUML.png) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider changing the following:
|
||
|
||
### Deletion feature | ||
|
||
The deletion mechanism is facilitated by 'Parser', 'Add', 'ModuleList' and 'UI', where a Module object will be deleted according to the module code inputted by the user and removed from the module list. | ||
|
||
Below is an example usage scenario and how the addition mechanism behaves at each step: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider including snippets of code that illustrate the mechanism in the DG to make it easier to follow through! |
||
|
||
Step 1: Assume that the user has already added a module named CS2113 into the ModuleList using the following command, "add m/cs2113 s/y2s1 mc/4 g/a" | ||
|
||
Step 2: The user input of "delete m/cs2113" will be taken in for the parser and an object of class 'Delete' will be returned. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You can consider making the DG more readable by idenfying code elements in the texts with some highlights. FOr example, GitHub has a built in format to identify If you want to quote or highlight an important point for developers to take note, you can use a quote. For example:
Feel free to be creative! |
||
|
||
Step 3: The execute method in the Delete class that is overrides will be called with parameter of the modCode and will iterate through moduleList looking for a Module that matches. It will then remove the Module from the moduleList. | ||
|
||
The sequence diagram below illustrates this delete mechanism: | ||
|
||
![DeleteUML.png](diagrams/DeleteUML.png) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider making the changes of the following:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In general you can choose to omit the class diagrams for some functions unless it helps to explain the function. That is up to your discretion. |
||
|
||
### View feature | ||
|
||
The View mechanism is facilitated by 'Parser', 'View', 'ModuleList', and 'UI', where the user enters | ||
a semester and the total number of mcs taken that semester is calculated and displayed. | ||
|
||
Below is an example usage scenario and how the view mechanism behaves at each step. | ||
|
||
Step 1: Assume that the user has already added two modules to y2s1: | ||
The first module is CS2113, a 4 MC module which was added using the following command "add m/cs2113 s/y2s1 mc/4 g/a" | ||
The second module is CS2030, a 4 MC module which was added using the following command "add m/cs2030 s/y2s1 mc/4 g/a" | ||
|
||
Step 2: The user input of "view s/y2s1" will be taken in for the parser and an object of class 'View' will be returned. | ||
|
||
Step 3: The execute method of View class that is overrides will be called with parameter of the semester and will iterate through | ||
the moduleList. If the semester in which a particular module is taken matches the semester given as the argument, then the module will be added to an ArrayList called matchingModules. In the end, the arrayList matchingModules will be returned. | ||
|
||
The sequence diagram below illustrates this view mechanism. | ||
|
||
![viewUML.png](diagrams/viewUML.png) | ||
|
||
### Mcs feature | ||
|
||
The mcs mechanism is facilitated by 'Parser', 'Mcs', 'ModuleList', and 'UI', where the user enters | ||
a semester and the total number of mcs taken that semester is calculated and displayed. | ||
|
||
Below is an example usage scenario and how the mcs mechanism behaves at each step. | ||
|
||
Step 1: Assume that the user has already added two modules to y2s1: | ||
The first module is CS2113, a 4 MC module which was added using the following command "add m/cs2113 s/y2s1 mc/4 g/a" | ||
The second module is CS2030, a 4 MC module which was added using the following command "add m/cs2030 s/y2s1 mc/4 g/a" | ||
|
||
Step 2: The user input of "mcs s/y2s1" will be taken in for the parser and an object of class 'Mcs' will be returned. | ||
|
||
Step 3: The execute method of MCs class that is overrides will be called with parameter of the semester and will iterate through | ||
the moduleList. If the semester in which a particular module is taken matches the semester given as the argument, then mcsCount variable | ||
will be increased by the number of Mcs of the module taken. In the end, mcsCount will be returned. | ||
|
||
The sequence diagram below illustrates this mcs mechanism. | ||
|
||
![McsUML.png](diagrams/McsUML.png) | ||
|
||
|
||
### Find feature | ||
|
||
The find mechanism is facilitated by 'Parser', 'Find', 'ModuleList', and 'UI', where the user enters | ||
a keyword and the modules containing the keyword in one of its fields will be displayed. | ||
|
||
Below is an example usage scenario and how the find mechanism behaves at each step. | ||
|
||
Step 1: Assume that the user has already added two modules to y2s1: | ||
The first module is CS2113, a 4 MC module which was added using the following command "add m/cs2113 s/y2s1 mc/4 g/a" | ||
The second module is CS2030, a 4 MC module which was added using the following command "add m/cs2030 s/y2s1 mc/4 g/b" | ||
|
||
Step 2: The user input of "find a" will be taken in for the parser and an object of class 'Find' will be returned. | ||
|
||
Step 3: The execute method of Find class that is overrides will be called with parameter of the keyword inputted and will iterate through | ||
the moduleList. If the keyword matches a field of a particular module, the module will be added to a separate array list | ||
which will then be displayed to the user. | ||
|
||
The sequence diagram below illustrates this find mechanism. | ||
|
||
![FindUML.png](diagrams/FindUML.png) | ||
|
||
|
||
### Check feature | ||
|
||
The help mechanism is facilitated by 'Parser', 'Check' and 'UI', where the user enters the check command and the resulting | ||
eligibility status will be displayed. | ||
|
||
The sequence diagram below illustrates this help mechanism. | ||
|
||
![CheckUML.png](diagrams/CheckUML.png) | ||
|
||
### Help feature | ||
|
||
The help mechanism is facilitated by 'Parser', 'Help' and 'UI', where the user enters the word 'help' and a help message with | ||
the various commands summary will be displayed. | ||
|
||
The sequence diagram below illustrates this help mechanism. | ||
|
||
![HelpUML.png](diagrams/HelpUML.png) | ||
|
||
### Exit feature | ||
|
||
The exit mechanism is facilitated by 'Parser', 'Exit' and 'UI'. | ||
This allows the program to exit smoothly with an exit message displayed when the user input is 'exit'. | ||
|
||
The sequence diagram below illustrates this exit mechanism. | ||
|
||
![ExitUML.png](diagrams/ExitUML.png) | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please conplete this section to showcase the target user, use cases and others. |
||
|
||
|
||
## Product scope | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No value proposition not specified. (Explanation bug) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Target user not specified. (Explanation bug) |
||
### Target user profile | ||
|
||
{Describe the target user profile} | ||
Our target user profile are NUS students who are still unsure of what module they will be taking and/or are targeting one of the exchange programs that NUS has to offer (NOC/SEP). | ||
Through our program students will be able to ensure that they are eligible for these programmes and ensure that they make the most out of their studies in NUS. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This line can be slightly confusing due to the repeated use of the word Perhaps can rephrase it as "Our application allows user to ensure that they will be eligible for these programs when the time comes" |
||
|
||
### Value proposition | ||
|
||
{Describe the value proposition: what problem does it solve?} | ||
It is often very confusing for students to plan out the full four years of their studies due to the sheer amount of modules they will be taking. | ||
Students might also have doubts of their eligibility for the exchange programs. Our program allows users to ensure that they will be eligible for these programs when the time comes. | ||
|
||
## User Stories | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think the User Stories can be updated and be made more robust, considering that there are more feature than what's captured in the user stories below |
||
|
||
|
@@ -31,7 +160,7 @@ | |
|
||
## Glossary | ||
|
||
* *glossary item* - Definition | ||
* *Module* - A class that a student takes for their current semester in NUS | ||
|
||
## Instructions for manual testing | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider separating design and implementation into different section because it's explaining on different aspect of your project.