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-T13-2] Expense Tracker #79

Open
wants to merge 620 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
620 commits
Select commit Hold shift + click to select a range
bf019eb
Update import
FanZixian Apr 3, 2023
8002220
Help message at the first time
FanZixian Apr 3, 2023
8dff7a9
Add the Helper method
FanZixian Apr 3, 2023
13b4e36
Update UG and some information
FanZixian Apr 3, 2023
918a82f
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 3, 2023
399dae5
Merge branch 'brachAccount' of https://github.com/arsdorintbp2003/tp …
arsdorintbp2003 Apr 3, 2023
72e6dc8
Update MessageList.java
arsdorintbp2003 Apr 3, 2023
46c4548
Merge pull request #156 from FanZixian/branch-PED
FanZixian Apr 4, 2023
89b1883
Merge pull request #157 from FanZixian/branch-help
FanZixian Apr 4, 2023
90ff69d
Update case sensitivity problem for find method, and also update the …
FanZixian Apr 4, 2023
6f430b9
Update case sensitivity problem for category method, also it can acce…
FanZixian Apr 4, 2023
9407bed
Update category method if the input is not stored in the system befor…
FanZixian Apr 4, 2023
394b4f3
Merge pull request #159 from FanZixian/branch-casesensitive
Ju-Can Apr 4, 2023
79fabd4
Update Sort method to be more user friendly
FanZixian Apr 4, 2023
9a2a727
Update UG
FanZixian Apr 4, 2023
6b46b64
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 4, 2023
241d168
Update UG and code comments to currency.java
GohJW Apr 4, 2023
f60e5bf
Merge pull request #160 from GohJW/branch-ug-dg-ppp
GohJW Apr 4, 2023
aec9774
Update AboutUs
GohJW Apr 5, 2023
0b7c8ea
Merge pull request #161 from GohJW/branch-ug-dg-ppp
GohJW Apr 5, 2023
68a75ae
Code refactor
FanZixian Apr 5, 2023
431a3dc
Merge branch 'branch-casesensitive' into branch-coderefactor
FanZixian Apr 5, 2023
56a07ad
Bug fix
FanZixian Apr 5, 2023
7d140b6
Merge branch 'master' of https://github.com/FanZixian/tp
FanZixian Apr 5, 2023
465c0c3
Sort method DG
FanZixian Apr 5, 2023
5e90c54
Fix account bug (TODO: reformat intial page + apply account to Storage)
arsdorintbp2003 Apr 5, 2023
7c87a13
Merge branch 'brachAccount' of https://github.com/arsdorintbp2003/tp …
arsdorintbp2003 Apr 5, 2023
a316eb2
Add PPP
Ju-Can Apr 5, 2023
ba1e430
Fix account bug (DONE: Implement on the tp latest ver, TODO: refactor…
arsdorintbp2003 Apr 5, 2023
7a17108
Fix checkstyle
arsdorintbp2003 Apr 5, 2023
b69c4f1
Fix checkstyle Part 2
arsdorintbp2003 Apr 5, 2023
9a258e4
Fix checkstyle Part 3
arsdorintbp2003 Apr 5, 2023
4c2b21f
Fix checkstyle Part 4
arsdorintbp2003 Apr 5, 2023
43825e4
Update DeveloperGuide.md
Ju-Can Apr 5, 2023
950da9a
Merge branch 'brachAccount'
arsdorintbp2003 Apr 5, 2023
22c4094
Update Duke.java
arsdorintbp2003 Apr 5, 2023
61aade9
Set lower bound for year
Ju-Can Apr 5, 2023
c8721a9
Update DG
Ju-Can Apr 5, 2023
0e4e10f
remove link in storage
Ju-Can Apr 5, 2023
1327359
Solve a small confusing bug in Command Sort
FanZixian Apr 5, 2023
b915b1a
Update UG typo
FanZixian Apr 5, 2023
6a2b580
Merge pull request #162 from FanZixian/branch-coderefactor
FanZixian Apr 5, 2023
eeddf19
Merge branch 'master' into branch-docedition
FanZixian Apr 5, 2023
054a3da
Merge pull request #166 from FanZixian/branch-docedition
FanZixian Apr 5, 2023
cb23227
Fix minor bug
arsdorintbp2003 Apr 5, 2023
4cb271e
Merge branch 'master' into brachAccount
arsdorintbp2003 Apr 5, 2023
df67b35
Add DG for yearly overview
Ju-Can Apr 5, 2023
baea0a1
Merge branch 'master' into PPP
Ju-Can Apr 5, 2023
292ade6
Merge branch 'master' into DG-yearly-overview
Ju-Can Apr 5, 2023
452758c
Merge pull request #163 from Ju-Can/PPP
Ju-Can Apr 5, 2023
e85dd16
Merge pull request #167 from Ju-Can/DG-yearly-overview
Ju-Can Apr 5, 2023
421309c
Add logout (choice to save or not or continue working (similar to clo…
arsdorintbp2003 Apr 5, 2023
af33514
Merge remote-tracking branch 'origin/brachAccount' into brachAccount
arsdorintbp2003 Apr 5, 2023
49397a3
Merge branch 'master' into brachAccount
arsdorintbp2003 Apr 5, 2023
840d969
Fix Checkstyle
arsdorintbp2003 Apr 5, 2023
4ce20af
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 5, 2023
389a080
Update UserGuide.md
Ju-Can Apr 6, 2023
cd7ef6b
Add DG for Storage
Ju-Can Apr 6, 2023
46c391a
Add table of content
Ju-Can Apr 6, 2023
aaa32f1
Update formatting
Ju-Can Apr 6, 2023
37cb9e3
add junit for filters
Ju-Can Apr 6, 2023
56ae3e6
add junit for monthly overview
Ju-Can Apr 6, 2023
3b1ea1b
add junit for yearly overview
Ju-Can Apr 6, 2023
b19f8f4
add junit for CommandOverview
Ju-Can Apr 6, 2023
1e15c81
update codestyle
Ju-Can Apr 6, 2023
79331eb
update declaration order
Ju-Can Apr 6, 2023
9adfe82
update declaration order
Ju-Can Apr 6, 2023
df0fa25
update declaration order
Ju-Can Apr 6, 2023
fff6da3
Update DG
FanZixian Apr 6, 2023
1d9ae06
Update MonthlyOverviewTest.java
Ju-Can Apr 6, 2023
7768f63
remove trim for monthly overview
Ju-Can Apr 6, 2023
d5cb731
Update MonthlyOverviewTest.java
Ju-Can Apr 6, 2023
e92cae4
revert back to original junit
Ju-Can Apr 6, 2023
d8006cd
change line separator
Ju-Can Apr 6, 2023
ea727a7
Update MonthlyOverviewTest.java
Ju-Can Apr 6, 2023
cd08acb
Update MonthlyOverviewTest.java
Ju-Can Apr 6, 2023
a4ba2ee
replace line separator to system independent
Ju-Can Apr 6, 2023
e62c9ad
Solve bugs in category method
FanZixian Apr 6, 2023
f259203
Update category DG
FanZixian Apr 6, 2023
403d524
Merge branch 'master' into branch-docedition
FanZixian Apr 6, 2023
c7e4d92
Merge pull request #169 from Ju-Can/DG-storage
Ju-Can Apr 6, 2023
9b4e84a
Merge pull request #170 from Ju-Can/Junit-overview
Ju-Can Apr 6, 2023
c094248
Merge remote-tracking branch 'upstream/master'
Ju-Can Apr 6, 2023
9c6cec0
Merge branch 'master' of https://github.com/FanZixian/tp into branch-…
FanZixian Apr 6, 2023
4af04c0
Fix bug for whitespaces and add more JUnit tests
GohJW Apr 6, 2023
f0182ab
update UG
Ju-Can Apr 6, 2023
81f5983
add command summary
Ju-Can Apr 6, 2023
5e14af6
Fix signup + login + logout, can't fix CaseSensitive for signup
arsdorintbp2003 Apr 6, 2023
8c28157
update categorySet to contain only lowercase
Ju-Can Apr 6, 2023
d00ecd6
Merge branch 'master' into branch-docedition
Ju-Can Apr 6, 2023
5372a1a
Merge pull request #171 from FanZixian/branch-docedition
Ju-Can Apr 6, 2023
4977c22
Merge pull request #172 from GohJW/bugfix-whitespace
Ju-Can Apr 6, 2023
d65b8c4
Merge branch 'master' into update-UG
Ju-Can Apr 6, 2023
e942beb
update exit
Ju-Can Apr 6, 2023
a5c71fe
Merge branch 'update-UG' of https://github.com/Ju-Can/tp into update-UG
Ju-Can Apr 6, 2023
0ec03d3
Merge pull request #173 from Ju-Can/update-UG
Ju-Can Apr 6, 2023
f63b7c7
Merge remote-tracking branch 'upstream/master'
Ju-Can Apr 6, 2023
660b010
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 6, 2023
2f9c832
update commandAdd to store cat as lowercase
Ju-Can Apr 6, 2023
9154892
Replace "/" with "-" in junit
Ju-Can Apr 6, 2023
427618b
add junit for parser
Ju-Can Apr 6, 2023
bc44cc4
Merge branch 'master' of https://github.com/arsdorintbp2003/tp
arsdorintbp2003 Apr 6, 2023
2605ffc
junit for extract year
Ju-Can Apr 6, 2023
f872778
Merge branch 'brachAccount'
arsdorintbp2003 Apr 6, 2023
b7a081d
Update UG with FAQ
GohJW Apr 6, 2023
6b95ce0
Implement json (DONE: logout + exit, TODO: remove creating new json f…
arsdorintbp2003 Apr 6, 2023
ae399bb
Fix Checkstyle
arsdorintbp2003 Apr 6, 2023
6350971
Fix Checkstyle Part 2
arsdorintbp2003 Apr 6, 2023
52c2085
Fix Checkstyle Part 3
arsdorintbp2003 Apr 6, 2023
7ec5194
Implement JSON (Done: Logout + Exit + Login + Signup, Saving data to …
arsdorintbp2003 Apr 7, 2023
46c61f2
Fix test case error + autosave + remove prompt for logout and exit
arsdorintbp2003 Apr 7, 2023
f4237ec
Fix Checkstyle
arsdorintbp2003 Apr 7, 2023
d62bcde
Added UG + Change login to non case-sensitive + change json filepath …
arsdorintbp2003 Apr 7, 2023
231b341
Added DG (TODO: implements some diagram ìf needed) + delete some unne…
arsdorintbp2003 Apr 7, 2023
e3e3d98
Merge remote-tracking branch 'origin/branch-docedition'
FanZixian Apr 8, 2023
b39eb66
Merge branch 'master' of https://github.com/FanZixian/tp
FanZixian Apr 8, 2023
2941a18
Get my own md file
FanZixian Apr 8, 2023
df8d37a
Create FanZixian.md
FanZixian Apr 8, 2023
7761642
Merge pull request #175 from GohJW/branch-FAQ
Ju-Can Apr 8, 2023
6f29d0c
update code style
Ju-Can Apr 8, 2023
8900a17
Merge pull request #174 from Ju-Can/bugfix-category-to-lowercase
Ju-Can Apr 8, 2023
af45225
Merge pull request #177 from Ju-Can/junit-parser
Ju-Can Apr 8, 2023
07a677f
Merge remote-tracking branch 'upstream/master'
Ju-Can Apr 8, 2023
1a1a519
add junit for commandDelete
Ju-Can Apr 8, 2023
0105c7b
remove unused classes and methods
Ju-Can Apr 8, 2023
cb66253
remove unused imports
Ju-Can Apr 8, 2023
ca5f28c
Merge pull request #178 from Ju-Can/junit-delete
Ju-Can Apr 8, 2023
2d2d74f
Merge pull request #179 from Ju-Can/remove-unused-code
Ju-Can Apr 8, 2023
b9a3a05
Merge remote-tracking branch 'upstream/master'
Ju-Can Apr 8, 2023
136ca27
add junit for storage
Ju-Can Apr 8, 2023
4d636e3
replace * import
Ju-Can Apr 8, 2023
9ab6903
Merge pull request #180 from Ju-Can/junit-storage
Ju-Can Apr 8, 2023
707b207
update welcome message format
Ju-Can Apr 8, 2023
27ebdc1
update storage test
Ju-Can Apr 8, 2023
8440b5d
remove unused imports
Ju-Can Apr 8, 2023
86f0ec2
Update FanZixian.md
FanZixian Apr 8, 2023
cc7ee58
Update DeveloperGuide.md
FanZixian Apr 8, 2023
90cf6db
Merge branch 'master' into master
arsdorintbp2003 Apr 8, 2023
059cf86
update docs
Ju-Can Apr 8, 2023
0f88ec9
Finished DG - TODO: JUnit Test for Account
arsdorintbp2003 Apr 8, 2023
b8aacbb
Update Checkstyle
arsdorintbp2003 Apr 8, 2023
fc2c543
Update Checkstyle #2
arsdorintbp2003 Apr 8, 2023
eb29e8e
Finished JUnit Test for Account + Passed all tests
arsdorintbp2003 Apr 9, 2023
8f4d26a
Fix checkstyle
arsdorintbp2003 Apr 9, 2023
4244307
Fix checkstyle Part 2
arsdorintbp2003 Apr 9, 2023
4c09678
Update md
FanZixian Apr 9, 2023
a51d273
Merge branch 'master' of https://github.com/FanZixian/tp
FanZixian Apr 9, 2023
d166c1d
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 9, 2023
346c71c
Update page
FanZixian Apr 9, 2023
537b31b
Merge pull request #182 from Ju-Can/update-DG/UG/PPP
FanZixian Apr 9, 2023
c664f22
Merge branch 'master' into master
FanZixian Apr 9, 2023
93e63a3
Merge pull request #183 from FanZixian/master
FanZixian Apr 9, 2023
0006c92
Fix UG Link Error
arsdorintbp2003 Apr 9, 2023
37f47e0
Update UG and DG
FanZixian Apr 9, 2023
f69911b
Merge branch 'master' of https://github.com/FanZixian/tp
FanZixian Apr 9, 2023
e5d329c
Merge pull request #184 from FanZixian/master
FanZixian Apr 9, 2023
9c32124
Merge pull request #181 from Ju-Can/welcome-message
GohJW Apr 9, 2023
60ad15e
Merge branch 'master' into master
arsdorintbp2003 Apr 9, 2023
2ebc561
Update & create a mock jar
arsdorintbp2003 Apr 9, 2023
b32ed75
Update test account
arsdorintbp2003 Apr 9, 2023
0d31649
Merge pull request #176 from arsdorintbp2003/master
Ju-Can Apr 10, 2023
c7958ef
Delete test.json
Ju-Can Apr 10, 2023
e12d9a1
update overview UI
Ju-Can Apr 10, 2023
58e2196
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 10, 2023
eaf488c
update UG DG
Ju-Can Apr 10, 2023
ad94d2d
Update DeveloperGuide.md
Ju-Can Apr 10, 2023
898b9ed
Update Storage.java
Ju-Can Apr 10, 2023
4a7efec
Merge pull request #185 from Ju-Can/overview-format
Ju-Can Apr 10, 2023
f02e2f7
Update ju-can.md
Ju-Can Apr 10, 2023
f14e92a
Merge pull request #186 from Ju-Can/update-doc
Ju-Can Apr 10, 2023
26d2b56
Update AboutUs.md
Ju-Can Apr 10, 2023
08bb894
Update AboutUs.md
Ju-Can Apr 10, 2023
680d559
update welcome message output to user
Ju-Can Apr 10, 2023
63be5d8
Update Storage.java
Ju-Can Apr 10, 2023
1d99b88
remove unused imports
Ju-Can Apr 10, 2023
83446f2
Update test account
arsdorintbp2003 Apr 10, 2023
186e34a
Update StorageTest.java
Ju-Can Apr 10, 2023
7401795
Merge branch 'AY2223S2-CS2113-T13-2:master' into master
arsdorintbp2003 Apr 10, 2023
a74d891
Delete unnessary file
arsdorintbp2003 Apr 10, 2023
c982e38
Merge branch 'master' of https://github.com/arsdorintbp2003/tp
arsdorintbp2003 Apr 10, 2023
3b44470
Update checkstyle + remove the COMMAND LIST MESSAGE
arsdorintbp2003 Apr 10, 2023
f658a6e
fix Junit + add User story
arsdorintbp2003 Apr 10, 2023
8b6c3cb
fix Junit part 2
arsdorintbp2003 Apr 10, 2023
30b40dd
update docs
Ju-Can Apr 10, 2023
087fcf9
Checkstyle
arsdorintbp2003 Apr 10, 2023
ce20651
Merge pull request #189 from Ju-Can/update-ppp
Ju-Can Apr 10, 2023
df3ebaa
Checkstyle part 2
arsdorintbp2003 Apr 10, 2023
89dbcc6
Merge pull request #187 from Ju-Can/account-welcome-message
GohJW Apr 10, 2023
6609863
Merge branch 'master' into master
GohJW Apr 10, 2023
676964e
Merge pull request #188 from arsdorintbp2003/master
GohJW Apr 10, 2023
50d3282
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 10, 2023
2243507
Remove previous userList created
GohJW Apr 10, 2023
3880441
Merge pull request #190 from GohJW/master
Ju-Can Apr 10, 2023
aeace56
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 10, 2023
e0dc50c
Added PPP
arsdorintbp2003 Apr 10, 2023
a11063c
Merge branch 'AY2223S2-CS2113-T13-2:master' into master
arsdorintbp2003 Apr 10, 2023
240aa32
Merge pull request #191 from arsdorintbp2003/master
arsdorintbp2003 Apr 10, 2023
bced6d4
Reformat DG table
GohJW Apr 10, 2023
190026c
Reformat UG table
GohJW Apr 10, 2023
f04e272
Fix table of contents
GohJW Apr 10, 2023
3401588
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 10, 2023
4501d8f
Merge pull request #192 from GohJW/master
GohJW Apr 10, 2023
e6fa1e5
Fix UG table
GohJW Apr 10, 2023
aa5a15a
Merge pull request #193 from GohJW/master
GohJW Apr 10, 2023
f8491b3
Fix ToC
arsdorintbp2003 Apr 10, 2023
7714e6a
fix table formatting
GohJW Apr 10, 2023
a7a49cf
Merge pull request #195 from GohJW/master
GohJW Apr 10, 2023
76e7382
Fix table bug
GohJW Apr 10, 2023
49e6f65
Merge pull request #196 from GohJW/master
GohJW Apr 10, 2023
b2c6ecb
Update DeveloperGuide.md
arsdorintbp2003 Apr 10, 2023
06ca2f4
Merge pull request #194 from arsdorintbp2003/master
arsdorintbp2003 Apr 10, 2023
362d65e
Add page breaks and remove expenselist.dat file
GohJW Apr 10, 2023
ac89c31
Merge pull request #197 from GohJW/master
GohJW Apr 10, 2023
2970671
Format UG
GohJW Apr 10, 2023
939d8c9
Merge pull request #198 from GohJW/master
GohJW Apr 10, 2023
84c488f
Remove note and ToC
GohJW Apr 10, 2023
ea1d747
Merge branch 'master' into master
GohJW Apr 10, 2023
e33531f
Merge pull request #199 from GohJW/master
GohJW Apr 10, 2023
0db0122
Format DG
GohJW Apr 10, 2023
9d9eaf7
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 10, 2023
02b3ad0
Merge pull request #200 from GohJW/master
GohJW Apr 10, 2023
6331618
update ToC
Ju-Can Apr 10, 2023
ecbbcaa
update ToC
Ju-Can Apr 10, 2023
e6ba57b
Update DG formatting
GohJW Apr 10, 2023
6b276c1
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T13-02/tp
GohJW Apr 10, 2023
0b7c0c4
Merge pull request #201 from GohJW/master
GohJW Apr 10, 2023
53b633b
update DG ToC
Ju-Can Apr 10, 2023
9ae5fe2
Update DeveloperGuide.md
GohJW Apr 10, 2023
acfb6bb
Update DeveloperGuide.md
GohJW Apr 10, 2023
e8438ad
Update DeveloperGuide.md
GohJW Apr 10, 2023
f10fee7
Update ju-can.md
Ju-Can Apr 10, 2023
483a9f8
Update DeveloperGuide.md
GohJW Apr 10, 2023
962c566
Add Comment
arsdorintbp2003 Apr 10, 2023
40cb849
Update DeveloperGuide.md
GohJW Apr 10, 2023
39b2b4e
Update DeveloperGuide.md
GohJW Apr 10, 2023
3480bc0
Merge pull request #202 from arsdorintbp2003/master
Ju-Can Apr 10, 2023
f35bf6c
Update helper and Message file
Ju-Can Apr 10, 2023
c8f14f1
Merge pull request #203 from Ju-Can/helper-page
Ju-Can Apr 10, 2023
b8bcd99
fix noSuchElement upon terminating
Ju-Can Apr 10, 2023
ac50f7a
remove unused import
Ju-Can Apr 10, 2023
97b212f
Merge pull request #204 from Ju-Can/bug-fix
Ju-Can Apr 10, 2023
1d375b9
check hasNextLine for scanner
Ju-Can Apr 10, 2023
d3b79ed
Merge pull request #206 from Ju-Can/scanner-bugfix
Ju-Can Apr 10, 2023
dae27f2
Update UserGuide.md
Ju-Can Apr 10, 2023
ff796b1
Update UserGuide.md
GohJW Apr 10, 2023
07be2dc
Update DeveloperGuide.md
Ju-Can Apr 10, 2023
5a648af
Update DeveloperGuide.md
Ju-Can Apr 10, 2023
4494fe2
Change PPP filename to the correct format
arsdorintbp2003 Apr 10, 2023
3fbd41a
Change PPP filename to the correct format
arsdorintbp2003 Apr 10, 2023
0bdb9ba
Change PPP filename to the correct format
arsdorintbp2003 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
18 changes: 1 addition & 17 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,4 @@ jobs:
java-package: jdk+fx

- 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
run: ./gradlew check
9 changes: 5 additions & 4 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Contributors

Display | Name | Github Profile | Homepage
---|:---:|:---:|:---:
![](https://avatars0.githubusercontent.com/u/22460123?s=100) | Jeffry Lum | [Github](https://github.com/j-lum/) | [Homepage](https://se.kasugano.moe)
![](https://avatars0.githubusercontent.com/u/1673303?s=100) | Damith C. Rajapakse | [Github](https://github.com/damithc/) | [Homepage](https://www.comp.nus.edu.sg/~damithch/)
| Display | Name | Github Profile | Homepage |
|------------------------------------------------------------|:-------------------:|:-------------------------------------:|:--------------------------------------------------:|
| ![](https://media.licdn.com/dms/image/C5603AQECXBzH5HvYew/profile-displayphoto-shrink_800_800/0/1654775943351?e=1683763200&v=beta&t=2H6AN8qbcm5b9uCpDSRhNNOm2qgv4mn21XY2f1QisEM)) | Bui Phuong Nam | [Github](https://github.com/j-lum/) | [Homepage](https://github.com/arsdorintbp2003) |
| ![](https://avatars0.githubusercontent.com/u/1673303?s=100) | Damith C. Rajapakse | [Github](https://github.com/damithc/) | [Homepage](https://www.comp.nus.edu.sg/~damithch/) |

# I would like to join this list. How can I help the project

For more information, please refer to our [contributor's guide](https://oss-generic.github.io/process/).
3 changes: 3 additions & 0 deletions META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: seedu.duke.Duke

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
# Duke project T13-2

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
6 changes: 6 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ repositories {
dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.0'

// https://mvnrepository.com/artifact/org.json/json
implementation 'org.json:json:20220924'

implementation 'org.threeten:threeten-extra:1.7.2'
}

test {
Expand Down Expand Up @@ -43,4 +48,5 @@ checkstyle {

run{
standardInput = System.in
enableAssertions = true
}
15 changes: 8 additions & 7 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# About us

Display | Name | Github Profile | Portfolio
--------|:----:|:--------------:|:---------:
![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
| Display | Name | Github Profile | Portfolio |
|-----------------------------------------------------|:--------------:|:--------------------------------------------:|:----------------------------------------:|
| ![](https://via.placeholder.com/100.png?text=Photo) | FanZixian | [Github](https://github.com/FanZixian) | [Portfolio](docs/team/fanzixian.md) |
| ![](https://via.placeholder.com/100.png?text=Photo) | GohJinWeiAaron | [Github](https://github.com/GohJW) | [Portfolio](docs/team/gohjinweiaaron.md) |
| ![](https://via.placeholder.com/100.png?text=Photo) | Zhang Zhitong | [Github](https://github.com/Zhang-Zhitong) | [Portfolio](docs/team/zhangzhitong.md) |
| | Ju Can | [Github](https://github.com/ju-can) | |
| ![](https://via.placeholder.com/100.png?text=Photo) | Bui Phuong Nam | [Github](https://github.com/arsdorintbp2003) | [Porfolio](docs/team/BuiPhuongNam.md) |

69 changes: 63 additions & 6 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,87 @@

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

* [JSON-java](https://github.com/stleary/JSON-java)
* [three-ten-extra](https://www.threeten.org/threeten-extra/)
* * Requesting and Parsing of data from API into Java

Choose a reason for hiding this comment

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

Appears to be a duplicated bullet point in this line, possible formatting error?

* https://www.youtube.com/watch?v=lDEfoSwyYFg

Choose a reason for hiding this comment

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

I believe it would be beneficial if this link was a hyperlink, making it easier for readers to click on it.

## Design & implementation

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

Choose a reason for hiding this comment

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

Perhaps this should be replaced with something along the lines of "This section describes the design and implementation of the product, with UML diagrams and code snippets where applicable." instead.

## Design
![](diagrams/Overall.png)
Our main `Duke` class is responsible for the instantiation and launch of our application.

Choose a reason for hiding this comment

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

There is a formatting issue at this line. I think a double space is missing on line 14 to make it a new paragraph

Choose a reason for hiding this comment

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

Hmm, I see that your product is called Expense Tracker but the Main Class for this product is called Duke. Perhaps it would be better to rename the Class to fit the product? So that I as a developer won't be confused as to why the class is named Duke.

Our overall project design is split into 5 components, `command`, `common`,`data`, `storage` and `parser`.
- `command`: The command executor.
- `data`: Holds data and data structures of our application.
- `parser`: Reads data from the user input and parses it into an 'executable' command.
- `common`: Holds mainly static data that is used by multiple components.
- `storage`: Handles the reading and storing of our data.

## Implementation
### 'Add' feature
This mechanism is facilitated by `CommandAdd`, which extends `Command`, as well as `ParserAdd`. `ParserAdd` parses the
user input into a string of words `parsedInput[]` which `CommandAdd` then stores internally. `CommandAdd` also stores an
internal reference to the list of expenses `expenseList` to be added to.

`CommandAdd` implements the following operations:
- `CommandAdd#execute()` -- Instantiates the `Expense` object with the parsed inputs and adds it to `expenseList`
- `CommandAdd#roundInput(amount)` -- Rounds the expense amount to 2 decimal places.

`ParserAdd` implements the following operations:
- `ParserAdd#parseInput(userInput)` -- Parses the user input into an array of strings for `CommandAdd` to read.
- `ParserAdd#checkType(input)` -- Checks the type of the input corresponding to its index.
- `ParserAdd#substringIndex(type)` -- Returns the substring index of the start of the user input.

The `CommandAdd#execute()` operation is exposed in the main `Duke` class, while the operations in `ParserAdd` are
exposed in the `Parser` class.

Given below is an example usage of the feature.
![](./diagrams/AddFeature.png)

Choose a reason for hiding this comment

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

Consider describing a little bit about what's going on in the functions called, like use refs or something.

Choose a reason for hiding this comment

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

Perhaps it would be nice to standardize the fonts in the diagrams, as the words in some diagrams are bolded and the words in others are not bolded


Step 1. The user executes `add amt/24 t/02-02-2012` as the `userInput` to add a new `Expense` into the the list of
expenses. `Duke` calls `Parser#extractCommandKeyword(userInput)` to parse the input and determines that the `add` command is called.

Step 2. `Duke` instantiates a new `CommandAdd` and calls `CommandAdd#execute()`, which in turn calls
`Parser#extractAddParameters(userInput)` and `ExpenseList#getExpenseList()`.

Step 3. `Parser#extractAddParameters(userInput)` then calls `ParserAdd#parseInput(userInput)` and returns the parsed
input as a string of words `parsedInput[]`.

Step 4. `CommandAdd#execute` instantiates a new `Expense` object with the returned `parsedInput[]` and adds it to
`expenseList`.

## Product scope
### Target user profile

{Describe the target user profile}
- People who want to keep track of their expenses easily
- Users who travel overseas often and want to keep track of their expenses throughout their travels

### Value proposition

{Describe the value proposition: what problem does it solve?}
- Our expense tracker is a simple program that allows users to track their expenses
- With simple commands and ease of use, users are able to use our tracker with little to no experience.

## User Stories

|Version| As a ... | I want to ... | So that I can ...|
|--------|----------|---------------|------------------|
|v1.0|new user|see usage instructions|refer to them when I forget how to use the application|
|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list|
| Version | As a ... | I want to ... | So that I can ... |
|---------|------|----------------------------------------|------------------------------------------------------------------|
| v1.0 | new user | add a new entry for my expenses | - |
| v1.0 | user | delete entries | - |
| v1.0 | user | add expenses with dates | track how much I spend each day |
| v1.0 | user | add expenses of different categories | keep track of what I spend on |
| v1.0 | user | see all my past expenses | plan my budget accordingly |
| v2.0 | user | add expenses with specified currencies | know the exact amount I spent in different currencies |
| v2.0 | user | sort my expenses by category/date | better keep track of my expenses through either date or category |
| v2.0 | user | - | - |
| v2.0 | user | - | - |


## Non-Functional Requirements

{Give non-functional requirements}
* Expense tracker should function with or without an internet connection.
* Expense tracker should work even on days where the forex market is closed

## Glossary

Expand Down
152 changes: 135 additions & 17 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,155 @@

## Quick Start

{Give steps to get started quickly}

1. Ensure that you have Java 11 or above installed.
1. Down the latest version of `Duke` from [here](http://link.to/duke).
1. Down the latest version of `Duke` from [here](https://github.com/AY2223S2-CS2113-T13-2/tp/releases).
1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar Duke.jar` command to run the application.
1. Enter your name when prompted in the command box and press enter.
1. Type the command in the command box and press Enter to execute it.
Some example commands you can try:

## Features
* `add amt/100 t/15-03-2023`: Add an expense entry with a value of SGD100.0 and a date of 15th March 2023 to the expense list.
* `list`: List all expenses in the expense list.
* `delete 1`: Delete the first entry in the expense list.
* `sort D`: Sort the expenses by date.
* `category food`: Find all expenses with food category.

{Give detailed description of each feature}
## Features

### Adding a todo: `todo`
### Adding an expense: `add`
Adds a new item to the list of todo items.

Format: `todo n/TODO_NAME d/DEADLINE`
Format: `add amt/EXPENSE_AMOUNT t/TIME [cat/EXPENSE_DESCRIPTION] [cur/EXPENSE_CURRENCY]`

* The `DEADLINE` can be in a natural language format.
* The `TODO_NAME` cannot contain punctuation.
* The `TIME` must be in the DD-MM-YYYY format.
* The `EXPENSE_AMOUNT` must be an integer or decimal number.
* The `EXPENSE_DESCRIPTION` can be any word or phrase that does not contain the backdash symbol`/` or whitespace symbol.
* The `EXPENSE_CURRENCY` has 22 currencies to choose from. If the input currency is not found in the list of currencies
available, the currency will default to SGD.
* The command parameters may be entered in any order. If multiple of the same parameter type is inputted, such as in
`add amt/10 amt/100 t/11-11-2023` only the first parameter `amt/10` of its kind is used.

Example of usage:
Example of usage:

`todo n/Write the rest of the User Guide d/next week`
`add amt/10 t/11-11-2022`

`todo n/Refactor the User Guide to remove passive voice d/13/04/2020`
`add amt/9.5 t/01-11-2022 cat/food cur/USD`

## FAQ
Expected output:

```
____________________________________________________________
The following expense is successfully added:
SGD10.00 cat:uncategorized date:11/11/2022
Now you have 1 expense in the list.
____________________________________________________________
```
```
____________________________________________________________
The following expense is successfully added:
USD9.50 cat:food date:01/11/2022
Now you have 2 expenses in the list.
____________________________________________________________
```


### Listing all expenses: `list`
List all tracked expenses in the expense list.

Format: `list`

* Will display `Sorry, there are no expenses tracked currently.` if expense list is empty.

Example of usage:

`list`


### Deleting an expense entry: `delete`
Delete expense entry with index X in the expense list.

Format: `delete INDEX`

* INDEX is entry number INDEX in the expense list displayed with `list' command, following base-1 indexing.
* Will display `Invalid expense index. Please try again.` if INDEX is greater than number of items in the list.

Example of usage:

`delete 1`

`delete 7`

### Calculating total expenses: `total`
Calculates the total expenses in the expense list in `SGD`.

Format `total`

* Whenever an entry is added into the expense list, the exchange rate for the date before the input date is recorded. As
exchange rate data is unavailable on weekends and public holidays, the exchange rate of the previous working day is
taken instead.
* If no internet access is available, a preset exchange rate is taken instead.

Example of usage:

`total`

**Q**: How do I transfer my data to another computer?
Expected output:
```
____________________________________________________________
Your total expenses add up to:
SGD23.41
____________________________________________________________
```

### Sorting all current expenses: `sort`
Soring all current expenses in the expense list based on sortBy criteria.

Format: `delete SORTBY`

* SORTBY represents the criteria the user want to sort their expenses list and display by.
* If user wants to sort the expenses list by Date, he/she should enter "D".
* If user wants to sort the expenses list by Category through alphabet order, he/she should enter "C".

Example of usage:

`sort D`

`sort C`

### Obtaining expenses: `category`
Obtain all the expenses with specified category, also obtain the category set to tell user what categories exist now.

Format: `category CATEGORY`

* CATEGORY represents the category that user want.
* If the category doesn't belong to the categories that user have entered before, it will tell the user to switch to another one.
* The method also will tell user how many categories they have, and also what are these categories,
* so as to better help them with futuer obtaining purpose

Example of usage:

`category food`

`category clothes`


### Exiting the program: `exit`
Exits the programn without saving expense list.

Format: `exit`

Example of usage:

`exit`


## FAQ

**A**: {your answer here}

## Command Summary

{Give a 'cheat sheet' of commands here}

* Add todo `todo n/TODO_NAME d/DEADLINE`
* Add expense `amt/EXPENSE_AMOUNT t/TIME cat/EXPENSE_DESCRIPTION`
* List all expenses `list`
* Delete entry X in list `delete X`
* List total `total`
Binary file added docs/diagrams/AddFeature.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 41 additions & 0 deletions docs/diagrams/AddFeature.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
@startuml
'https://plantuml.com/sequence-diagram

box 'Add'
participant ":Duke" as Duke
participant "parser:Parser" as Parser
participant "parserAdd:ParserAdd" as ParserAdd
participant "expenseList:ExpenseList" as ExpenseList
participant ":CommandAdd" as CommandAdd
-> Duke: input
Activate Duke
Duke -> Parser: extractCommandKeyword(input)
Activate Parser
Parser --> Duke
Deactivate Parser
Duke -> CommandAdd**:
Activate CommandAdd
CommandAdd --> Duke
Deactivate CommandAdd
Duke -> CommandAdd: execute()
Activate CommandAdd
CommandAdd -> Parser: extractAddParameters(input)
Activate Parser
Parser -> ParserAdd: parseInput(input)
Activate ParserAdd
ParserAdd --> Parser: parsedInput
Deactivate ParserAdd
Parser --> CommandAdd: parsedInput
Deactivate Parser
CommandAdd -> ExpenseList: getExpenseList()
Activate ExpenseList
ExpenseList --> CommandAdd: expenseList
Deactivate ExpenseList
CommandAdd -> ExpenseList: add(Expense)
Activate ExpenseList
ExpenseList --> CommandAdd
Deactivate ExpenseList
CommandAdd --> Duke
Deactivate CommandAdd
Destroy CommandAdd
@enduml
Loading