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-W14-1] W14G1 (WIAGI) #21

Open
wants to merge 921 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
921 commits
Select commit Hold shift + click to select a range
3a636a1
Edit total to be rounded
TPH777 Nov 7, 2024
7547ce0
Fix assertion bug
TPH777 Nov 7, 2024
244502b
Merge branch 'bug' of https://github.com/TPH777/tp into bug
TPH777 Nov 7, 2024
c90a10e
Update load storage sd
TPH777 Nov 7, 2024
0d6aae0
Update load storage sd
TPH777 Nov 7, 2024
9cdef0c
Add | to the restrict character
TPH777 Nov 7, 2024
a241e93
Update command class diagram to show total attribute of lists
wx-03 Nov 7, 2024
b9a95fc
Merge pull request #176 from TPH777/bug
NigelYeoTW Nov 7, 2024
d4a8369
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
NigelYeoTW Nov 7, 2024
025d207
Merge pull request #175 from wx-03/ug-dg
NigelYeoTW Nov 7, 2024
e26e229
Merge pull request #167 from NigelYeoTW/branch-ug
wx-03 Nov 7, 2024
601e9f4
Refactor dg
wx-03 Nov 7, 2024
751f770
Update overallClass.drawio
wongwh2002 Nov 7, 2024
ca9b6d9
Merge pull request #185 from wx-03/ug-dg
NigelYeoTW Nov 7, 2024
6c27ddc
Fix sd for printWeekly
wx-03 Nov 7, 2024
b0984c6
Merge branch 'master' into ug-dg
wx-03 Nov 7, 2024
a0af2c5
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 7, 2024
5fce723
Update addCommandSequence.drawio
wongwh2002 Nov 7, 2024
7b967a6
Update addCommandSequence.drawio
wongwh2002 Nov 7, 2024
9aed966
Update addCommandSequence.drawio
wongwh2002 Nov 7, 2024
c0f8697
Merge branch 'master' into Branch-DG-overallCD
wongwh2002 Nov 7, 2024
dad1f83
Add future plan
wx-03 Nov 7, 2024
d122d15
Update overallClass.drawio
wongwh2002 Nov 7, 2024
4485382
Update addCommandSequence.drawio
wongwh2002 Nov 7, 2024
0e08e3b
Update overallClass.drawio
wongwh2002 Nov 7, 2024
c5c99a2
Update addCommandSequence.drawio
wongwh2002 Nov 7, 2024
a504bac
Added overallClass.drawio.png
wongwh2002 Nov 7, 2024
ffec130
Update overallClass.drawio
wongwh2002 Nov 7, 2024
93241bd
Added addCommandSequence.drawio.png
wongwh2002 Nov 7, 2024
5dc596d
Update addCommandSequence.drawio
wongwh2002 Nov 7, 2024
5d4a8f7
Edit recurrence for DG
NigelYeoTW Nov 7, 2024
cfdd32c
Update overallClass.drawio
wongwh2002 Nov 7, 2024
b2a994a
Added overallClass.png
wongwh2002 Nov 7, 2024
bfc009c
Edit broken links
NigelYeoTW Nov 7, 2024
0017db2
Merge pull request #186 from wx-03/ug-dg
NigelYeoTW Nov 7, 2024
cd5cd0d
Edit sd for storage
TPH777 Nov 7, 2024
d1c73bb
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 7, 2024
f556cb9
Update addCommandSequence.drawio
wongwh2002 Nov 7, 2024
d0d6712
Added addCommandSequence.png
wongwh2002 Nov 7, 2024
c072905
Update SD in developer guide
TPH777 Nov 7, 2024
fc6d33b
Update addCommandSequence.drawio
wongwh2002 Nov 7, 2024
e8c24ca
Added addCommandSequence.png
wongwh2002 Nov 7, 2024
5ce0f6e
Merge pull request #187 from NigelYeoTW/branch-dg
TPH777 Nov 7, 2024
4dbb817
Fix SDs
wx-03 Nov 7, 2024
f417dbc
Merge branch 'master' into ug-dg
wx-03 Nov 7, 2024
c8b6ffe
Merge pull request #188 from TPH777/dg
wx-03 Nov 7, 2024
fff2eb3
Merge branch 'master' into ug-dg
wx-03 Nov 7, 2024
b745deb
Fix error in ug involving amount limit
TPH777 Nov 7, 2024
814b51d
Fix merge conflicts
rharwood3643 Nov 7, 2024
f778c76
Merge pull request #189 from wx-03/ug-dg
NigelYeoTW Nov 7, 2024
945dd24
Fix minor issues
rharwood3643 Nov 7, 2024
53ec95d
Fix bug in backlog ui logic
TPH777 Nov 7, 2024
b95a168
Added UG, PPP, DG
wongwh2002 Nov 7, 2024
2015164
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 7, 2024
86d06b0
Merge pull request #154 from rharwo/misc
NigelYeoTW Nov 7, 2024
ea75463
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 7, 2024
33c9ce9
Merge pull request #191 from TPH777/dg
NigelYeoTW Nov 7, 2024
5022f2f
Merge remote-tracking branch 'upstream/master' into Branch-DG-overallCD
wongwh2002 Nov 7, 2024
c7d5320
Merge pull request #190 from wongwh2002/Branch-DG-overallCD
NigelYeoTW Nov 7, 2024
baf911a
edit UG DG
wongwh2002 Nov 7, 2024
143edcc
Merge pull request #192 from wongwh2002/Branch-DG-overallCD
NigelYeoTW Nov 7, 2024
406b80f
Fix bug involving two and more words tag
TPH777 Nov 9, 2024
18bf35c
Change category to field for non-incomes/spendings attribute
TPH777 Nov 9, 2024
e88ed21
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 9, 2024
d27accc
Fix bug involving | in description for add
TPH777 Nov 9, 2024
7cc3ddc
Change time range message phrasing
wx-03 Nov 9, 2024
8695ff1
commit for #228 and #226
wongwh2002 Nov 9, 2024
b474d8b
Fix junit tests for listcommand
wx-03 Nov 9, 2024
8388dce
commit for #195 and #225
wongwh2002 Nov 9, 2024
2f8dce3
Fix password errors
NigelYeoTW Nov 9, 2024
91a6e84
commit for #213
wongwh2002 Nov 9, 2024
6ed2479
commit for #213 and #212
wongwh2002 Nov 9, 2024
9382c41
commit for #209 # 208
wongwh2002 Nov 9, 2024
6337c19
commit for #209, #208
wongwh2002 Nov 9, 2024
c2bdbf4
commit for #201, testing for
wongwh2002 Nov 9, 2024
94e7b95
commit for #201, testing for #200, second half done for #199
wongwh2002 Nov 9, 2024
52b7d2b
commit for #196, #194
wongwh2002 Nov 9, 2024
4bd8fba
commit for #196, #194, #193
wongwh2002 Nov 9, 2024
4eb67f2
Change time range message phrasing, show date range when listing
wx-03 Nov 9, 2024
16bf270
commit for #200 and #199
wongwh2002 Nov 9, 2024
5d851d2
Fix bug for list tags to be case insensitive
TPH777 Nov 9, 2024
83327b2
Update junit tests
wx-03 Nov 9, 2024
37e670a
Remove saving data line
wx-03 Nov 9, 2024
9606949
Storage Check
wongwh2002 Nov 9, 2024
be445d9
Merge pull request #231 from wongwh2002/Branch-DG-overallCD
wx-03 Nov 9, 2024
be9e128
Merge branch 'master' into ped-bugs
wx-03 Nov 9, 2024
751e1b6
Fix bugs by making find exceptions more specific
TPH777 Nov 9, 2024
8e78f98
Add junit test for new exception for find
TPH777 Nov 9, 2024
2a3fd90
Improve naming of variables
TPH777 Nov 9, 2024
25018f5
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 9, 2024
64e4116
LoadStorageCheck test
wongwh2002 Nov 9, 2024
bf1d734
LoadStorageCheck test
wongwh2002 Nov 9, 2024
7ac92fe
Improve code readability by extracting code
TPH777 Nov 9, 2024
d6657c1
Add exceptions for invalid range format
TPH777 Nov 9, 2024
3817d1a
Edit name of exceptions to improve readability
TPH777 Nov 9, 2024
bdfbc3c
LoadStorageCheck test
wongwh2002 Nov 9, 2024
7168646
LoadStorageCheckTest and IncomeListStorageTest
wongwh2002 Nov 9, 2024
61355eb
Add budget limitations and tests
NigelYeoTW Nov 9, 2024
38dc97b
Rename constants, rephrase option 3
wx-03 Nov 9, 2024
ed922b0
Change within to for
wx-03 Nov 9, 2024
b553f15
Fix github filewriter issue
NigelYeoTW Nov 9, 2024
0663eea
refactor out code
NigelYeoTW Nov 9, 2024
c0c142a
Clean up code
NigelYeoTW Nov 9, 2024
fa93069
Add more test for coverage
NigelYeoTW Nov 9, 2024
337a8ac
Remove magic literals by using constants
TPH777 Nov 9, 2024
8cd5484
Add help command test
NigelYeoTW Nov 9, 2024
57147fc
Fix checkstyle issues
NigelYeoTW Nov 9, 2024
253e509
Add budget test cases to increase coverage
NigelYeoTW Nov 9, 2024
4c1843d
Minor edit to remove unused throw
NigelYeoTW Nov 9, 2024
dac18f3
Renamed Tests
wongwh2002 Nov 10, 2024
9c1955e
solve CI
wongwh2002 Nov 10, 2024
1c2714a
Add NFR, Use cases, Manual testing
NigelYeoTW Nov 10, 2024
bfdfe18
Merge pull request #233 from wongwh2002/Branch-StorageTest
NigelYeoTW Nov 10, 2024
4bc8f31
Edit manual testing
NigelYeoTW Nov 10, 2024
93aa63d
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
NigelYeoTW Nov 10, 2024
28530e5
Edit ug and ppp
NigelYeoTW Nov 10, 2024
d4b9e92
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 10, 2024
aabc98e
Remove magic strings and numbers
NigelYeoTW Nov 10, 2024
029b920
Update docs/UserGuide.md
NigelYeoTW Nov 10, 2024
35ffd4a
Edit according to suggestions
NigelYeoTW Nov 10, 2024
e513e89
Merge branch 'branch-ug' of https://github.com/NigelYeoTW/tp into bra…
NigelYeoTW Nov 10, 2024
4b8ae11
Minor edit and rephrasing for better english
NigelYeoTW Nov 10, 2024
77c89be
Standardise add command test
TPH777 Nov 10, 2024
8aa8259
Merge pull request #240 from NigelYeoTW/branch-ug
wx-03 Nov 10, 2024
24a2637
Use missingParams exceptions properly
TPH777 Nov 10, 2024
c7ecdeb
Standardise test format and remove magic literals
TPH777 Nov 10, 2024
4afb7d2
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 10, 2024
ac2293b
Edit PPP
TPH777 Nov 10, 2024
75dd1f7
Replace all occurence of LocalDate.now() to TODAY
TPH777 Nov 10, 2024
e322d23
Edit according to comments
NigelYeoTW Nov 10, 2024
e6dadff
Fix according to comments
NigelYeoTW Nov 10, 2024
a9b861f
Merge pull request #232 from wx-03/ped-bugs
wongwh2002 Nov 10, 2024
f77b251
Merge pull request #235 from NigelYeoTW/branch-ped
wongwh2002 Nov 10, 2024
17ade99
Add PPP
wx-03 Nov 11, 2024
ed3583f
Change time range options in DG
wx-03 Nov 11, 2024
52d3ebb
TOC
wx-03 Nov 11, 2024
4ecebbe
Merge pull request #237 from NigelYeoTW/branch-dg-appendix
TPH777 Nov 11, 2024
fe30713
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 11, 2024
248203b
Clean code further from previous merge conflicts
TPH777 Nov 11, 2024
9872370
Add javadocs for Ui and commands
wx-03 Nov 11, 2024
960c983
Rename constants to improve code readability
TPH777 Nov 11, 2024
6f27ea8
Remove magic literals
TPH777 Nov 11, 2024
9e53ddc
Fix PPP links
wx-03 Nov 11, 2024
4c8ee2b
Edit login for user guide
TPH777 Nov 11, 2024
2298d5e
Fix bug in initialise budget
TPH777 Nov 11, 2024
989496e
Fix wrong exception message in budget initialisation
TPH777 Nov 11, 2024
3d8b622
Rename method to be more specific
wx-03 Nov 11, 2024
1cb0f72
Fix bugs from previous bug fix
TPH777 Nov 11, 2024
c2a7dfa
Fix checkstyle
wx-03 Nov 11, 2024
76a317e
Merge branch 'master' into others
wx-03 Nov 11, 2024
ac75ff2
javadoc LoadStorageCheck
wongwh2002 Nov 11, 2024
2f18f65
Line wrapping
wx-03 Nov 11, 2024
0e02dbd
Full name
wx-03 Nov 11, 2024
485ec80
PPP
wongwh2002 Nov 11, 2024
7101481
Merge pull request #242 from wx-03/others
wongwh2002 Nov 11, 2024
7e8d666
Merge remote-tracking branch 'upstream/master' into Branch-PPP
wongwh2002 Nov 11, 2024
b29d15e
Fix test expected output
TPH777 Nov 11, 2024
7a80a36
Edit help and unknown command test
TPH777 Nov 11, 2024
65a4ee0
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 11, 2024
3266931
Merge pull request #230 from TPH777/bug
NigelYeoTW Nov 11, 2024
6ee9821
JavaDoc
wongwh2002 Nov 11, 2024
51fd2ae
JavaDoc
wongwh2002 Nov 11, 2024
00b8158
Merge remote-tracking branch 'upstream/master' into Branch-PPP
wongwh2002 Nov 11, 2024
d2a5073
Add sorting of spendings and incomes on editing of entry
rharwood3643 Nov 11, 2024
514966e
Merge pull request #248 from rharwo/edit-bug
NigelYeoTW Nov 11, 2024
60ecb9a
Change list incomes to list income and list spendings to list spending
wx-03 Nov 11, 2024
d6d6ca7
Add minimum date limit
TPH777 Nov 11, 2024
702f337
Update ug to match changes
TPH777 Nov 11, 2024
51c5965
Improve test coverage
wongwh2002 Nov 11, 2024
e73b677
Merge pull request #252 from TPH777/minDate
NigelYeoTW Nov 11, 2024
4e04b89
Edit junit tests, catch nosuchelement in main loop, print stuff
wx-03 Nov 11, 2024
ef2dca1
Check that double is double
wx-03 Nov 11, 2024
f324daa
resolve parse double bug, resolve line number
wongwh2002 Nov 11, 2024
d306936
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp
wx-03 Nov 11, 2024
2def452
Change logic of exceptions for budget
TPH777 Nov 11, 2024
5cc5367
Merge pull request #251 from wx-03/master
NigelYeoTW Nov 11, 2024
4d419bf
resolve parse double bug, resolve line number
wongwh2002 Nov 11, 2024
eabb3eb
Merge pull request #253 from TPH777/bug
NigelYeoTW Nov 11, 2024
753c622
resolve parse double bug, resolve line number
wongwh2002 Nov 11, 2024
ac5e507
solve ci
wongwh2002 Nov 11, 2024
63f55c8
Move regex to roundamount
wx-03 Nov 11, 2024
fad80d5
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp
wx-03 Nov 11, 2024
cb3c706
Merge remote-tracking branch 'upstream/master' into Branch-PPP
wongwh2002 Nov 11, 2024
af8a6c2
Fix bug for deleted password and overspend for edit
TPH777 Nov 11, 2024
642636e
some edits for UG
NigelYeoTW Nov 11, 2024
5af5fdd
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
NigelYeoTW Nov 11, 2024
ed82689
Final edit for UG
NigelYeoTW Nov 11, 2024
8a7511e
Merge pull request #256 from NigelYeoTW/branch-final-ug
TPH777 Nov 11, 2024
8a12d03
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 11, 2024
fc01384
Solve minor error from pdf conversion
NigelYeoTW Nov 11, 2024
1cee0d8
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp
wx-03 Nov 11, 2024
6293e03
More edits for UG content
NigelYeoTW Nov 11, 2024
6fe1ae5
Merge pull request #257 from NigelYeoTW/branch-final-ug
TPH777 Nov 11, 2024
b0cb528
Update overallClass.drawio
wongwh2002 Nov 11, 2024
7846965
Added overallClass.png
wongwh2002 Nov 11, 2024
443e712
Fix typos
wx-03 Nov 11, 2024
afe667d
Rename filewriter
TPH777 Nov 11, 2024
7b17b9b
Update addCommandSequence.drawio
wongwh2002 Nov 11, 2024
12d6fc0
Added addCommandSequence.png
wongwh2002 Nov 11, 2024
d9b8552
Update addCommandSequence.drawio
wongwh2002 Nov 11, 2024
2211f4b
Added addCommandSequence.png
wongwh2002 Nov 11, 2024
07e9abd
last commit backup
wongwh2002 Nov 11, 2024
3fc9634
Merge remote-tracking branch 'origin/Branch-PPP' into Branch-PPP
wongwh2002 Nov 11, 2024
aa9e074
Final chnages to DG
NigelYeoTW Nov 11, 2024
eee0586
Fix SDs for recurrence
NigelYeoTW Nov 11, 2024
9e5ebd7
Merge pull request #258 from TPH777/bug
NigelYeoTW Nov 11, 2024
9e733cb
Fix CD for recurrence
NigelYeoTW Nov 11, 2024
698270f
Fix diagrams
wx-03 Nov 11, 2024
987c81a
Merge pull request #259 from NigelYeoTW/branch-final-dg
wx-03 Nov 11, 2024
66f5efc
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp
wx-03 Nov 11, 2024
11e0a99
Edit storage SD
TPH777 Nov 11, 2024
cef609c
Fix diagram
wx-03 Nov 11, 2024
729057f
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
TPH777 Nov 11, 2024
171fbd7
Update PPP
wx-03 Nov 11, 2024
e735f47
Update storage SD
TPH777 Nov 11, 2024
f7ec16e
fix printweekly sd
wx-03 Nov 11, 2024
5cc495f
Edit SD arrows
TPH777 Nov 11, 2024
97bf2b8
Merge pull request #254 from wx-03/master
NigelYeoTW Nov 11, 2024
6a8df00
Remove height from img tag
TPH777 Nov 11, 2024
b9d68ee
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp …
NigelYeoTW Nov 11, 2024
a60d54c
Rename list income and list spending command
wx-03 Nov 11, 2024
0249e40
Merge pull request #260 from TPH777/bug
NigelYeoTW Nov 11, 2024
66b89da
Merge pull request #245 from wongwh2002/Branch-PPP
TPH777 Nov 11, 2024
ed102c9
Merge pull request #261 from wx-03/master
NigelYeoTW Nov 11, 2024
20296aa
Update PPP
wx-03 Nov 11, 2024
85c3c61
PPP
wx-03 Nov 11, 2024
be86582
Minor edits for final DG
NigelYeoTW Nov 11, 2024
735eca2
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp
wx-03 Nov 11, 2024
d8f2554
Merge pull request #262 from NigelYeoTW/branch-final-dg
TPH777 Nov 11, 2024
474956a
Merge pull request #263 from wx-03/master
TPH777 Nov 11, 2024
878412f
ppp
wx-03 Nov 11, 2024
b00d87b
Merge branch 'master' of https://github.com/AY2425S1-CS2113-W14-1/tp
wx-03 Nov 11, 2024
e9a90df
final final final UG
NigelYeoTW Nov 11, 2024
b7db6db
Merge pull request #264 from NigelYeoTW/branch-final-ug
TPH777 Nov 11, 2024
df431ef
Edit use cases in DG
NigelYeoTW Nov 11, 2024
f4d5c4a
Merge pull request #265 from wx-03/master
wongwh2002 Nov 11, 2024
370deb0
Update TOC
NigelYeoTW Nov 11, 2024
2789718
Merge pull request #266 from NigelYeoTW/branch-final-dg
TPH777 Nov 11, 2024
81bcbaa
Add author tag
rharwood3643 Nov 13, 2024
4bf1f16
Add author tag to help
rharwood3643 Nov 13, 2024
6927a71
Merge pull request #267 from rharwo/add-author-tags
rharwo Nov 13, 2024
fe326da
Update UG to explain time range in detail
wx-03 Nov 15, 2024
da75a41
Merge branch 'master' into ped-bugs
wx-03 Nov 15, 2024
6756bea
Put back assert
wx-03 Nov 15, 2024
9157ae2
Remove assertions
wx-03 Nov 10, 2024
0fb57f9
Change list command output to match examples below
wx-03 Nov 18, 2024
f853eab
Fix UG list time range
wx-03 Nov 18, 2024
56166eb
Update UG explanation
wx-03 Nov 18, 2024
43a22a9
Fix checkstyle
wx-03 Nov 18, 2024
0052e4a
Change \t to TAB
wx-03 Nov 9, 2024
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
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,30 @@
/out/
/*.iml

*.class
password.txt

# Gradle build files
/.gradle/
/build/
src/main/resources/docs/

*.class
password.txt

# MacOS custom attributes files created by Finder
.DS_Store
*.iml
bin/

/text-ui-test/ACTUAL.TXT
text-ui-test/EXPECTED-UNIX.TXT
text-ui-test/incomes.txt
text-ui-test/password.txt
text-ui-test/spendings.txt

**/MANIFEST.MF

/password.txt
incomes.txt
spendings.txt
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Duke project template
# WIAGI

This is a project template for a greenfield Java project. It's named after the Java mascot _Duke_. Given below are instructions on how to use it.

Expand Down
5 changes: 3 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ test {
}

application {
mainClass.set("seedu.duke.Duke")
mainClass.set("seedu.wiagi.Wiagi")
}

shadowJar {
archiveBaseName.set("duke")
archiveBaseName.set("wiagi")
archiveClassifier.set("")
}

Expand All @@ -43,4 +43,5 @@ checkstyle {

run{
standardInput = System.in
enableAssertions = true
}
14 changes: 7 additions & 7 deletions docs/AboutUs.md
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)
Name | Github Profile | Portfolio
------------:|:---------------------------------------:|:---------:
Weng Hong | [Github](https://github.com/wongwh2002) | [Portfolio](docs/team/weng.md)
Nigel Yeo | [Github](https://github.com/NigelYeoTW) | [Portfolio](docs/team/NigelYeo.md)
Wen Xi | [Github](https://github.com/wx-03) | [Portfolio](docs/team/wenxi.md)
Ryan Harwood | [Github](https://github.com/rharwo) | [Portfolio](docs/team/ryanharwood.md)
Tan Ping Hui | [Github](https://github.com/TPH777) | [Portfolio](docs/team/tanpinghui.md)
246 changes: 241 additions & 5 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,153 @@

## Acknowledgements

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

[Original Source](https://github.com/nus-cs2113-AY2425S1/tp)

## Design & implementation

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

Choose a reason for hiding this comment

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

Placeholder still here


## Overall Class Diagram
![overallClass.jpg](./Diagrams/overallClass.jpg)

Choose a reason for hiding this comment

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

Great strategy to leave out the irrelevant classes for a high level overview

Choose a reason for hiding this comment

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

I think since you are already omitting other classes for conciseness, i dont think its necessary and easier to read to include simple getter functions in the classes that you show here.

Choose a reason for hiding this comment

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

especially since this is to show the overall architecture this can be quite trivial

Choose a reason for hiding this comment

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

image
Is this the right way to add comments to your class diagram? You might want to put the note outside the box and then have a dotted line pointing to the note from the box

On a high level, whenever Wiagi is started, it will load SpendingList and IncomeList from Storage if it exists, else,
new lists would be created
Wiagi then takes in user input via the UI class, then parse and executes the command through the parser class.
The related output is printed through the UI class.
At the end of the run, or when the user exits the application, Wiagi will save the lists.

### Storage
To load data from previous session:
Within Wiagi constructor, Storage class is constructed, which will load and initialise incomes, spendings and
password by de-serialising the text at their distinct file paths. Wiagi will then initialise it incomes and spendings
based on the member in the Storage class.
![storageLoad.png](./Diagrams/storageLoad.png)

Choose a reason for hiding this comment

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

Will the unnamed instances of IncomeListStorage etc. be ready for garbage collection after the load is finished? If not, maybe add a comment on how they will be reused later.

Choose a reason for hiding this comment

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

There's a ref for login but there is no sd

Choose a reason for hiding this comment

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

Consider to adjust the background colour since the lifelines appear to be invisible.
Screenshot 2024-10-30 at 12 36 53


To save data for current session:
After the command bye is sent by the user, incomes and spendings will be serialised and overwrite texts in
their distinct file paths.
![storageSave.png](./Diagrams/storageSave.png)

### adding of new entry
![addCommandSequence.jpg](./Diagrams/addCommandSequence.jpg)
To add new entries, user will have to input the related commands.

Choose a reason for hiding this comment

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

image
The text is slightly buggy here. You might want to create a new line below the image

Wiagi will then parse the command to the AddCommand class.
The AddCommand class will then validate the user's input and add the input to IncomeList or SpendingList

### deleting of entry, editing of entry
The commands are similar where there would be a parsing of command to each of its individual classes.
A similar validation process takes place and actions would be made on IncomeList or SpendingList accordingly
(deleting entry from list for delete and editing of entry from list for edit)

### Recurrence Component

#### Motivation behind the component:</br>
Copy link

@paulktham paulktham Oct 30, 2024

Choose a reason for hiding this comment

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

the </br> is showing in the dg which i dont think was intended

+ Allows the user to set specific expenditure and incomes as recurring events to increase efficiency when using the
application
+ Users may have differing frequencies for recurring events thus application gives them a few common options

Illustrated below is the class diagram for the Recurrence Component:</br>
</br>

Choose a reason for hiding this comment

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

the </br> is showing here also which i dont think is intended

<img src="./Diagrams/recurrenceClassDiagram.png" alt="recurrenceClassDiagram" width="800"/>

Choose a reason for hiding this comment

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

image
can use an association arrow from Type class to RecurrenceFrequency class instead

Choose a reason for hiding this comment

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

Partly hard to reed the methods and attributes.

Choose a reason for hiding this comment

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

image
parseRecurrence() is a static method as seen later on in the DG, should that method be underlined in the class diagram?

Choose a reason for hiding this comment

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

image
font size a bit too small.

Choose a reason for hiding this comment

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

This diagram is really quite hard to read, especially with all the long and similar function names for daily monthly and yearly recurrence, maybe there are other ways you can display this nicer. or maybe split it up

Choose a reason for hiding this comment

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

image
If I understand correctly, Spending and Income inherits from Type. But what is Type? Perhaps there could be more clarity if the parent class had a proper name

</br>

Choose a reason for hiding this comment

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

image
Your line break does not show correctly in the DG. You might want to try something else

</br>
Illustrated below is the sequence diagram of the Recurrence Component: </br>
</br>
<img src="./Diagrams/recurrenceSequenceDiagram.png" alt="recurrenceSequenceDiagram" width="700"/>

Choose a reason for hiding this comment

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

Rectangles should be sharp border as curved border is non-standard. And use dotted lines instead of quotation
Screenshot 2024-10-30 at 12 57 13 PM

</br>
For the reference fragment of 'load from storage', refer to [Storage component](#storage). </br>
For the reference fragment of 'add recurring entry', refer to
[checkIncomeRecurrence / checkSpendingRecurrence](#checkincomerecurrence--checkspendingrecurrence-method) method. </br>


#### How the Recurrence Component works:</br>
+ Upon running the application by the user, `Storage` component will load the `IncomeList` and `SpendingList` members of
`Wiagi` to retrieve past data.
+ Both list are then iterated through. Each member of the list is parsed through `Parser` which returns the type of
recurrence it is (eg. `DailyRecurrence`, `null`) which is encapsulated as a `Recurrence` object.
+ If `Recurrence` is not `null` (ie. a recurring entry), it checks the entry and adds to the `SpendingList` and
`IncomeList` if needed. </br>

#### Implementation:
#### Recurrence class
The `Recurrence` class is a abstract class that provides the interface for checking `Income` and `Spending` and adding
recurring entries into the list. </br>

Choose a reason for hiding this comment

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


printed in DG webversion
image

The following are the abstract methods defined: </br>
+ `checkSpendingRecurrence`
+ `checkIncomeRecurrence`

The following are child classes of `Recurrence`:
+ `DailyRecurrence`: Handles entries labelled as daily recurring events
+ `MonthlyRecurrence`: Handles entries labelled as monthly recurring events
+ `YearlyRecurrence`: Handles entries labelled as yearly recurring events

##### parseRecurrence method
Class: `Parser` </br>

Choose a reason for hiding this comment

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

What do you mean here? Is it part of the Parser class? Why then is it located under the implementation of the Recurrence class?

Potentially you could help the reader understand the structure a bit more but not only relying on your class diagrams and sequence diagrams, but also by giving you test more structure.

Choose a reason for hiding this comment

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

I guess what you want to say with the 'class' label is in which classes it is used.

Simply change the naming then to make this more clear.

Method Signature: </br>
```
public static Recurrence parseRecurrence(Type entry)
```
Functionality: </br>
1. Takes in child class of `Type` (ie. `Spending`, `Income`)
2. Matches the `reccurenceFrequency` attribute with switch case to determine which `Recurrence` child to return
3. Returns `DaillyRecurrence`, `MonthlyRecurrence`, `YearlyRecurrence` or `null`(If not a recurring entry).

##### checkIncomeRecurrence / checkSpendingRecurrence method
Class: `DailyRecurrence`, `MonthlyRecurrence`, `YearlyRecurrence` </br>
Method Signature: </br>
```
@Override
public void checkIncomeRecurrence(Income recurringIncome, IncomeList incomes)
@Override
public void checkSpendingRecurrence(Spending recurringSpending, SpendingList spendings)
```
Below illustrates the functionality of the checkIncomeRecurrence method through a sequence diagram </br>
</br>
<img src="./Diagrams/addRecurrenceEntry.png" alt="addRecurrenceEntry" width="700"/> </br>

Choose a reason for hiding this comment

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

Instead of using the actual operators, potentially use what it intuitively means instead. (e.g. next recurrence is due).
This could help to reduce the complexity of the diagram.
image

Choose a reason for hiding this comment

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

I like that you used a note to explain CheckDate.
Maybe consider choosing a more descriptive variable name for CheckDate instead. Could help to improve the readability of the code and your diagrams because fewer additional comments or notes are relevant.

Note that recurrence frequency is either 1 day (daily), 1 month (monthly) or 1 year (yearly). </br>
Since checkSpendingRecurrence method follows the same sequence as checkIncomeRecurrence method, the diagram is omitted
for brevity.

Functionality: </br>
1. Checks `lastRecurred` attribute of `recurringIncome`/`recurringSpending` against the current date via `LocalDate.now`
2. According to the type of recurrence, check if enough time has passed between the 2 dates
3. Adds additional recurring entries into the `IncomeList`/`SpendingList` if needed.

##### updateRecurrence method
Class: `SpendingList`, `IncomeList` </br>
Method Signature:
```
public static Recurrence parseRecurrence(Type entry)
```
Functionality: </br>
1. Loops through its list and calls upon `Parser#parseRecurrence` to determine type of `Recurrence`
2. Calls upon `Recurrence#checkSpendingRecurrence` or `Recurrence#checkIncomeRecurrence` to update list if the new
recurring entry is supposed to be added

#### Here are some things to take note:
+ Entries are only added when user logs in, which is not determinable, thus many additional entries may be added at once
(eg. user last logged in 4 days ago with one daily recurring entry in the list. When the user logs in, 4 days of entries
will be backlogged and added). List is thus also sorted by date after recurrence is done.
+ Additional entries added by `Recurrence` are being set to not recurring events to prevent double recurring entries
added in the future
+ Recurring entries stores `dayOfRecurrence` to counter varying days in months. Below is a example scenario:
+ Monthly recurring entry dated at 31st August
+ Since September ends on the 30th, recurring entry is added on the 30 September and `lastRecurred` is stored as
30th September
+ `dayOfRecurrence` is used to track the real date of recurrence since the day will be overwritten

### Budgets
Daily, monthly, and yearly spending totals are calculated everytime a ListCommand is received. This is done by
iterating through each of the spendings stored in SpendingList and comparing their dates to the respective daily,
monthly, and yearly dates.

### Deleting an entry
The user deletes an entry by sending a delete command which specifies the index of the income/spending to be deleted.
The income or spending will be deleted from its corresponding list using its index.



## Product scope
### Target user profile
Expand All @@ -19,11 +160,106 @@
{Describe the value proposition: what problem does it solve?}

## User Stories
Priorities: High (must have) - * * *, Medium (nice to have) - * *, Low (unlikely to have) - *

| Priority | As a ... | I want to ... | So that I can ... |
|----------|----------|------------------------------------------------------|--------------------------------------------------|
| *** | user | start and close the application | use it only when needed |
| *** | user | add my financial transactions | track the flow of my money |
| *** | user | categorise my entries as income and spendings | better understand my financials |
| *** | user | add income and expenditure categories | see my overall net gain or loss |
| *** | user | see all my spendings | know what I spent on |
| *** | user | delete my entries | correct my mistakes |
| *** | user | have a password to my account | protect my account information |
| ** | user | edit my incomes and spendings | correct my mistakes |
| ** | user | categorise my expenses | see what I spend on |
| ** | user | categorise my incomes | see where my savings come from |
| ** | user | read the amount of money left in my allocated budget | gauge how much to spend for the remaining period |
| ** | user | set expenses and incomes as recurring | do not need to manually add them each time |
| ** | Student | set budgets for each category of expense | make better financial decisions |
| * | user | be alerted when I overspend my budget | try to curb my spendings |

Choose a reason for hiding this comment

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

I like this part of the DG particularly! Well done


## Use cases

### Use case: Add an Entry

**Adding an income entry with optional input for date and tag**

**MSS**

1. User inputs to add income with description, amount, date, and tag.
2. Wiagi adds the income to the income list.
3. If the date is not provided, Wiagi will use the current date.
4. If the tag is not provided, Wiagi will use the default tag (Empty String).
5. Wiagi will display a message to the user that the income has been added.

Use case ends.

**Extensions**
1. User enters invalid input.
1. If the user inputs invalid formatting, Wiagi will display an error message.
2. If the user inputs an invalid amount, Wiagi will display an error message.
3. If the user inputs an invalid date, Wiagi will display an error message.

Use case restarts at step 1.

### Use case: Delete an Entry

**Deleting an income or spending from the list**

**MSS**

1. User requests to list all incomes
2. Wiagi shows a list of all incomes
3. User takes note of the index of the income to delete and requests to delete the entry
by specifying the index
4. Wiagi deletes the entry

Use case ends.

**Extensions**
- 1a. The list is empty.
<br>Use case ends.
- 3a. The given index is invalid.
- 3a1. Wiagi displays an error message.
<br>Use case restarts at step 1.


### Use case: Listing all Entries
**MSS**
1. User requests to list all entries.
2. Wiagi shows a list of all incomes and spendings, including optional parameters such as tags.

Use case ends.
**Extensions**
1. The list is empty.
- 1a. Wiagi displays incomes and spendings without entries (equal to 0).

Use case of listing all spendings, incomes, tags is similar, omitted for brevity.


### Use Case: Edit an Entry
**Editing an existing income or spending entry**

**MSS**

1. User requests to list all incomes or spendings.
2. Wiagi shows a list of all incomes or spendings.
3. User takes note of the index of the entry to edit and requests to edit the entry by specifying the index and new details.
4. Wiagi updates the entry with the new details.
5. Wiagi displays a message to the user that the entry has been updated.

|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|
Use case ends.
**Extensions**
1. The list is empty.
<br>Use case ends.
2. The given index is invalid.
- 2a. Wiagi displays an error message.
Use case restarts at step 1.
3. The new details are invalid.
- 3a. Wiagi displays an error message.
Use case restarts at step 1.

## Non-Functional Requirements

Expand Down
Loading
Loading