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-2] BudgetBuddy #46

Open
wants to merge 556 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
556 commits
Select commit Hold shift + click to select a range
c975653
Merge pull request #75 from ShyamKrishna33/user-guide
ShyamKrishna33 Apr 3, 2024
3a9920e
Merge branch 'master' into branch-improvement
Vavinan Apr 3, 2024
693814f
Merge pull request #76 from Vavinan/branch-improvement
Vavinan Apr 3, 2024
1ae297e
Combine print and get PastWeek and PastMonth methods together
isaaceng7 Apr 3, 2024
e02c5fa
Update User-guide to provide more details about available features
Vavinan Apr 3, 2024
8af18f7
Merge pull request #77 from isaaceng7/fix-code-review
isaaceng7 Apr 3, 2024
f298259
Merge branch 'master' into branch-user-guide
Vavinan Apr 3, 2024
1c1b93e
Merge branch 'master' into update-user-guide
vibes-863 Apr 3, 2024
17bae78
Update formating of UG
vibes-863 Apr 3, 2024
cc8570f
Merge pull request #78 from Vavinan/branch-user-guide
Vavinan Apr 3, 2024
71c3c82
Merge pull request #79 from vibes-863/update-user-guide
vibes-863 Apr 3, 2024
9f04522
Refactor the exception handling to provide more information
Vavinan Apr 3, 2024
6820232
Refactor: Remove unnecessary exception handling in delete command
Vavinan Apr 3, 2024
3f8f544
Refactor: Rename function parseTransactionType to parseEditTransaction
Vavinan Apr 3, 2024
70a1129
Merge pull request #80 from Vavinan/43-exception-handling
Vavinan Apr 3, 2024
db104c8
Merge branch 'master' into developer-guide
Vavinan Apr 4, 2024
a222239
Update Developer guide
Vavinan Apr 4, 2024
886bcfb
Merge pull request #81 from Vavinan/developer-guide
Vavinan Apr 4, 2024
1966121
Update List feature in DG with sequence diagram
isaaceng7 Apr 4, 2024
d9b01e6
Merge pull request #82 from isaaceng7/update-developer-guide
isaaceng7 Apr 4, 2024
a466baa
Merge branch 'master' into update-developers-guide
vibes-863 Apr 4, 2024
961fbc9
Add addAccountDiagram to uml folder
vibes-863 Apr 4, 2024
17723d2
Update DevelopeGuide to include Add Account in Design & implementation
vibes-863 Apr 4, 2024
d537ee2
Merge branch 'master' into developer-guide
Apr 4, 2024
672065c
Create sequence diagram for addTransaction feature.
Apr 4, 2024
0fdcd11
Update processTransaction section of DG.
Apr 4, 2024
3519839
Merge pull request #84 from ShyamKrishna33/developer-guide
ShyamKrishna33 Apr 4, 2024
5c88506
Merge branch 'master' into update-developers-guide
vibes-863 Apr 4, 2024
9d2994b
Merge pull request #83 from vibes-863/update-developers-guide
vibes-863 Apr 4, 2024
3407736
Resolve: Close insights window before program exit
Vavinan Apr 8, 2024
c371f00
Include author tags
Vavinan Apr 8, 2024
078fbed
Merge pull request #125 from Vavinan/97-close-insights-window-before-…
Vavinan Apr 8, 2024
4d2fa61
Add: Search feature to search for transactions using a keyword
Vavinan Apr 8, 2024
2557351
Create InvalidCategoryException
Apr 8, 2024
3d82989
Update printSearchResults to print output in a table format
Vavinan Apr 8, 2024
2217af4
Create printInvalidCategoryError method in UserInterface.java
Apr 8, 2024
86ef423
Throw InvalidCategoryException on appropriate methods
Apr 8, 2024
eaffaad
Merge pull request #127 from Vavinan/120-add-feature-search
Vavinan Apr 8, 2024
cf8289d
Edit Category notation in UI and enhance visuals of borders
Vavinan Apr 9, 2024
f485959
Merge pull request #128 from Vavinan/122-format-help-command
Vavinan Apr 9, 2024
a63a23f
Enhance list feature to view transactions by account
isaaceng7 Apr 9, 2024
7911c51
Enhance list feature to view by category
isaaceng7 Apr 9, 2024
62cbf18
Fix failed checks
isaaceng7 Apr 9, 2024
7310ed8
Prompt user to enter category in Parser.java
Apr 9, 2024
92d6209
Fix checkstyle errors
Apr 9, 2024
28bafe6
Merge pull request #130 from isaaceng7/129-add-list-enhancement
ShyamKrishna33 Apr 9, 2024
db4356e
Merge branch 'master' into 119-invalid-category-input
Apr 9, 2024
fd96336
Import Category class in TransactionList.java
Apr 9, 2024
ef3c58f
Fix checkstyle errors
Apr 9, 2024
e649c85
Change test case testFromNumber to test exception thrown
Apr 9, 2024
f0974ac
Replace * imports with single class imports
Apr 9, 2024
0f0042d
Merge pull request #131 from ShyamKrishna33/119-invalid-category-input
ShyamKrishna33 Apr 9, 2024
d7c5725
Fix formatting of list feature in ug
isaaceng7 Apr 9, 2024
e1e4b93
Format list ug
isaaceng7 Apr 9, 2024
d5bd47d
Format add feature in ug
isaaceng7 Apr 9, 2024
ab733ae
Add pictures in ug
isaaceng7 Apr 9, 2024
e80f195
Merge pull request #132 from isaaceng7/ug-fix
isaaceng7 Apr 9, 2024
a63260a
Add colon to UserInterface and TransactionManager in list feature in dg
isaaceng7 Apr 9, 2024
9b96e86
Refactor: Allow input commands to be case-insensitive
Vavinan Apr 9, 2024
afcca05
Update UML sequence diagram for list feature
isaaceng7 Apr 9, 2024
70c05af
Update list feature design and implementation dg
isaaceng7 Apr 9, 2024
4c6cd7c
Merge pull request #133 from Vavinan/102-allow-command-variation
Vavinan Apr 9, 2024
5249a66
Merge pull request #134 from isaaceng7/93-fix-dg-list
isaaceng7 Apr 9, 2024
f9c1ce4
Throw exception when negative amount
Apr 10, 2024
c6267a5
Replace * imports with single class imports
Apr 10, 2024
0486506
Create method getInitialAccountName in UserInterface.java
Apr 10, 2024
938fc78
Create method getInitialAccountBalance in UserInterface.java
Apr 10, 2024
84718fc
Call getInitialAccountName and getInitialAccountBalance methods from …
Apr 10, 2024
e3d1a03
Merge pull request #135 from ShyamKrishna33/107-negative-income-amount
ShyamKrishna33 Apr 10, 2024
10bcf12
Merge pull request #136 from ShyamKrishna33/116-invalid-initial-balance
ShyamKrishna33 Apr 10, 2024
a3f3312
Update UML diagram for removeTransaction
Vavinan Apr 10, 2024
c1248ab
Merge branch 'master' into 85-fix-dg-remove
Vavinan Apr 10, 2024
44ac6de
Merge pull request #137 from Vavinan/85-fix-dg-remove
Vavinan Apr 10, 2024
e724b0d
Update PPP
vibes-863 Apr 11, 2024
92664c6
Update AboutUs.md
vibes-863 Apr 11, 2024
6023ea2
Merge pull request #138 from vibes-863/PPP-vibes
vibes-863 Apr 11, 2024
ab7e09a
Update DG for removeTransaction and processEditTransaction
Vavinan Apr 11, 2024
ac39076
Merge branch 'master' into fix-dg-edit-and-remove
Vavinan Apr 11, 2024
ec4b238
Merge pull request #139 from Vavinan/fix-dg-edit-and-remove
Vavinan Apr 11, 2024
b5bd383
Fix list command for input
isaaceng7 Apr 11, 2024
70a0e08
Update PPP
Apr 11, 2024
8d4387d
Merge pull request #140 from isaaceng7/105-fix-list-command
isaaceng7 Apr 11, 2024
2108f1e
Merge pull request #141 from ShyamKrishna33/PPP
ShyamKrishna33 Apr 11, 2024
a7cee9b
Rename PPP to github username
isaaceng7 Apr 11, 2024
d7e562c
Update PPP
isaaceng7 Apr 11, 2024
d3a5bc5
rename Shyam PPP
isaaceng7 Apr 11, 2024
be08387
rename vavinan PPP
isaaceng7 Apr 11, 2024
312d9c6
Update PPP to include summary about edit and delete transactions
Vavinan Apr 11, 2024
e32fd91
Refactor: Rename PPP to github username
Vavinan Apr 11, 2024
0bfdb47
Merge pull request #142 from isaaceng7/update-ppp
isaaceng7 Apr 11, 2024
199cd1b
Update PPP to include deatils about documentation and RepoSense link
Vavinan Apr 11, 2024
7f19bc0
Merge branch 'master' into branch-ppp
Vavinan Apr 11, 2024
0e7c0d9
Remove conflict identifier from the prior merge conflict
Vavinan Apr 11, 2024
f5f070e
Merge pull request #143 from Vavinan/branch-ppp
Vavinan Apr 11, 2024
7e82956
Implement puml diagram for Insight class
Vavinan Apr 12, 2024
eba4354
Update DG about Insight
Vavinan Apr 12, 2024
70a4cfe
Update PPP about implementation details
Vavinan Apr 12, 2024
1aad93e
Remove unwanted underscore from puml code
Vavinan Apr 12, 2024
ea50a58
Update puml class diagram to follow standards
Vavinan Apr 12, 2024
30e6312
Merge pull request #144 from Vavinan/95-different-uml-diagrams
Vavinan Apr 12, 2024
c62aba9
Merge branch 'master' into developer-guide
Apr 13, 2024
ac72d66
Add exeption handling to readAccountFile method in DataStorage class
vibes-863 Apr 13, 2024
5da6d9c
Merge pull request #145 from vibes-863/fix-accountfile-reading
vibes-863 Apr 13, 2024
4299149
Add newline read handling to DataStorage class
vibes-863 Apr 13, 2024
95230bf
Handle duplicate account number while reading account file
vibes-863 Apr 13, 2024
f1280fe
Handle case where transaction refers to non-existing account
vibes-863 Apr 13, 2024
e84fa85
Update JUnit tests to match code updation
vibes-863 Apr 13, 2024
a9d1dd7
Merge pull request #146 from vibes-863/101-new-line-account-file
vibes-863 Apr 14, 2024
fb607ed
Merge pull request #147 from vibes-863/108-account-no-repeated
vibes-863 Apr 14, 2024
122523d
Merge branch 'master' into 111-unable-delete-transaction
vibes-863 Apr 14, 2024
5be9d14
Merge pull request #148 from vibes-863/111-unable-delete-transaction
vibes-863 Apr 14, 2024
dcc2f9c
Add JUnit test for list account and category
isaaceng7 Apr 14, 2024
43b4335
Update list by account output text
isaaceng7 Apr 14, 2024
2406ad3
Remove unused import
isaaceng7 Apr 14, 2024
ef65b79
Merge pull request #149 from isaaceng7/junit-list-feature
isaaceng7 Apr 14, 2024
15a57e2
Create AccountTest class
vibes-863 Apr 14, 2024
bdaa92b
Add JUnit Test cases to AccountTest class
vibes-863 Apr 14, 2024
b2b387f
Create AccountManagerTest class
vibes-863 Apr 14, 2024
6a222f3
Add JUnit Test cases to AccountManagerTest class
vibes-863 Apr 14, 2024
cc966f0
Create IncomeTest class
vibes-863 Apr 14, 2024
756af17
Add JUnit Test cases to IncomeTest class
vibes-863 Apr 14, 2024
a180c5b
Create IncomeTest class
vibes-863 Apr 14, 2024
248f1a5
Add JUnit Test cases to ExpenseTest class
vibes-863 Apr 14, 2024
13617c2
Create initial version of add transaction class diagram
Apr 14, 2024
f48d85a
Fix checkStyle issues
vibes-863 Apr 14, 2024
b11ad9a
Fix checkStyle issues
vibes-863 Apr 14, 2024
02c1781
Merge pull request #150 from vibes-863/add-JUnit-account
vibes-863 Apr 14, 2024
7db0f38
Merge pull request #151 from vibes-863/add-JUnit-TransactionType
vibes-863 Apr 14, 2024
562a919
Fix clearing of account file if FileCorruptedException thrown
vibes-863 Apr 14, 2024
18d5475
Merge pull request #153 from vibes-863/fix-dataStorage-bug
vibes-863 Apr 14, 2024
c1f0de4
Enhance PPP
isaaceng7 Apr 14, 2024
b673593
Add header comments to Account class
vibes-863 Apr 14, 2024
017e5e6
Add header comments to AccountManager class
vibes-863 Apr 14, 2024
1feda80
Add header comments to Expense class
vibes-863 Apr 14, 2024
ae16ceb
Add header comments to Income class
vibes-863 Apr 14, 2024
cb7a464
Fix checkstyle issues
vibes-863 Apr 14, 2024
7d6c4cc
Merge pull request #155 from vibes-863/add-header-comments
vibes-863 Apr 14, 2024
b383e62
Merge pull request #154 from isaaceng7/enhance-ppp
isaaceng7 Apr 14, 2024
8dc4a36
Add architecture diagram into dg
isaaceng7 Apr 14, 2024
f24228c
Add user stories to dg
isaaceng7 Apr 14, 2024
9cf42e4
Update list implementation in dg
isaaceng7 Apr 14, 2024
a92d121
Update list feature in ug
isaaceng7 Apr 14, 2024
f1285d5
Merge pull request #156 from isaaceng7/enhance-dg
isaaceng7 Apr 14, 2024
805592f
Add documentation for UserInterface class
Vavinan Apr 14, 2024
e635599
Merge branch 'master' into branch-docs
Vavinan Apr 14, 2024
b9ec8ca
Add documentation to Parser class
Vavinan Apr 14, 2024
4fdcca6
Add documentation for the UI and Parser class
Vavinan Apr 14, 2024
739e3df
Fix indentation for Continuation
Vavinan Apr 14, 2024
a09e1bf
Merge pull request #157 from Vavinan/branch-docs
Vavinan Apr 14, 2024
a953341
Merge branch 'master' into branch-ppp
Vavinan Apr 14, 2024
12556db
Merge branch 'master' into fix-bug
Vavinan Apr 14, 2024
f7ab114
Fix UG to get multi-word input
Vavinan Apr 14, 2024
203865b
Merge pull request #158 from Vavinan/fix-bug
Vavinan Apr 14, 2024
b2804c3
Merge branch 'master' into branch-ppp
Vavinan Apr 14, 2024
4e53e01
Update PPP about search feature
Vavinan Apr 14, 2024
164fa36
Merge branch 'master' into branch-user-guide
Vavinan Apr 14, 2024
8721d4b
Add images for sample outputs
Vavinan Apr 14, 2024
1302a31
Add: Search functionality userguide and images for sample outputs
Vavinan Apr 14, 2024
1443058
Add command-line userguide for search feature
Vavinan Apr 14, 2024
f17de2f
Resolve variable definition order
Vavinan Apr 14, 2024
e396231
Merge pull request #159 from Vavinan/branch-ppp
Vavinan Apr 15, 2024
5504724
Merge branch 'master' into branch-user-guide
Vavinan Apr 15, 2024
e2bb3b1
Merge pull request #160 from Vavinan/branch-user-guide
Vavinan Apr 15, 2024
9c04a41
Update TransactionListDiagram.puml
Apr 15, 2024
34146e3
Add multiplicity to TransactionListDiagram.puml
Apr 15, 2024
7015dad
Add TransactionListDiagram to DG
Apr 15, 2024
4da12ba
Merge pull request #161 from ShyamKrishna33/developer-guide
ShyamKrishna33 Apr 15, 2024
e32d44f
Add documentation to Transaction.java
Apr 15, 2024
2ea8daa
Add documentation to TransactionList.java
Apr 15, 2024
0ad93c2
Add documentation to DataStorage.java
Apr 15, 2024
371586d
Merge branch 'master' into PPP
Apr 15, 2024
3ccd4eb
Merge pull request #162 from ShyamKrishna33/branch-docs
ShyamKrishna33 Apr 15, 2024
7c232a9
Add successful list feature in ug
isaaceng7 Apr 15, 2024
87b3c77
Merge pull request #163 from isaaceng7/update-ug-list-feature
isaaceng7 Apr 15, 2024
4ad5af8
Merge branch 'master' into developer-guide
Vavinan Apr 15, 2024
1e068cf
Add assertions and logging to Account class
vibes-863 Apr 15, 2024
4063beb
Add assertions and logging to AccountManager class
vibes-863 Apr 15, 2024
70997ae
Add logging to DataStorage
vibes-863 Apr 15, 2024
25d29f7
Add implementation details for search feature in DG
Vavinan Apr 15, 2024
11e7c47
Update PPP about contributions
Vavinan Apr 15, 2024
1adbcd7
Refactor: Reduce complexity of the class diagram
Vavinan Apr 15, 2024
827d799
Refactor readAccountFile method
vibes-863 Apr 15, 2024
e47b68a
Merge pull request #164 from Vavinan/developer-guide
Vavinan Apr 15, 2024
600cfe9
Add logging to DataStorage
vibes-863 Apr 15, 2024
895fc50
Update PPP
Apr 15, 2024
6089b2a
Add support to log everything into budgetBuddyLog file
vibes-863 Apr 15, 2024
31f2e03
Fix checkStyle issues
vibes-863 Apr 15, 2024
b3a9dc5
Merge pull request #165 from ShyamKrishna33/PPP
ShyamKrishna33 Apr 15, 2024
c2be51e
Merge pull request #166 from vibes-863/add-assertions-and-logging
vibes-863 Apr 15, 2024
d12a134
Add logging statements in DataStorage.java
Apr 15, 2024
c6ec752
Add logging statements in Parser.java
Apr 15, 2024
29021ae
Rename logger to LOGGER
vibes-863 Apr 15, 2024
bc24868
Merge pull request #167 from vibes-863/fix-convention
vibes-863 Apr 15, 2024
a62357e
Add logger for TransactionList
Vavinan Apr 15, 2024
1f10b97
Merge branch 'master' into branch-logger
Vavinan Apr 15, 2024
f934aa1
Fix checkstyle issues
Apr 15, 2024
84210a7
Merge pull request #168 from Vavinan/branch-logger
Vavinan Apr 15, 2024
bb43e40
Merge branch 'master' into branch-logging
Apr 15, 2024
f89d86f
Merge pull request #169 from ShyamKrishna33/branch-logging
ShyamKrishna33 Apr 15, 2024
11197d2
Merge branch 'master' into developer-guide
Apr 15, 2024
310c151
Merge branch 'master' into branch-ppp
Vavinan Apr 15, 2024
22258de
Update PPP to capitalize first letter of a line
Vavinan Apr 15, 2024
b9fa417
Update addTransaction.puml according to new changes
Apr 15, 2024
626d4a0
Save addTransaction sequence diagram
Apr 15, 2024
0f27aa1
Merge pull request #170 from Vavinan/branch-ppp
Vavinan Apr 15, 2024
c6d4bc8
Merge pull request #171 from ShyamKrishna33/developer-guide
ShyamKrishna33 Apr 15, 2024
74254db
Update the UserGuide
vibes-863 Apr 15, 2024
221615f
Merge pull request #173 from vibes-863/update-ug
vibes-863 Apr 15, 2024
12afb9f
Handle the case when comma is entered as the input
Apr 15, 2024
fe78d59
Fix checkstyle issues
Apr 15, 2024
e0284ad
Merge branch 'master' into branch-ppp
Vavinan Apr 15, 2024
e6d374d
Update PPP
Vavinan Apr 15, 2024
f88360a
Merge pull request #174 from ShyamKrishna33/172-comma-in-name-error
ShyamKrishna33 Apr 15, 2024
a27fd26
Merge branch 'master' into branch-ppp
Vavinan Apr 15, 2024
9d207cd
Merge pull request #175 from Vavinan/branch-ppp
Vavinan Apr 15, 2024
c7f8213
Merge branch 'master' into developer-guide
Apr 15, 2024
4d926b0
Update vavinan.md
Vavinan Apr 15, 2024
e9372d6
Merge pull request #176 from Vavinan/branch-ppp
Vavinan Apr 15, 2024
8442816
Add acknowledgements in DG
Apr 15, 2024
7a127dc
Remove condition check for list
isaaceng7 Apr 15, 2024
21e2740
Add command notes in UG
isaaceng7 Apr 15, 2024
5ae96e5
Merge pull request #178 from isaaceng7/add-ug-feature-notes
isaaceng7 Apr 15, 2024
03ff83b
Merge pull request #177 from ShyamKrishna33/developer-guide
ShyamKrishna33 Apr 15, 2024
93cc596
Add table of contents to UG
isaaceng7 Apr 15, 2024
b88f4a7
Add class diagram to Add Account
vibes-863 Apr 15, 2024
2b7d26e
Add description to README
isaaceng7 Apr 15, 2024
047b1bd
Merge pull request #179 from isaaceng7/format-docs
isaaceng7 Apr 15, 2024
82ff4b4
Merge branch 'master' into developer-guide
Apr 15, 2024
fc4eb75
Update DG with design and implementation of Remove Account
vibes-863 Apr 15, 2024
a0c58f2
Merge branch 'master' into developer-guide
Vavinan Apr 15, 2024
24ed3f9
Fix formatting issues
vibes-863 Apr 15, 2024
d23d441
Merge pull request #180 from vibes-863/update-dg
vibes-863 Apr 15, 2024
4464a5b
Add data storage instructions for manual testing in DG
Apr 15, 2024
c3a43fa
Update DG to include manual testing
Vavinan Apr 15, 2024
1185c53
Merge branch 'master' into developer-guide
Vavinan Apr 15, 2024
7565241
Merge pull request #181 from Vavinan/developer-guide
Vavinan Apr 15, 2024
1cfe454
Merge branch 'master' into developer-guide
Apr 15, 2024
a5612f8
Add manual testing for list, delete and delete-acc
isaaceng7 Apr 15, 2024
d29b8dd
Merge commit '75652410715ad1b4a1b48c0cbd91e84e6cc7bcc6' into dg-manua…
isaaceng7 Apr 15, 2024
88fc72c
Merge pull request #182 from isaaceng7/dg-manual-testing
isaaceng7 Apr 15, 2024
0d3cbcf
Merge branch 'master' into developer-guide
Apr 15, 2024
da35b9f
Merge branch 'master' into developer-guide
Vavinan Apr 15, 2024
6752a8e
Update PPP
vibes-863 Apr 15, 2024
ee09909
Add TOC for DG
isaaceng7 Apr 15, 2024
ecd34eb
Merge pull request #183 from vibes-863/update-ppp
vibes-863 Apr 15, 2024
f30fe73
Merge pull request #184 from ShyamKrishna33/developer-guide
ShyamKrishna33 Apr 15, 2024
47c856b
Merge pull request #185 from isaaceng7/dg-table-of-contents
isaaceng7 Apr 15, 2024
7b160d2
Update DG
Vavinan Apr 15, 2024
0b24e22
Merge branch 'master' into developer-guide
Vavinan Apr 15, 2024
b8428a9
Merge pull request #186 from Vavinan/developer-guide
ShyamKrishna33 Apr 15, 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
30 changes: 15 additions & 15 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,18 @@ jobs:
- name: Build and check with Gradle
run: ./gradlew check

- name: Perform IO redirection test (*NIX)
if: runner.os == 'Linux'
working-directory: ${{ github.workspace }}/text-ui-test
run: ./runtest.sh

- name: Perform IO redirection test (MacOS)
if: always() && runner.os == 'macOS'
working-directory: ${{ github.workspace }}/text-ui-test
run: ./runtest.sh

- name: Perform IO redirection test (Windows)
if: always() && runner.os == 'Windows'
working-directory: ${{ github.workspace }}/text-ui-test
shell: cmd
run: runtest.bat
# - name: Perform IO redirection test (*NIX)
# if: runner.os == 'Linux'
# working-directory: ${{ github.workspace }}/text-ui-test
# run: ./runtest.sh
#
# - name: Perform IO redirection test (MacOS)
# if: always() && runner.os == 'macOS'
# working-directory: ${{ github.workspace }}/text-ui-test
# run: ./runtest.sh
#
# - name: Perform IO redirection test (Windows)
# if: always() && runner.os == 'Windows'
# working-directory: ${{ github.workspace }}/text-ui-test
# shell: cmd
# run: runtest.bat
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ bin/

/text-ui-test/ACTUAL.TXT
text-ui-test/EXPECTED-UNIX.TXT
/data/accounts.txt
/data/transactions.txt
7 changes: 5 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ repositories {
dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.10.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.0'
implementation group: 'org.knowm.xchart', name: 'xchart', version: '3.2.2'
}


test {
useJUnitPlatform()

Expand All @@ -29,11 +31,11 @@ test {
}

application {
mainClass.set("seedu.duke.Duke")
mainClass.set("budgetbuddy.BudgetBuddy")
}

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

Expand All @@ -42,5 +44,6 @@ checkstyle {
}

run{
// enableAssertions = true
standardInput = System.in
}
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
--------|:-------------------------:|:-------------------------------------------:|:---------:
![](./team/images/vaibhav.png) | Vaibhav Dileep Pillai | [Github](https://github.com/vibes-863) | [Portfolio](./team/vaibhavDileepPillai.md)
![](./team/images/Shyam.jpg) | Shyam Krishna Arun Gandhi | [Github](https://github.com/ShyamKrishna33) | [Portfolio](./team/shyamKrishna.md)
![](./team/images/vavinan.jpg) | Jeevanandham Vavinan | [Github](https://github.com/Vavinan) | [Portfolio](./team/jeevanandhamVavinan.md)
![](./team/images/isaac.jpg) | Isaac Eng | [Github](https://github.com/isaaceng7) | [Portfolio](./team/isaacEng.md)
215 changes: 210 additions & 5 deletions docs/DeveloperGuide.md
Copy link

Choose a reason for hiding this comment

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

Can be improved with the addition of diagrams to complement the content written

Choose a reason for hiding this comment

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

Very concise and well explained information shown in the Developer Guide

Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,219 @@

## 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}

## Design & implementation

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

### [Implemented] Add Account
Copy link

Choose a reason for hiding this comment

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

is there a reason why [Implemented] was used for already implemented features instead of [Pending] for un-implemented features like in the course website?


#### Description

This method is used to add a new account to the list of accounts based on the user input provided. The input should
include the account name and initial balance. After the account is successfully added, the account balance is
initialized with the provided initial balance, and a unique account number is generated and assigned to the account. A
message is displayed to the user indicating the success of the operation. This allows users to manage multiple accounts
by adding new ones as needed.

#### Parameters

1. String input: A string containing the user input, which should include the account name and initial balance,
separated by specific delimiters.

#### Design and Implementation

The method starts by validating the syntax of the user input to ensure it contains the necessary delimiters for the
account name and initial balance. If the input does not meet the expected format, it throws an
InvalidArgumentSyntaxException. It then parses the input to extract the account name and initial balance. If either the
name or initial balance is missing or empty, an EmptyArgumentException is thrown. Additionally, if the initial balance
is not a valid double value, a NumberFormatException is thrown.

After successfully parsing and validating the input, the method proceeds to generate a unique account number for the new
account. It ensures that the generated number is not already in use by any existing account. Once a unique number is
obtained, a new Account object is created with the generated account number, provided account name, and initial balance.
This new account is then added to the list of accounts, and its number is added to the list of existing account numbers
to ensure uniqueness.

Finally, the method notifies the user of the successful addition of the account by displaying the details of the newly
created account.

The following sequence diagram shows how the add account process works:

![](./uml/uml-images/addAccountDiagram.png)

### [Implemented] Category feature

#### Description

The Category feature empowers users to effectively categorize transactions based on their preferences. When initiating a
new transaction through the `Add` command, users are prompted to select a category from a predefined list. This ensures
organized and streamlined transaction management.

#### Design and Implementation

The implementation of the Category feature revolves around the integration of a `category` attribute within each
transaction object. This attribute is defined as a member of the `Category` enum class.

Upon invoking the `Add` command, users are presented with a selection prompt featuring the available categories. User
input, typically in the form of a numerical identifier corresponding to a category within the enum class, facilitates
the assignment of the appropriate enum object to the transaction's category attribute.

### [Implemented] Process transaction

#### Description

This method adds a transaction to the list of transactions based on the necessary input details given by the user.

#### Parameters

1. String input: A string containing the user input, which should include the `NAME`, `AMOUNT`, `DATE` and `TYPE` of the
transaction.
2. Account account: The account object associated with the transaction list.

#### Design and Implementation

Choose a reason for hiding this comment

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

Examples and expected outcomes could be used for clarity.

Copy link

Choose a reason for hiding this comment

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

Would it be clearer if we utilize more markup format for parameters?


1. ##### Syntax Validation:

The method first checks whether the input string contains all necessary arguments ("/a/", "/t/", "/n/", "/$/", "/d/")
required for adding a transaction. If any argument is missing, it throws an InvalidAddTransactionSyntax exception.
Comment on lines +159 to +160
Copy link

Choose a reason for hiding this comment

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

readability would really improve here with markup formatting


2. #### Transaction Parsing:

It utilizes a parser object to parse the user input string into a Transaction object using the
parseUserInputToTransaction method.

3. #### Assertion Checks:

Assertions are used for debugging purposes to ensure that the parsed transaction and added transaction are not null.
If they are null, assertion errors are thrown.

4. #### Category Assignment:

If the category of the transaction is null, it prompts the user to choose a category from a list and assigns the
chosen category to the transaction.

5. #### Transaction Addition:

After parsing and category assignment, the transaction is added to the account using the addTransaction method.

6. #### Feedback to User:

Upon successful addition of the transaction, a message is printed to the user indicating the details of the added
transaction and the updated account balance.

#### Exceptions:

Comment on lines +186 to +187
Copy link

Choose a reason for hiding this comment

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

clear diagram here. Would be good if we can highlight some exceptions here since this is in the Exceptions section, or should it be in another section?

1. `InvalidTransactionTypeException`: This exception is thrown when the transaction type is not one of `income`
and `expense`.

2. `InvalidAddTransactionSyntax`: This exception is thrown when the syntax of the add transaction is invalid.

3. `EmptyArgumentException`: This exception is thrown when an empty argument is encountered.

The following sequence diagram shows how a remove transaction goes works:

![](./uml/uml-images/addTransactionDiagram.png)

### [Implemented] Remove transaction

#### Description

This method is used to remove a transaction from the list of transactions based on the transaction ID provided
by the user. After the transaction is removed, the account balance is updated accordingly and a message is
displayed to the user indicating the success of the operation. This helps user to remove the transaction
from the list they added by mistake or those transactions they no longer need to keep track off.

#### Parameters

1. String input: A string containing the user input, which should include the transaction ID to be removed.
2. Account account: The account object associated with the transaction list.

#### Design and Implementation

The method first validates the user input to ensure it's not empty or null. If the input is invalid, it throws
an EmptyArgumentException. Next, it extracts the transaction ID from the input and verifies its integrity as a
valid integer. If the ID is invalid, a NumberFormatException is thrown.

Once a valid transaction ID is obtained, the method calculates its corresponding index in the transactions
ArrayList by subtracting 1 from the provided ID, as ArrayList indices start from 0 . It then verifies
if the calculated index falls within the bounds of the ArrayList. If the index is out of bounds, an
InvalidIndexException is thrown.

Upon successful validation, the method removes the transaction at the calculated index from the transactions
ArrayList. Subsequently, it updates the account balance to reflect the removed transaction. Finally, it
notifies the user of the successful removal along with displaying the details of the removed transaction.

The following sequence diagram shows how a remove transaction goes works:

![](./uml/uml-images/removeTransactionDiagram.png)

Choose a reason for hiding this comment

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

Sequence diagram looks good, quite detailed.


### [Implemented] Edit Transaction

#### Description

This method facilitates the editing of a transaction within the list of transactions associated with a
specific account. Users can edit transactions by providing the index of the transaction they wish to modify
along with the updated transaction details. After the edit operation is completed, the system updates the
transaction accordingly and notifies the user of the successful operation. This feature enhances user
flexibility by allowing them to correct erroneous transactions or update transaction details as needed.

#### Parameters

1. String input: A string representing user input, including the index of the transaction to be edited and
the updated transaction details.
2. Account account: The account object associated with the transaction list.

#### Design and Implementation

The processEditTransaction method follows a structured approach to ensure the successful editing of
transactions while maintaining data integrity:

1. Input Validation: The method begins by validating the user input to ensure it is not empty or null. If
the input is invalid, an EmptyArgumentException is thrown to prompt the user to provide valid input.
2. Transaction Index Extraction: After validating the input, the method extracts the index of the
transaction to be edited from the input string. It ensures the extracted data is a valid integer; otherwise, a
NumberFormatException is thrown to indicate invalid input.
3. Index Calculation: Once a valid transaction index is obtained, the method calculates the corresponding
index in the transactions ArrayList. As ArrayList indices start from 0, the provided index is decremented
by 1 to align with the ArrayList index.
4. Index Bounds Verification: The method verifies whether the calculated index falls within the bounds of
the transactions ArrayList. If the index is out of bounds, an InvalidIndexException is thrown to notify the user of
the invalid index provided.
5. Transaction Editing: Upon successful validation, the method retrieves the transaction object at the
calculated index from the transactions ArrayList. It prompts the user to input the updated transaction details
through the UserInterface.getEditInformation() method. The edited transaction is then parsed using the
parser.parseTransactionType() method to ensure its validity and association with the provided account. Finally, the
edited transaction replaces the original transaction at the specified index in the transactions ArrayList using the
transactions.set() method.
6. User Notification: After editing the transaction, the method notifies the user of the successful
operation by displaying a message through the UserInterface.printUpdatedTransaction() method.

Sequence Diagram
Copy link

Choose a reason for hiding this comment

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

formatting here is abit w0nky

The following sequence diagram illustrates the sequence of interactions involved in the editing of a transaction:
![](./uml/uml-images/processEditTransactionDiagram.png)

### [Implemented] List feature

### Description

The list feature allows users to view their existing transactions. This feature includes viewing all the transactions,
past week's transactions, past month's transactions and transactions from a specified date range.

#### Implementation

This feature is facilitated through the `TransactionList#processList`, where it prompts the user for their choice of
list they wish to see. After the user inputs the choice, the get functions will store the transactions in a new
ArrayList and `UserInterface#printPastTransactions` will handle the output of the list.

Sequence Diagram
The following sequence diagram illustrates the sequence of interactions involved in the editing of a transaction:
![](./uml/uml-images/processList.png)
Copy link

Choose a reason for hiding this comment

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

I like the clear and informative diagram!


## Product scope

### Target user profile

Choose a reason for hiding this comment

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

The Target user profile and the Users Stories should be included for to give us a better understanding of this app.

{Describe the target user profile}
Expand All @@ -20,10 +225,10 @@

## User Stories

Choose a reason for hiding this comment

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

The user stories should be expanded upon, as there are clearly a variety of uses for this application.


|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 | 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 |

## Non-Functional Requirements

Choose a reason for hiding this comment

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

If content is empty, would be best to remove the skeleton code.

Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Duke
# BudgetBuddy

{Give product intro here}

Expand Down
Loading
Loading