-
Notifications
You must be signed in to change notification settings - Fork 140
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-W14-2] PlanPal #27
base: master
Are you sure you want to change the base?
Changes from 166 commits
ace9cdf
0f2e44d
87512b9
b20a92b
4c229db
bb7655a
9b285a6
c93de9a
6bdc8a3
302d31d
4f5c165
40048a1
5f90528
902baad
d5caad9
af3bbea
cc0938a
44f9583
b528dbe
31540bb
d698c2c
ed64a57
737123e
bf0537f
21c0f3d
4584222
2e66bf7
3e970c3
e9ca892
3bd1d5f
2766add
8906b6b
fcd0f6f
27c4e66
d83374d
915afa7
f8279fd
67a5b28
3bf70b5
1b51901
2014b8c
8e9c12a
16b0abf
8a62a25
e1f40f5
d65adce
7cc7b01
55d2edd
6d61cdb
297e27c
2549989
28264ec
644eb16
47f817a
01c50c2
de357ee
a53612e
fca1425
e303721
caac13a
9ce2602
c92b1c8
a7f0e84
863e51e
609db55
5197b92
999aede
b1ca03d
42bf3df
3e94579
83044bb
628e5c5
1d1a177
fa1318c
6f6b907
42c8fb0
0baf259
d46da2d
fbbc4a9
f24e916
2176f65
ddebf53
d03a664
20b8d69
c9ba345
b61ff71
f2d4965
e7fea00
4f165ef
629d583
1e52b75
ca9af48
e8205e0
ebcc667
2ccfccf
9d5bb58
e5650cc
b3dbaa5
b4b5de1
fcb8a96
17d43e0
4b7c423
f764702
2d353e1
99ba103
e4f41b6
d26295a
b34372f
636d1e0
baa4251
8a5b4a3
19b0203
7541ddc
6d5c735
adf6a46
6c4cd37
f8bf408
dbde660
96e97f1
5ab5f52
47e7f7c
cba2977
9807e01
8a7b9ae
8265907
2c6178f
944074f
27ed5c2
6758c94
5f1c6f4
9ab5e45
97e6848
ffb3a01
c3e02eb
6c57335
5c65c87
63b2761
b022add
6600758
7975f40
3c5d18a
cac48a6
9eeecec
9f71afb
6de7260
54663c0
f85fad3
0160386
77625cd
358b55d
c1b9941
1af8dfd
8b1595b
9329101
1cb2cd2
90488f7
68e922c
3d3e487
9d31d4b
7b7a4cb
0935273
7362080
c1b1728
cad774e
07917d0
dc19cf5
f1df536
0d7b97c
8b4d8bb
af463c3
a16d61b
e37aefd
0c19a83
8538c27
0d607a6
323eda7
0253a2d
4455eb7
f316e96
5ea8330
c6752bf
a0ff0c2
131fec5
9abc4e0
46a0fd5
3b0130b
c8f6663
3861a82
2206361
8ef8433
e0e25fc
a774423
76e6a6c
dd0b5cf
c221252
0b93175
9b96533
4b59d17
aaa5a87
240bb59
a90f41f
1ca0150
396651c
ec407ba
577e058
80d0a63
703c65e
90b8e21
943c7b2
96109cf
ab175a8
151b39e
6d80fdf
37c6712
3f4c72c
8400c31
c3c90f9
941eb39
7cb2d8a
fd3b4e4
ca63e19
59828e7
ecca0a0
a6a70e6
6dda37a
bb707a1
1d5096b
62bf0de
1d18fae
ca394a4
703877f
c62b715
fd1d1ba
b5c7b26
bf6567d
5ecd1be
998616a
daf5cc2
0ed5999
91d2ed4
531a604
6c8d1d9
52ff121
53e359f
2012f84
b2592ba
98a45c3
7bd499d
41fc672
ee033ab
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 |
---|---|---|
@@ -1,3 +1,5 @@ | ||
/data/ | ||
|
||
# IDEA files | ||
/.idea/ | ||
/out/ | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Manifest-Version: 1.0 | ||
Main-Class: seedu.planpal.PlanPal | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,9 @@ | ||
# 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) | Gavin | [Github](https://github.com/parasytezz) | [Portfolio](https://youtu.be/dQw4w9WgXcQ?si=G0x0I-NJflgQC8Ye) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Bu Yin Shuang | [Github](https://github.com/crystal-bys) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Lam Hoi Kei | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Nathan | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Si Thu Lin Aung | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,126 @@ | ||
# Developer Guide | ||
|
||
--- | ||
Welcome to the PlanPal Developer Guide! Thank you for taking an interest in the behind-the-scenes work of our product. We hope this document proves informative and useful for your work! | ||
|
||
## Table of Contents | ||
{to be inserted at a later date} | ||
|
||
--- | ||
|
||
## Acknowledgements | ||
|
||
|
||
{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} | ||
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 understand that this is for planning purposes, but this can be removed once information has been added to the DG |
||
|
||
## Design & implementation | ||
## Setting up, getting started | ||
1. Java 17 is required for PlanPal to function properly, please make sure your device has Java 17 installed. If not, you may download it [here](). If you need further assistance installing Java 17, you may refer to the [Installation Guide.]() | ||
2. Once you have ascertained that your device has Java 17 installed, you may download the `.jar file` [here](). | ||
insert SS of release page | ||
|
||
Click on `PlanPal.jar` to automatically download the file. Place the file in a folder your choice. | ||
|
||
|
||
|
||
## Design | ||
|
||
--- | ||
### Architecture | ||
![Architecture.drawio.png](Images%2FArchitecture.drawio.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. Your architecture diagram has inconsistent diagram background: this diagram has a black background, while the others use white. |
||
|
||
The **Architecture Diagram** given above explains the high-level design of the program. Given below is a quick overview of the main components. | ||
|
||
### Main Components | ||
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 doing other UML diagrams for these components either Class / Object diagrams |
||
- `PlanPal`: Main entry of the program, initialises and connects the components | ||
- `UI`: In charge of printing messages | ||
- `Logic`: Determines the command to execute | ||
- `Storage`: Read and write data from hard disk | ||
- `Command`: Specific commands for execution | ||
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. Agree with the previous commenter that diagrams would be good to explain the components |
||
|
||
### Program Flow | ||
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. Should there be state diagrams to better represent the flow? Should flow be more of 1. 2. 3. rather than point form bullet points? |
||
- The `PlanPal` controls access to the `UI`, `Parser`, and `FileManager` (Storage) components of the app. | ||
- The user will send input to `PlanPal`. | ||
- `PlanPal` will parse the input to produce a `Command`, which will hook back into `PlanPal` to gain access to the other components when running | ||
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 adding UML diagrams for these classes here help improve clarity regarding how the they operate and interact? 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. Where are classes like Storage and Logic used? It is not mentioned in the programme flow. |
||
|
||
--- | ||
## Implementation | ||
--- | ||
|
||
The class diagram below represents the contact book system | ||
|
||
{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} | ||
![ContactClassDiagram.jpg](Images/ContactClassDiagram.jpg) | ||
|
||
Currently, only the contact features have been illustrated. | ||
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. Should there be a diagram to explain or show the interactions or differences between Contact Manager and Expense Manager? |
||
{to add other implementations for expense and activity managers} | ||
|
||
## Contact Manager Features | ||
|
||
### Add Command | ||
The sequence diagram below illustrates the process for resolving the "add" command. | ||
![AddContact.drawio.png](Images%2FAddContact.drawio.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. 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. |
||
|
||
C2linaung marked this conversation as resolved.
Show resolved
Hide resolved
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. 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. |
||
Explanation: | ||
- Before this command is executed, the user will have to choose their mode. | ||
- When modeInput is 1, representing contact manager, the user is then asked for a command in this mode. | ||
- When command "add /name: john" is sent, the processCommand function is executed. | ||
- Since the command is "add", addContact function is executed using the description "/name: john". | ||
- This creates a new contact and is then added to the list of contacts | ||
- Finally, contact file is saved in the savedContacts FileManager. | ||
|
||
### List Command | ||
The sequence diagram below illustrates the process for resolving the "list" command. | ||
|
||
C2linaung marked this conversation as resolved.
Show resolved
Hide resolved
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. 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. |
||
![ViewContact.drawio.png](Images%2FViewContact.drawio.png) | ||
|
||
Explanation: | ||
- Before this command is executed, the user will have to choose their mode. | ||
- When modeInput is 1, representing contact manager, the user is then asked for a command in this mode. | ||
- When command "list" is sent, the processCommand function is executed. | ||
- Since the command is "add", viewContactList command is executed, printing all the contacts in the list. | ||
|
||
### Edit Command | ||
The sequence diagram below illustrates the process for resolving the "edit" command. | ||
![EditContact.drawio.png](Images%2FEditContact.drawio.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. There is inconsistent diagram backgrounds: this diagram has a black background, while the others use white. 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. 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. 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. Should there be a class diagram for the involving classes (PlanPal, Parser, ContactParser, ContactManager) in the context of the Edit Command 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. 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. 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. 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 section has missing explanation on how the Edit Command works. Would adding an explanation section be useful or is the sequence diagram enough? |
||
|
||
### Set Category Command | ||
The sequence diagram below illustrates the process for resolving the "category" command. | ||
![SetCategory.drawio.png](Images%2FSetCategory.drawio.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. 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. 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. Should there be a class diagram for the involving classes (Ui, ContactParser, ContactManager) in the context of the Set Category Command? 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. 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. It would be good to add an explanation for the Edit and Set Category command like you guys did in the List Command 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. 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 section has missing explanation on how the Set Category Command works. Would adding an explanation section be useful or is the sequence diagram enough? 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. 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. |
||
|
||
### Find Command | ||
The sequence diagram below illustrates the process for resolving the "find" command. | ||
|
||
![FindContact.jpg](Images/FindContact.jpg) | ||
|
||
## Expense Manager Features | ||
### Add Command | ||
|
||
For the expense manager, the add function works similar to the contact manager. The only difference being the names of the objects and the classes. | ||
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 explaining the specific changes (e.g., which classes are replaced by which) improve clarity here? |
||
|
||
--- | ||
## Product scope | ||
### Target user profile | ||
|
||
{Describe the target user profile} | ||
As an international student in NUS, I want to be able to... | ||
|
||
### Value proposition | ||
|
||
{Describe the value proposition: what problem does it solve?} | ||
|
||
--- | ||
|
||
## User Stories | ||
|
||
|Version| As a ... | I want to ... | So that I can ...| | ||
|--------|----------|---------------|------------------| | ||
|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| | ||
|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| | ||
|Version| As a ... | I want to ... | So that I can ... | | ||
|--------|----------|---------------------------|--------------------------------------------------------------------------------| | ||
|v1.0|NUS international student| see my list of contacts | easily call home or look for emergency contacts when needed | | ||
|v1.0|NUS international student| add a contact | expand my list of useful contacts | | ||
|v1.0|NUS international student| delete a contact | remove a contact if I no longer need it | | ||
|v1.0|NUS international student| edit a contact | amend any mistakes when creating the contact or if the number has been changed | | ||
|v1.0|NUS international student| save my contacts | my contacts are still there when I exit and enter the app again | | | ||
|v2.0|| | | | ||
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. Should there be a 6th user story? I see that you have the version component filled but there rest of the user story (user type, action and purpose) is empty. |
||
|
||
--- | ||
## Non-Functional Requirements | ||
|
||
{Give non-functional requirements} | ||
|
@@ -35,4 +131,4 @@ | |
|
||
## Instructions for manual testing | ||
|
||
{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} | ||
{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} |
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 diagram looks good just that the resolution is not to great. You could also consider abstracting the opt block with a ref 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. Instead of writing return as a return object, it would be good to be more specific as to what is actually being returned, i.e. return object 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. The use of color to indicate which components the entities are from would also be helpful for sequence diagrams in this DG. |
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. Nice use of colors, forming a colorful diagram. As other sequence diagrams are with white background, it would be good to have a consistent background color. |
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. Should the self call arrow for the editList() method of :ContactManager be pointing to the top of the activation bar instead |
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. Same comment as previous, on being more specific on what is being returned from each activation bar. |
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. Same comment as previous, on being more specific on what is being returned from each activation bar. |
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package seedu.planpal; | ||
|
||
|
||
import seedu.planpal.exceptions.PlanPalExceptions; | ||
import seedu.planpal.utility.Ui; | ||
import seedu.planpal.utility.parser.Parser; | ||
|
||
import java.util.Scanner; | ||
|
||
|
||
public class PlanPal { | ||
/** | ||
* Main entry-point for the java.duke.Duke application. | ||
*/ | ||
public static void main(String[] args) { | ||
Scanner in = new Scanner(System.in); | ||
Ui.printWelcomeMessage(); | ||
Parser mainParser = new Parser(); | ||
|
||
while (true) { | ||
try { | ||
Ui.printAvailableModes(); | ||
String modeInput = in.nextLine(); | ||
mainParser.processCommand(modeInput); | ||
} catch (PlanPalExceptions e) { | ||
Ui.print(e.getMessage()); | ||
} | ||
} | ||
|
||
} | ||
} |
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.
Good that you are inserting a table of contents, hope that you get it up soon!