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

[CS2113-T15-3] Moneymind #42

Open
wants to merge 311 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 169 commits
Commits
Show all changes
311 commits
Select commit Hold shift + click to select a range
51baf31
Actual commit
mingyuannus Mar 14, 2023
6abf3dd
Fix imports
mingyuannus Mar 14, 2023
c5c4994
Fix imports for CommandTest
mingyuannus Mar 14, 2023
1cdd0c7
add save and load features to main run class
Toh-HongFeng Mar 14, 2023
c333801
add EventList.txt to .gitignore
Toh-HongFeng Mar 14, 2023
a62c290
Merge pull request #22 from Mnsd05/branch-assertions
Toh-HongFeng Mar 14, 2023
696ecfa
resolve merge conflicts
Toh-HongFeng Mar 14, 2023
2921a4c
resolve merge conflicts
Toh-HongFeng Mar 14, 2023
594bb2d
improve code quality for stylesCheck
Toh-HongFeng Mar 14, 2023
f6e6431
Merge pull request #1 from Toh-HongFeng/mingyuannus-master
mingyuannus Mar 14, 2023
16c9ed4
Merge pull request #23 from mingyuannus/master
Toh-HongFeng Mar 14, 2023
22d501e
resolve merge conflict
Toh-HongFeng Mar 14, 2023
e6f2a78
add classes to update CategoryCommand.categoryMap
Toh-HongFeng Mar 14, 2023
675dffa
fix minor bugs
Toh-HongFeng Mar 14, 2023
b9807fa
Merge pull request #21 from Toh-HongFeng/storage
Toh-HongFeng Mar 14, 2023
8e5a110
fix package name
Toh-HongFeng Mar 14, 2023
b37565d
fix package name
Toh-HongFeng Mar 14, 2023
0fa5c2a
Merge pull request #25 from Toh-HongFeng/master
Toh-HongFeng Mar 14, 2023
79e0765
Fix bugs and improve different commands
Mnsd05 Mar 15, 2023
b2300a3
Add help command
Mnsd05 Mar 15, 2023
ef00a53
Divide packages and refactor code
Mnsd05 Mar 15, 2023
5cb8ed2
Merge branch 'master' into branch-fix-bugs
Toh-HongFeng Mar 15, 2023
1f1246b
Update Parser.java
Toh-HongFeng Mar 15, 2023
90cbf14
Update regression test
Mnsd05 Mar 16, 2023
d7de1d8
update EXPECTED.txt and debug 2nd test of CommandTest.java
Toh-HongFeng Mar 16, 2023
f8ba774
fix save function for empty category map
Toh-HongFeng Mar 16, 2023
7fc47ca
Merge pull request #3 from Toh-HongFeng/branch-debug
Mnsd05 Mar 16, 2023
d91084b
Merge pull request #27 from Mnsd05/branch-fix-bugs
Toh-HongFeng Mar 16, 2023
9611736
add logger to Storage.java
Toh-HongFeng Mar 16, 2023
865217e
Merge branch 'storage'
Toh-HongFeng Mar 16, 2023
3735d9a
Merge branch 'master' into storage
Toh-HongFeng Mar 16, 2023
6df3c34
Merge branch 'tracking_team'
Toh-HongFeng Mar 16, 2023
c6eb85f
Merge branch 'master' into storage
Toh-HongFeng Mar 16, 2023
bfceefb
Merge pull request #28 from Toh-HongFeng/storage
Toh-HongFeng Mar 16, 2023
284b95a
Remove extra InvalidCommandException
mingyuannus Mar 17, 2023
dcf3fdf
Merge branch 'master' of https://github.com/mingyuannus/tp
mingyuannus Mar 17, 2023
16172c9
Update assertion message
mingyuannus Mar 17, 2023
9108f1f
Merge pull request #29 from mingyuannus/master
mingyuannus Mar 17, 2023
f75f9bb
Enable the assertion in build.gradle
alexgoexercise Mar 18, 2023
1c37bfc
Merge pull request #30 from alexgoexercise/EnableAssertion
alexgoexercise Mar 18, 2023
5f7b7be
Add the user guide to moneymind
alexgoexercise Mar 20, 2023
b4ac16c
Merge pull request #31 from alexgoexercise/Add_UserGuide
alexgoexercise Mar 20, 2023
ee81016
Update the DeveloperGuide and test the plantUML
alexgoexercise Mar 20, 2023
079d5cb
Update the DG
alexgoexercise Mar 21, 2023
dee2f1d
Ammend the Architecture diagram and update the README.md
alexgoexercise Mar 21, 2023
7c449b3
Update the Architecture diagram
alexgoexercise Mar 21, 2023
a0885a2
Merge pull request #33 from alexgoexercise/Update_UG
alexgoexercise Mar 21, 2023
cdb7d69
Add search command
mingyuannus Mar 21, 2023
e69696a
Remove redundant import
mingyuannus Mar 21, 2023
9fe2e66
Merge pull request #35 from mingyuannus/master
mingyuannus Mar 21, 2023
d8c626b
Add budget to category
alexgoexercise Mar 21, 2023
c3f9cb8
Merge pull request #36 from alexgoexercise/AddBudgetToCategory
alexgoexercise Mar 21, 2023
4e01158
update DG for storage
Toh-HongFeng Mar 22, 2023
f83941f
Merge pull request #39 from Toh-HongFeng/master
Toh-HongFeng Mar 22, 2023
da1fdbc
add getSystemDate method
Toh-HongFeng Mar 22, 2023
1d185f8
Update different commands for version 2
Mnsd05 Mar 22, 2023
864fb6a
Update Junit test for CommandTest
Mnsd05 Mar 22, 2023
82cbbf4
Update user guide
Mnsd05 Mar 22, 2023
f18725f
Refactor code
Mnsd05 Mar 22, 2023
08d5225
Merge branch 'master' into branch-commands-v2
Mnsd05 Mar 23, 2023
9e23983
Merge pull request #42 from Mnsd05/branch-commands-v2
alexgoexercise Mar 23, 2023
151002f
Merge pull request #40 from Toh-HongFeng/branch-date-time
Toh-HongFeng Mar 23, 2023
8406bd7
add skeletal code for v2.0 storage feature
Toh-HongFeng Mar 23, 2023
a32cb69
fix checkstyles
Toh-HongFeng Mar 23, 2023
c34b217
Merge pull request #43 from Toh-HongFeng/storage
Toh-HongFeng Mar 23, 2023
f9fa7e8
add formating between category list, map and storage text
Toh-HongFeng Mar 23, 2023
5b10f51
add storage to Moneymind.run()
Toh-HongFeng Mar 23, 2023
5f7d53f
update EXPECTED.TXT to include storage
Toh-HongFeng Mar 23, 2023
89c2686
Merge pull request #44 from Toh-HongFeng/storage
Toh-HongFeng Mar 23, 2023
dff03a1
add JUnit test for Storage.java
Toh-HongFeng Mar 24, 2023
da7ae92
Merge pull request #45 from Toh-HongFeng/storage
Toh-HongFeng Mar 24, 2023
ed20f9e
add more JUnit tests for storage package
Toh-HongFeng Mar 24, 2023
3a8319a
add JUnit tests for storage
Toh-HongFeng Mar 24, 2023
091205a
Update developer guide format
mingyuannus Mar 24, 2023
f2d016c
Merge pull request #47 from mingyuannus/master
mingyuannus Mar 24, 2023
e5a5c90
improve JUnit test stability
Toh-HongFeng Mar 24, 2023
136606f
Merge pull request #46 from Toh-HongFeng/storage
Toh-HongFeng Mar 24, 2023
0bfab47
add basic reminder feature
Toh-HongFeng Mar 24, 2023
27f08d3
Merge pull request #48 from Toh-HongFeng/branch-date-time
Toh-HongFeng Mar 24, 2023
8b3314d
add auto update for event.time
Toh-HongFeng Mar 25, 2023
6c3bc28
Merge pull request #49 from Toh-HongFeng/branch-date-time
Toh-HongFeng Mar 25, 2023
cf51bee
Update user guide for search command
mingyuannus Mar 26, 2023
5bc3f7f
Merge pull request #50 from mingyuannus/master
mingyuannus Mar 26, 2023
0919c3d
create JUnitTest for Event and Category
alexgoexercise Mar 26, 2023
f7ee5d7
Add newline to end the classes
alexgoexercise Mar 26, 2023
b18f8cb
Merge pull request #51 from alexgoexercise/AddJuniTest
alexgoexercise Mar 26, 2023
f0c5e5a
Update the user profile
alexgoexercise Mar 26, 2023
7073e18
Update the Glossary
alexgoexercise Mar 26, 2023
b312ab9
Further update glossary in DG and also improve on the explanation of …
alexgoexercise Mar 26, 2023
1b550c5
Further update DG
alexgoexercise Mar 26, 2023
e45914e
Merge pull request #52 from alexgoexercise/Update_DG
alexgoexercise Mar 26, 2023
40f44f1
Some small updates on DG
alexgoexercise Mar 26, 2023
569cd8c
Merge pull request #54 from alexgoexercise/SmallUpdateOnDG
alexgoexercise Mar 26, 2023
72fb5c1
add JUnit tests for date
Toh-HongFeng Mar 27, 2023
b4cbc76
Merge pull request #55 from Toh-HongFeng/branch-date-time
Toh-HongFeng Mar 27, 2023
e1762eb
update user doc
Toh-HongFeng Mar 27, 2023
ce02dc3
Merge pull request #56 from Toh-HongFeng/branch-date-time
Toh-HongFeng Mar 27, 2023
55472c0
Create a sequence diagram for overall architecture
alexgoexercise Mar 27, 2023
dab2cc3
edit the formatting a bit
alexgoexercise Mar 27, 2023
cdc0154
Add implementation and manual testing for developer guide
Mnsd05 Mar 27, 2023
e612f1a
Merge pull request #57 from alexgoexercise/UpdateOnDG
alexgoexercise Mar 27, 2023
c26cfde
Add more Junit tests for category command
Mnsd05 Mar 28, 2023
cacd63f
add storage class diagram
Toh-HongFeng Mar 28, 2023
c4551be
Merge pull request #59 from Toh-HongFeng/branch-debug
Toh-HongFeng Mar 28, 2023
313ca61
Merge pull request #58 from Mnsd05/branch-dg
Toh-HongFeng Mar 28, 2023
47bbe88
add storage sequence diagrams
Toh-HongFeng Mar 28, 2023
f86f203
Merge pull request #60 from Toh-HongFeng/branch-debug
Toh-HongFeng Mar 28, 2023
1bd6885
refactor code
Toh-HongFeng Mar 28, 2023
d2f2696
Merge pull request #61 from Toh-HongFeng/branch-debug
Toh-HongFeng Mar 28, 2023
fcc61fa
Add more Junit tests for event command
Mnsd05 Mar 28, 2023
17992e1
Add more Junit tests for delete command
Mnsd05 Mar 28, 2023
ca3eb71
Add more Junit tests for edit command
Mnsd05 Mar 28, 2023
4b028f1
Add Junit tests for help and bye commands
Mnsd05 Mar 28, 2023
a4533c0
Create package commands for Junit test
Mnsd05 Mar 28, 2023
419e5a3
Fix checkstyle
Mnsd05 Mar 28, 2023
975d8a6
Merge pull request #62 from Mnsd05/branch-test
Toh-HongFeng Mar 29, 2023
7165d31
Ammend the constructors of the sequence diagram of overall Architecture
alexgoexercise Mar 30, 2023
47e56ff
Improve the overall architecture class diagram
alexgoexercise Mar 30, 2023
c2a7946
Add description of the data components
alexgoexercise Mar 30, 2023
48cadb0
Merge pull request #63 from alexgoexercise/FixSequenceDiagram
alexgoexercise Mar 30, 2023
10f53a2
add PED changes for UG
Toh-HongFeng Apr 3, 2023
a6b6af8
Merge pull request #122 from Toh-HongFeng/branch-debug
Toh-HongFeng Apr 3, 2023
aa8dd6a
add handling of storage delimiters as user input
Toh-HongFeng Apr 3, 2023
95b2922
Merge pull request #123 from Toh-HongFeng/branch-debug
Toh-HongFeng Apr 3, 2023
598139e
improve welcome message readability
Toh-HongFeng Apr 3, 2023
e210f32
fix tests and checkstyle
Toh-HongFeng Apr 3, 2023
45ffb0e
Merge pull request #124 from Toh-HongFeng/branch-debug
Toh-HongFeng Apr 3, 2023
e814db5
add functionality to save after each command
Toh-HongFeng Apr 3, 2023
668c982
Merge pull request #125 from Toh-HongFeng/branch-debug
Toh-HongFeng Apr 3, 2023
e795209
closes #101
Toh-HongFeng Apr 3, 2023
61266ba
closes #106
Toh-HongFeng Apr 3, 2023
085706c
closes #108
Toh-HongFeng Apr 3, 2023
6be22c4
fix checkstyles
Toh-HongFeng Apr 3, 2023
be44fa5
Merge pull request #126 from Toh-HongFeng/branch-debug
Toh-HongFeng Apr 3, 2023
89fc707
update PPP
Toh-HongFeng Apr 3, 2023
0068627
Merge pull request #127 from Toh-HongFeng/branch-debug
Toh-HongFeng Apr 3, 2023
2cb61fe
update aboutus link
Toh-HongFeng Apr 3, 2023
85a2a2a
Merge pull request #128 from Toh-HongFeng/branch-debug
Toh-HongFeng Apr 3, 2023
f5ae94b
update AboutUs.md
Toh-HongFeng Apr 3, 2023
77a34f3
Merge pull request #129 from Toh-HongFeng/branch-debug
Toh-HongFeng Apr 3, 2023
01aee55
Update UG for view command and change response when the input is invalid
Mnsd05 Apr 3, 2023
528476f
Fix typo
Mnsd05 Apr 3, 2023
fb4bc9a
Update tests for commands
Mnsd05 Apr 3, 2023
7033e0c
Fix back in edit command
Mnsd05 Apr 3, 2023
bb2e7df
Merge pull request #130 from Mnsd05/branch-fix-bugs
Toh-HongFeng Apr 4, 2023
2f49477
Fix problems for integer overflow
Mnsd05 Apr 4, 2023
ad86ec0
Allow user to enter empty input
Mnsd05 Apr 4, 2023
e9d5263
Fix bugs for edit command
Mnsd05 Apr 4, 2023
9f65667
Fix the problems reflected in the code review for Alex
alexgoexercise Apr 5, 2023
7bfc8a2
Merge pull request #134 from alexgoexercise/Fix_AlexCodeReview
alexgoexercise Apr 5, 2023
2724df5
Add the logo to the MoneyMind UI
alexgoexercise Apr 5, 2023
2b9a003
Update the expected.txt file
alexgoexercise Apr 5, 2023
1f61c22
further update the EXPECTED.txt file
alexgoexercise Apr 5, 2023
a6853c5
Merge pull request #135 from alexgoexercise/Add_MoneyMind_Logo
alexgoexercise Apr 5, 2023
0262e40
Add PPP
Mnsd05 Apr 5, 2023
4e14258
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T15-3/tp …
Mnsd05 Apr 5, 2023
0cae84f
Update regex for commands
Mnsd05 Apr 5, 2023
427231b
Change tests for new regex
Mnsd05 Apr 5, 2023
f077146
Merge pull request #136 from Mnsd05/PPP
alexgoexercise Apr 5, 2023
b1019b3
Rename PPP
Mnsd05 Apr 6, 2023
c839a1d
Merge pull request #137 from Mnsd05/PPP
Mnsd05 Apr 6, 2023
f251477
Add edit budget for category
Mnsd05 Apr 6, 2023
6d6a7ca
Add search to command summary
mingyuannus Apr 7, 2023
afaf01e
Add search command to help message
mingyuannus Apr 7, 2023
95dcd69
Merge branch 'master' of https://github.com/mingyuannus/tp
mingyuannus Apr 7, 2023
2c5561c
Fix handling of missing search parameters
mingyuannus Apr 7, 2023
6367020
Add PPP
mingyuannus Apr 7, 2023
d5fa09b
Remove unused import
mingyuannus Apr 7, 2023
0c60242
Update help command test
mingyuannus Apr 7, 2023
16d4be9
Merge pull request #138 from mingyuannus/master
mingyuannus Apr 7, 2023
13fc6e3
Fix bugs for large negative numbers
Mnsd05 Apr 7, 2023
bf9c012
Fix checkstyle
Mnsd05 Apr 7, 2023
4efab36
Improve search functionality
mingyuannus Apr 7, 2023
514fe9f
Improve code formatting
mingyuannus Apr 7, 2023
ce6936b
Improve search print output
mingyuannus Apr 7, 2023
ec1c53d
Update import statements
mingyuannus Apr 7, 2023
9128dcf
Merge pull request #139 from mingyuannus/master
mingyuannus Apr 7, 2023
59b2c34
Add javadocs to search command methods
mingyuannus Apr 7, 2023
761b3c2
Merge branch 'AY2223S2-CS2113-T15-3:master' into master
mingyuannus Apr 7, 2023
8841d44
Merge pull request #140 from mingyuannus/master
mingyuannus Apr 7, 2023
0dfaa08
Fix recurring events
Mnsd05 Apr 7, 2023
e7b7929
update reminders and storage
Toh-HongFeng Apr 7, 2023
74cc409
Merge pull request #4 from Toh-HongFeng/branch-debug
Mnsd05 Apr 7, 2023
417cdeb
Update tests
Mnsd05 Apr 7, 2023
9dde2ad
Update UG
Mnsd05 Apr 7, 2023
a2c7487
Merge branch 'master' into branch-fix-bugs
Mnsd05 Apr 7, 2023
fc19df2
Fix checkstyle
Mnsd05 Apr 7, 2023
54986da
Merge pull request #133 from Mnsd05/branch-fix-bugs
Toh-HongFeng Apr 8, 2023
87451e7
Add tests for search
mingyuannus Apr 8, 2023
e5aa42e
Update search tests
mingyuannus Apr 8, 2023
4f85878
Removed unused impor
mingyuannus Apr 8, 2023
efc7453
Update search tests
mingyuannus Apr 8, 2023
82d6dd1
Update search tests again
mingyuannus Apr 8, 2023
806c3ed
Update search tests again again
mingyuannus Apr 8, 2023
e99729a
Update search tests actual
mingyuannus Apr 8, 2023
0faf93d
Fix imports for UI
mingyuannus Apr 8, 2023
868ca71
Merge pull request #141 from mingyuannus/master
mingyuannus Apr 8, 2023
5279972
Add header to user guide
mingyuannus Apr 8, 2023
c258099
Add title to user guide
mingyuannus Apr 8, 2023
ddfc769
Add table of contents to developer guide
mingyuannus Apr 8, 2023
cec30e2
Refactor user guide header to match dev guide
mingyuannus Apr 8, 2023
df8dbec
Remove div tag to try to fix formatting
mingyuannus Apr 8, 2023
48c8726
Upload class diagram for command and parser
mingyuannus Apr 8, 2023
87064b6
Add class diagram for command and parser
mingyuannus Apr 8, 2023
c07eff6
Upload puml file for command parser class diagram
mingyuannus Apr 8, 2023
c6e69db
Delete old command parser class diagram
mingyuannus Apr 8, 2023
ecc549e
Upload new command parser class diagram
mingyuannus Apr 8, 2023
c88f485
Update dev guide to new command parser uml diagram
mingyuannus Apr 8, 2023
b3a4d68
Update user guide to reflect new search functions
mingyuannus Apr 8, 2023
56ee29a
Merge pull request #142 from mingyuannus/master
mingyuannus Apr 8, 2023
398dc47
Add the PPP
alexgoexercise Apr 8, 2023
a800a20
Ammend some sections of the DG and UG
alexgoexercise Apr 8, 2023
2f31d2f
Merge pull request #143 from alexgoexercise/Update_Alex_PPP
alexgoexercise Apr 8, 2023
cb41d00
Refactor Moneymind
Mnsd05 Apr 8, 2023
f8bd2a7
Add Javadoc for exceptions
Mnsd05 Apr 8, 2023
16a4c52
Add Javadoc and refactor
Mnsd05 Apr 8, 2023
ec57486
Fix checkstyle
Mnsd05 Apr 8, 2023
54eb157
Modify to make constants more descriptive
Mnsd05 Apr 8, 2023
2569a86
Merge pull request #144 from Mnsd05/branch-fix-bugs
alexgoexercise Apr 8, 2023
195201f
Update UG
Mnsd05 Apr 8, 2023
20e7793
tidy up the view command
alexgoexercise Apr 8, 2023
08d4868
Create a summary command for better user experience
alexgoexercise Apr 8, 2023
ceaefe1
update the UG and allign the formatting of help message
alexgoexercise Apr 8, 2023
a5c7ff5
make sure the length of lines of code do not exceed 120
alexgoexercise Apr 8, 2023
01a682f
fix the line length * 2
alexgoexercise Apr 8, 2023
04e0068
update all the tests
alexgoexercise Apr 8, 2023
8ea3487
fix line length
alexgoexercise Apr 8, 2023
70cd84e
Ammend the tests
alexgoexercise Apr 8, 2023
38047d1
Merge pull request #146 from alexgoexercise/TidyUp_Code
alexgoexercise Apr 8, 2023
c868fad
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T15-3/tp …
Mnsd05 Apr 9, 2023
06ebf3a
Refactor
Mnsd05 Apr 9, 2023
e1866bb
Merge pull request #147 from Mnsd05/branch-fix-bugs
Mnsd05 Apr 9, 2023
b018bd9
Add warning when total expense exceed budget in view command
Mnsd05 Apr 9, 2023
73b8ee3
Update PPP
mingyuannus Apr 9, 2023
92f82a2
Modify tests
Mnsd05 Apr 9, 2023
e4d8ba9
Merge pull request #149 from mingyuannus/master
mingyuannus Apr 9, 2023
a31955c
reduce the number of magic numbers in parser class by using constants
alexgoexercise Apr 9, 2023
0efed4c
Merge pull request #150 from alexgoexercise/Reduce_Magic_Numbers
alexgoexercise Apr 9, 2023
ac1e84e
Merge pull request #148 from Mnsd05/branch-fix-bugs
alexgoexercise Apr 9, 2023
06817c3
Update instructions for manual testing
Mnsd05 Apr 9, 2023
2fd475e
Merge branch 'branch-fix-bugs' into branch-dg
Mnsd05 Apr 9, 2023
c7b45aa
Update PPP
Mnsd05 Apr 9, 2023
f420643
Merge pull request #151 from Mnsd05/branch-dg
Mnsd05 Apr 9, 2023
f405753
Update PPP
Mnsd05 Apr 9, 2023
d069534
Adjust size of diagram
Mnsd05 Apr 9, 2023
5d86c98
Merge pull request #153 from Mnsd05/branch-dg
Mnsd05 Apr 9, 2023
db47fb6
Delete this one extra line in UG
alexgoexercise Apr 10, 2023
377e81e
Merge pull request #154 from alexgoexercise/Ammend_UG
alexgoexercise Apr 10, 2023
b0cac09
Revert "Delete this one extra line in UG"
Toh-HongFeng Apr 10, 2023
551ecda
Merge pull request #155 from AY2223S2-CS2113-T15-3/revert-154-Ammend_UG
Toh-HongFeng Apr 10, 2023
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ bin/

/text-ui-test/ACTUAL.TXT
text-ui-test/EXPECTED-UNIX.TXT
EventList.txt
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "interactive"
}
8 changes: 6 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ test {
}

application {
mainClass = "seedu.duke.Duke"
mainClass = "seedu.moneymind.Moneymind"
}

shadowJar {
archiveBaseName = "duke"
archiveBaseName = "moneymind"
archiveClassifier = null
}

Expand All @@ -44,3 +44,7 @@ checkstyle {
run{
standardInput = System.in
}

run{
enableAssertions = true
}
13 changes: 6 additions & 7 deletions docs/AboutUs.md
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://avatars.githubusercontent.com/u/88603534?s=400&u=3007dc79299805aa3b8f71aeb61899ea9fb64f6e&v=4) | Zhao Lixiuqi | [Github](https://github.com/alexgoexercise) | [Portfolio](docs/team/Zhao_Lixiuqi.md)
![](https://via.placeholder.com/100.png?text=Photo) | Toh Hongfeng | [Github](https://github.com/Toh-HongFeng) | [Portfolio](docs/team/tohhongfeng.md)
![](https://via.placeholder.com/100.png?text=Photo) | Li Mingyuan | [Github](https://github.com/mingyuannus) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Nguyen Duc Thang | [Github](https://github.com/Mnsd05) | [Portfolio](docs/team/johndoe.md)
261 changes: 246 additions & 15 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,269 @@
# Developer Guide
<div align="center">
<h2> MoneyMind Developer Guide</h2>
<h3> "Mind your Money" </h3>
</div>

<div align="left">

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For some reason, the formatting goes haywire from this point onwards.
image

## Acknowledgements

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

The text formatting is not showing up. Might be because there are no newlines.


{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}

## Design & implementation
## Design
Comment on lines 16 to +20

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the markdown failed to render as expected from acknowledgements onwards. Consider checking your markdown before it might be potentially reviewed by anyone in the future.


{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}

### Architecture

<img src="images\ArchitectureDiagram.png" width="300" />

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Architecture Diagram is clear and concise and allows reader to follow easily. Look good!


Comment on lines +25 to +27

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General architecture provides a relevant overview of how the main classes are connected in this program. Well done.
image

The ***Architecture Diagram*** given above explains the high-level design of the App.

Given below is a quick overview of how each component interact with each other.

The main components in the architecture are:

* `MoneyMind`: The main program of the application,
it initializes the other components in the correct sequence and is responsible for shut down the application.
* `UI`: The user interface of the application.
* `Storage`: The storage of data of the application.
* `Data`: The data classes used in the application, including Event, Category and CategoryList.
* `Command`: The command of the application, including AddCommand, DeleteCommand, ListCommand, etc.

<img src="images\ArchitectureSequence.png" width="500" />

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems the <> sections are constructors.
Try using Parser -> EventCommand**: <> for constructors in plantUML

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought this sequence diagram is well done in conveying the idea 👍but there are a few notation mistakes.

  1. The entities should have an additional : to denote an unnamed instance of the classes.
  2. The entities that are constructors should have its activation bar directly connected to the instance. e.g. EventCommand is constructed by Parser.
  3. Instead of using <<create>> to signify the creation of an entity of the class, it is better to instantiate using Class(). An example will be from the textbook below:
    image

However, minor issue is the colour of the Data class makes it hard to see the return after a Data is created.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
I think its better if the activation bar is unbroken and looks something like this:
image

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Colour coding the different activation bars makes the sequence diagram much more readable. Also, should there be a return arrow to the user at the end?


Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Missing colons in your sequence diagram entities.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
There's a way to turn off the entities at the bottom, try to follow the notations used in our class as close as possible.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Unfinished business in this part

The *sequence diagram* above shows how the components interact with each other for the scenario
where the user issues the command `event buy lunch e/10`.
Comment on lines +43 to +44

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it might be clearer if you label the command() method instead of the user input "event buy lunch e/10" as described in the notes.


The following sections will explain the architecture in more detail.

### Storage component

**API**: `Storage.java`

<img src="images\Storage.png" width="500">

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know if the earlier led to this class diagram being sized wrongly, thus it is a little hard to read. (need to zoom in)
image

Also, the attributes should be +, -, # and ~ instead of the icons PlantUML sets for you. (my group has also fallen into this trap)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are event and category empty classes? That part is abit unclear. Also, this image is much too small.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for methods, consider expressing them in the form of :

  • methodName(parameterName : parameterType) : returnType

apart from that I'm not too sure if the <> statements on association arrows are considered valid notation

However, I do like the effort put into making such a detailed class diagram 💯

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with the earlier comments, many of the diagrams are sized a bit to small and can be hard to read. You can consider indicating the return type of the different methods as well.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with the comments mentioned. Can consider checking with Prof or TAs regarding using <<>> statements as labels on the arrows. Otherwise good effort in representing the class diagram for Storage class.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Some issues in this part of your class diagram:

  1. The non-standard representation/syntax is used in your class diagram (e.g., the (C) icon, the visibility)
  2. The way the methods is written inside the diagram
  3. Consider using associations to represent the attributes

Similar issues also apply to other parts of the diagram

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
We don't use dependencies for imports


The `Storage` component,
* can save category and event data in txt format, and read it back. (txt format is chosen because it is human readable)
* depended on by `CategoryList.java` and `CategoryCommand.java` to load data to ArrayList and HashMap, and takes in an ArrayList of Category objects as parameter to save data.

When the user first starts the application:<br>
<img src="images\StorageSequenceDiagram.png" width="500"><p>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand the usage for the critical path for this storage sequence diagram. Upon googling, the critical notation is to denote that only one thread can execute that path. May I ask what this means in the context of your tp? Is there any multi-threading taking place?

Comment on lines +53 to +59

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can I clarify the need for an critical path, maybe you can further elaborate on it more in your developers guide.

When the program is running:<br>
<img src="images\StorageRunSequenceDiagram.png" width="500"><p>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The notation here is very accurate! 👍

However, why not create a new diagram for the critical process? this would greatly simplify the current diagram

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Return labels and method labels are very clear. No major issues seen on this current sequence diagram. However you can consider generating an activation bars when you methods for a clearer representation given there will not be many activation bars currently.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Might be clearer if activation bars are added at the end of the arrow heads under the ReadFromFile, StringToCategory etc classes


### Commands component

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the command component, why not include the explanation from line 87 to line 92?


**API**: `Command.java`

{UML class diagram}

The `Command` component,
* can execute different commands, such as adding category, adding event, deleting category, deleting event, viewing category, viewing event
* depends on `CategoryList.java`, `CategoryCommand.java`, `Event.java`, `Parser.java` to execute the commands.

### Parser component

**API**: `Parser.java`

{UML class diagram}

The `Parser` component,
* can parse the user input and process it to the correct format
* depends on `CategoryList.java`, `CategoryCommand.java`, `Event.java`, `Command.java` to execute the commands.

## Implementation

### Parser component

The Parser class contains several private methods, each of which is responsible for creating a specific type of Command

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While there are great details in this explanation, why not express this validation process with a sequence diagram instead?

object based on the user input. Each method takes in an array of strings as an argument, which contains
the user input split into keyword and the content. The method then checks the first word in the array to determine which
type of Command object to create. If the first word matches a specific keyword (e.g. "bye"), the corresponding Command
object is created and returned. If the keyword is not recognized, an InvalidCommandException is thrown. Some methods
also perform additional checks on the input string to ensure that it is formatted correctly. If the input is in correct
format, the corresponding Command object is created and returned. Otherwise, an InvalidCommandException is thrown.

### Commands component

The Command class is an interface that is implemented by all the different types of Command objects. It contains methods
that are common to all Command objects, such as execute() and isExit(). The execute() method contains the logic to
perform certain tasks and is called when the Command object is to be executed. The isExit() method is called to
check if the Command object is an ExitCommand object, which signals the end of the program.

## Product scope
### Exceptions component

The Exceptions class contains several types of custom Exception objects that are thrown when the user input is not
in the correct format.

### Category component

The components use arraylist to store events for each category and
store all categories in a category list.

### Event component

The components implement event class to store the information of each event.

## Appendix A: Product Scope
### Target user profile

{Describe the target user profile}
-------------------------
<div align="center">
<img src="images\NUS_Students.png" width="300" />
</div>

* **Name**: NUS Student
* **Age**: 18-25 years old
* **Occupation**: Student
* **Education**: Currently enrolled in NUS
* **Income**: Limited income sources (part-time jobs, allowances from parents, etc.)
* **Technology usage**: Tech-savvy and comfortable using a CLI-based application
* **Interests**: Campus life, budgeting, saving, optimizing spending
* **Financial goals**: Prioritize spending, cut down on unnecessary expenses, improve financial health
* **Challenges**: Limited income, lack of financial knowledge, lack of financial discipline
* **Needs**: A simple, easy-to-use application to help manage expenses and track spending habits

Overall, NUS Student is a financially-conscious individual who wants to prioritize spending and save for the future while
enjoying a good campus life. They are comfortable with technology and prefer an efficient and easy-to-use tool like MoneyMind
to manage their finances. They are interested in tracking their expenses by category and exploring new ways to
optimize their spending to achieve their financial goals.

### Value proposition

{Describe the value proposition: what problem does it solve?}

## User Stories
## Appendix B: User Stories

| Version | As a ... | I want to ... | So that I can ... |
|-----|------|--------------------------------------------------------------------------------------------------------|------------------------------------------------------------|
| v1.0 | user | **add** an one time expense | keep track of how much I spend |
| | user | **delete** a one time expense | ammend the record in case I add the wrong expense |
| | user | **categorize** my expenses into different categories such as food, transportation, entertainment, etc. | better understand where my money is going |
| v2.0 | user | **edit** one time expenses | change when I type wrongly |
| | user | **search** for specific expenses by keyword or date range | easily find and review my past spending |

## Appendix C: Non Functional Requirements

1. MoneyMind should work on any mainstream OS as long as it has Java 11 or above installed.
2. The user is expected to be a fast-typer. MoneyMind is not optimised for users that are not
used to CLI applications.
3. The user is expected to have a good habit of constantly and systematically recording their
expenses. MoneyMind is not optimised for users that only record their expense on ad-hoc basis.
4. Other than the above, please enjoy using MoneyMind!

## Appendix D: Glossary

* *budget* - A budget is a financial plan that outlines an individual's or
organization's expected income and expenses over a specific period of time.
In context given, the budget here is scaled down to NUS students' expenses over
different categories.
Budgets can typically include categories for different types of expenses,
such as housing, transportation, food, entertainment, and savings.
* *expense* - An expense is the cost incurred by an organization or individual.
In context given, the expense here is scaled down to NUS students' spending over
different events that they are engaged in.
* *event* - An event is a specific occurrence of expenses that is planned or occurs.
It can be a one time expense like buying a pair of sneakers or recurring expenses like
electricity bills.
* *category* - A category is a group of events that are related to each other. For example,
food, transportation, entertainment, etc.
* *one time expense* - An expense that occurs only once.
* *recurring expense* - An expense that occurs repeatedly, in the context of MoneyMind, the
frequency is set to monthly.

## Appendix E: Instructions for Manual Testing

First type
```
category food b/200
```

Expected:
```
New category added: food
```

Then type
```
event buy salad e/12
```

Expected:
```
Please select the category you want to add the event to:
```

Then type
```
1
```

Expected:
```
New event added: buy salad
```

Then type
```
edit c/food e/1
```

Expected:
```
The current event expense for buy salad is: 12
Your new expense would be:
```

Then type
```
100
```

Expected:
```
Ok, the new expense is now changed to: 100
```

Then type
```
view
```

Expected:
```
1.food (budget: 200)
buy salad [expense]100
```

|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|
Then type
```
delete c/food
```

## Non-Functional Requirements
Expected:
```
Category deleted: food
```

{Give non-functional requirements}
Then type
```
view
```

## Glossary
Expected:
```
There are no categories to view
```

* *glossary item* - Definition
Then type
```
bye
```

## Instructions for manual testing
Expected:
```
Bye. Hope to see you again soon!
```

{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing}
</div>
6 changes: 3 additions & 3 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Duke
# MoneyMind

{Give product intro here}
MoneyMind is a desktop application for managing your finances, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, MoneyMind can get your finance management tasks done faster than traditional GUI apps.

Useful links:
To get to know more about MoneyMind, here are the useful links:
* [User Guide](UserGuide.md)
* [Developer Guide](DeveloperGuide.md)
* [About Us](AboutUs.md)
Loading