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-F11-1] FITNUS #27

Open
wants to merge 325 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
325 commits
Select commit Hold shift + click to select a range
5106842
Merge branch 'master' into master
MrOPPA1 Oct 19, 2023
c0899a9
Merge pull request #14 from MrOPPA1/master
MrOPPA1 Oct 19, 2023
45ba6ff
Merge branch 'master' into exercise-log-class
Remy9926 Oct 20, 2023
2b1ec01
Merge pull request #11 from Remy9926/exercise-log-class
Remy9926 Oct 20, 2023
223a438
fix bugs
MrOPPA1 Oct 20, 2023
8f246d9
Implement ExerciseLog into Duke
Remy9926 Oct 20, 2023
945441b
Resolve Merge Conflict in Parser Class
Remy9926 Oct 20, 2023
46d39d9
Remove dummy assert false statement
Remy9926 Oct 20, 2023
43b922f
Refactor Parser Class for LogCommand handling
Remy9926 Oct 20, 2023
066cdd2
Remove unused import
Remy9926 Oct 20, 2023
540e4c1
Fix ViewLogCommand not displaying how amount of exercises logged
Remy9926 Oct 20, 2023
8f99327
Merge pull request #18 from Remy9926/exercise-log-class
Remy9926 Oct 20, 2023
3c1a313
Fix checkstyle errors
Remy9926 Oct 20, 2023
d127d10
Fix checkstyle errors
Remy9926 Oct 20, 2023
cf3dc54
Merge pull request #19 from Remy9926/fix-checkstyle-errors
Remy9926 Oct 20, 2023
2c24bdd
Enable assertions in build.gradle
Remy9926 Oct 20, 2023
15f9e6c
Merge pull request #20 from Remy9926/enable-assertions
Remy9926 Oct 20, 2023
29e56e7
Add comments to ExerciseLog and associated classes
Remy9926 Oct 20, 2023
2a84d82
Merge pull request #21 from Remy9926/exercise-log-class
Remy9926 Oct 20, 2023
a0bdfd1
Update DG with Log update feature (#22)
Remy9926 Oct 22, 2023
c3c2e90
fix meal
MrOPPA1 Oct 27, 2023
9a4efd0
Merge pull request #27 from MrOPPA1/master
MrOPPA1 Oct 27, 2023
275d778
Update DeveloperGuide.md
kevinz420 Oct 27, 2023
caea4fd
Fix errors (#29)
Remy9926 Oct 27, 2023
92e4bc3
Add update functionality to ExerciseLog class (#30)
Remy9926 Oct 27, 2023
fca8b8d
Add log and update commands to UG
Remy9926 Oct 27, 2023
2c759a9
Update UserGuide.md
kevinz420 Nov 3, 2023
662d141
add goal functuon content
J-Y-Yan Nov 3, 2023
21e424a
Update DeveloperGuide.md
J-Y-Yan Nov 3, 2023
4daa67b
Update DeveloperGuide.md
J-Y-Yan Nov 3, 2023
31f14f8
Update DeveloperGuide.md
J-Y-Yan Nov 3, 2023
76140cf
Update DeveloperGuide.md
J-Y-Yan Nov 3, 2023
2f91d2f
Update DeveloperGuide.md
J-Y-Yan Nov 3, 2023
6056f8b
Update DeveloperGuide.md
J-Y-Yan Nov 3, 2023
c9d8ac5
Add documentation
J-Y-Yan Nov 3, 2023
90e81d7
Merge branch 'master' of https://github.com/AY2324S1-CS2113-F11-1/tp
J-Y-Yan Nov 3, 2023
6b19e90
Update UserGuide.md
J-Y-Yan Nov 3, 2023
6f95551
Update UserGuide.md
J-Y-Yan Nov 3, 2023
664d4e0
update exception handler
MrOPPA1 Nov 3, 2023
264bf1b
update user guide
MrOPPA1 Nov 3, 2023
74fa347
Merge pull request #31 from AY2324S1-CS2113-F11-1/meal
MrOPPA1 Nov 3, 2023
3383f86
add deleteGoal command
J-Y-Yan Nov 3, 2023
b0df278
Fix checkstyle errors (#32)
Remy9926 Nov 3, 2023
dc239a8
Standardize assert method used (#33)
Remy9926 Nov 3, 2023
d658f3f
Update Parser.java
Remy9926 Nov 3, 2023
4a0781e
Throw exceptions in ExerciseLog and associated classes (#35)
Remy9926 Nov 3, 2023
003d1b1
Implement viewing exercises in ExerciseLog (#36)
Remy9926 Nov 3, 2023
ee55f79
Fix PED bugs (#60)
Remy9926 Nov 3, 2023
6d21513
Continue fixing PED issues (#72)
Remy9926 Nov 4, 2023
02fbc12
Add Remy9926 PPP (#73)
Remy9926 Nov 4, 2023
0e9c3c8
Implement additional features + information (#74)
Remy9926 Nov 7, 2023
08bd893
add delete goal function
J-Y-Yan Nov 9, 2023
0915bdc
remove unused class and correct indentation issues
J-Y-Yan Nov 9, 2023
4d860ff
Correct indentation issues
J-Y-Yan Nov 9, 2023
65d1a5d
Correct indentation errors and give more detailed documentation
J-Y-Yan Nov 9, 2023
0b6eb8c
Correct indentation errors
J-Y-Yan Nov 9, 2023
5f1d1ce
Merge pull request #75 from AY2324S1-CS2113-F11-1/deleteGoal
J-Y-Yan Nov 9, 2023
a847a3d
Add view Goal list funcationality
J-Y-Yan Nov 9, 2023
c3fd3a3
Merge pull request #76 from AY2324S1-CS2113-F11-1/viewGoal
J-Y-Yan Nov 9, 2023
6204a80
Update AboutUs.md
J-Y-Yan Nov 9, 2023
3a01fbd
Update AboutUs.md
J-Y-Yan Nov 9, 2023
19d6c1a
Update UserGuide.md
J-Y-Yan Nov 9, 2023
9ad6efa
Update UserGuide.md
J-Y-Yan Nov 9, 2023
6e73839
Update UserGuide.md
J-Y-Yan Nov 9, 2023
3f4a38d
Update UserGuide.md
J-Y-Yan Nov 9, 2023
43758c6
Update UserGuide.md
J-Y-Yan Nov 9, 2023
fd0cc7d
Update UserGuide.md
J-Y-Yan Nov 9, 2023
ae4184c
Update UserGuide.md
J-Y-Yan Nov 9, 2023
10865ac
Update UserGuide.md
J-Y-Yan Nov 9, 2023
6d212b8
Update UserGuide.md
J-Y-Yan Nov 9, 2023
f1cd21a
Update UserGuide.md
J-Y-Yan Nov 9, 2023
f228f50
Update UserGuide.md
J-Y-Yan Nov 9, 2023
81d8045
Update UserGuide.md
J-Y-Yan Nov 9, 2023
3a733a2
Update UserGuide.md
J-Y-Yan Nov 9, 2023
791812f
Update UserGuide.md
J-Y-Yan Nov 9, 2023
dcb4374
Update UserGuide.md
J-Y-Yan Nov 9, 2023
8e8861f
Update UserGuide.md
J-Y-Yan Nov 9, 2023
568ea6f
Update UserGuide.md
J-Y-Yan Nov 9, 2023
7b542b6
Update UserGuide.md
J-Y-Yan Nov 9, 2023
d77e127
Update UserGuide.md
J-Y-Yan Nov 9, 2023
ace0288
Update UserGuide.md
J-Y-Yan Nov 9, 2023
22f9aba
Update UserGuide.md
J-Y-Yan Nov 9, 2023
9e2048e
Update UserGuide.md
J-Y-Yan Nov 9, 2023
4854a86
Update UserGuide.md
J-Y-Yan Nov 9, 2023
92e2d4e
Update UserGuide.md
J-Y-Yan Nov 9, 2023
a666a62
Update UserGuide.md
J-Y-Yan Nov 9, 2023
ccc9a90
Update UserGuide.md
J-Y-Yan Nov 9, 2023
d945506
Update UserGuide.md
J-Y-Yan Nov 9, 2023
d3ecf35
Update UserGuide.md
J-Y-Yan Nov 9, 2023
d251389
Update UserGuide.md
J-Y-Yan Nov 9, 2023
cea9d79
Update UserGuide.md
J-Y-Yan Nov 9, 2023
3b75cd6
Update UserGuide.md
J-Y-Yan Nov 9, 2023
f9e1a8b
Update UserGuide.md
J-Y-Yan Nov 9, 2023
398794d
Update UserGuide.md
J-Y-Yan Nov 9, 2023
c8c2562
Update UserGuide.md
J-Y-Yan Nov 9, 2023
59c07d4
Update UserGuide.md
J-Y-Yan Nov 9, 2023
8e0ce34
Update UserGuide.md
J-Y-Yan Nov 9, 2023
7ff361c
Update UserGuide.md
J-Y-Yan Nov 9, 2023
5c36530
Update UserGuide.md
J-Y-Yan Nov 9, 2023
a95800d
Update UserGuide.md
J-Y-Yan Nov 9, 2023
ebdbc39
Update UserGuide.md
J-Y-Yan Nov 9, 2023
fa2837f
Update UserGuide.md
J-Y-Yan Nov 9, 2023
08d105c
Update UserGuide.md
J-Y-Yan Nov 9, 2023
cb47052
Update UserGuide.md
J-Y-Yan Nov 9, 2023
c72765b
Allow more format for user inputs
J-Y-Yan Nov 9, 2023
6ca3648
Add achieve goal functionality
J-Y-Yan Nov 9, 2023
a1640f3
Correct symbol for decode
J-Y-Yan Nov 9, 2023
ae819b3
Merge pull request #81 from AY2324S1-CS2113-F11-1/achieveGoal
J-Y-Yan Nov 9, 2023
e6b83c0
Update UserGuide.md
J-Y-Yan Nov 9, 2023
6990891
Update UserGuide.md
J-Y-Yan Nov 9, 2023
5971c54
Update the help message
J-Y-Yan Nov 9, 2023
1a541bf
Update UserGuide.md
J-Y-Yan Nov 9, 2023
13553d7
Update UserGuide.md
J-Y-Yan Nov 9, 2023
d3879a6
Add view achievement functionality
J-Y-Yan Nov 9, 2023
8911f32
Correct Indentations
J-Y-Yan Nov 9, 2023
5374a8c
Update UserGuide.md
J-Y-Yan Nov 9, 2023
41ef618
Update UserGuide.md
J-Y-Yan Nov 9, 2023
493a621
Update UserGuide.md
J-Y-Yan Nov 9, 2023
8fec492
Update UserGuide.md
J-Y-Yan Nov 9, 2023
f0c41ae
Merge pull request #82 from AY2324S1-CS2113-F11-1/viewAchievement
J-Y-Yan Nov 9, 2023
f136a4a
PPP
kevinz420 Nov 9, 2023
dbe4c83
Merge pull request #83 from kevinz420/master
kevinz420 Nov 9, 2023
b493a99
Bug fix in addGoal command execution
J-Y-Yan Nov 9, 2023
2ee5806
Merge pull request #84 from AY2324S1-CS2113-F11-1/viewAchievement
J-Y-Yan Nov 9, 2023
1752378
Update UserGuide.md
J-Y-Yan Nov 11, 2023
a773093
Correct feedback to user of delete goal method
J-Y-Yan Nov 11, 2023
ead7772
Update UserGuide.md
J-Y-Yan Nov 11, 2023
970e22b
Update UserGuide.md
J-Y-Yan Nov 11, 2023
31efa75
Update UserGuide.md
J-Y-Yan Nov 11, 2023
583de53
Add date parse function for goal object
J-Y-Yan Nov 11, 2023
6b0a13e
Update UserGuide.md
J-Y-Yan Nov 11, 2023
a428600
Add date format conversion from user input to MMM d, yyyy
J-Y-Yan Nov 11, 2023
dcfb206
Merge pull request #87 from AY2324S1-CS2113-F11-1/timePraserOfGoal
J-Y-Yan Nov 11, 2023
2d8faaa
Update UserGuide.md
J-Y-Yan Nov 11, 2023
df80e92
Update UserGuide.md
J-Y-Yan Nov 11, 2023
cc0fff1
Update UserGuide.md
J-Y-Yan Nov 11, 2023
d921be9
Update UserGuide.md
J-Y-Yan Nov 11, 2023
b4a5479
Update UserGuide.md
J-Y-Yan Nov 11, 2023
0192df9
Rename variable storage and file to exerciseLogStorage and exerciseLo…
J-Y-Yan Nov 11, 2023
c54de2d
Add FileIO function to restore saved goal record
J-Y-Yan Nov 11, 2023
c00c0c6
Bug fix in loading saved data successfully but clear data in save fil…
J-Y-Yan Nov 11, 2023
37a9f61
Add documentation for Date class
J-Y-Yan Nov 11, 2023
9b4a10e
Correct all checkStyle errors, including indentations, word limit in …
J-Y-Yan Nov 11, 2023
64b2a2a
Merge pull request #90 from AY2324S1-CS2113-F11-1/goalStorage
J-Y-Yan Nov 11, 2023
ecb012d
Change all path filed into constant and correct some warnings in usin…
J-Y-Yan Nov 11, 2023
1dc8963
Add FiloIO for achievement record
J-Y-Yan Nov 11, 2023
c817f41
Merge pull request #91 from AY2324S1-CS2113-F11-1/heads/FileIO-achiev…
J-Y-Yan Nov 11, 2023
5193f21
Correct variables name to fullfill check style requirements
J-Y-Yan Nov 11, 2023
7673bc8
rewrite date and dateTime class
MrOPPA1 Nov 12, 2023
75395ef
Merge pull request #94 from AY2324S1-CS2113-F11-1/meal
MrOPPA1 Nov 13, 2023
ed9ce44
Add category enum into Meal class.
MrOPPA1 Nov 13, 2023
49b1549
Delete the output of saving files.
MrOPPA1 Nov 13, 2023
db529b9
Merge pull request #95 from AY2324S1-CS2113-F11-1/meal
MrOPPA1 Nov 13, 2023
ed8d15c
Rewrite user guide.
MrOPPA1 Nov 14, 2023
43cfd28
Merge pull request #96 from AY2324S1-CS2113-F11-1/meal
MrOPPA1 Nov 14, 2023
4ed88a3
Rewrite AboutUs.md .
MrOPPA1 Nov 14, 2023
fff0055
Merge pull request #97 from AY2324S1-CS2113-F11-1/meal
MrOPPA1 Nov 14, 2023
5baed11
Create j-y-yan.md
J-Y-Yan Nov 14, 2023
632a82b
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
f181617
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
b63c94a
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
15c64cd
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
5d8345e
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
922981d
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
007bc02
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
25c5ce4
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
2286b58
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
6b9dbc6
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
a95ed63
Remove IncorrectDateException class
J-Y-Yan Nov 14, 2023
b7515da
Change exerciselog command names (#92)
Remy9926 Nov 14, 2023
c7b817c
Kevinz420 bug fixes (#98)
Remy9926 Nov 14, 2023
8ef7eee
Bug fixes (#99)
Remy9926 Nov 14, 2023
52db76c
Bug fixes (#100) (#101)
Remy9926 Nov 14, 2023
5133f60
Remove redundant content on table
J-Y-Yan Nov 14, 2023
07875cb
Recover GoalCommand class
J-Y-Yan Nov 14, 2023
24f568d
Remove redundant comment block on duke class
J-Y-Yan Nov 14, 2023
39ccf2f
Recover GoalStorage Class
J-Y-Yan Nov 14, 2023
80a6ac8
Recover AchmStorage Class
J-Y-Yan Nov 14, 2023
8a8e8c2
Recover Duke class
J-Y-Yan Nov 14, 2023
71821d8
Recover Duke class
J-Y-Yan Nov 14, 2023
561c41d
Recover Duke Class
J-Y-Yan Nov 14, 2023
5113d15
Recover Praser
J-Y-Yan Nov 14, 2023
592656a
Correct Storage class
J-Y-Yan Nov 14, 2023
d5f28a3
Add goal package and goal list class
J-Y-Yan Nov 14, 2023
f911de5
Recover TextUi class
J-Y-Yan Nov 14, 2023
7e6e5c8
Recover all goal command executions
J-Y-Yan Nov 14, 2023
647881b
Move Goal class into goal package
J-Y-Yan Nov 14, 2023
679ebd0
Remove the abstraction of Storage Class
J-Y-Yan Nov 14, 2023
738c947
Correct documentations
J-Y-Yan Nov 14, 2023
0a3c513
Recover the passed time detect funtion of Date Class
J-Y-Yan Nov 14, 2023
fd754e2
Update DeveloperGuide.md
J-Y-Yan Nov 14, 2023
fb7205f
Update DeveloperGuide.md
J-Y-Yan Nov 14, 2023
e97fd48
Change date time class to allow or disallow past detect
J-Y-Yan Nov 14, 2023
717295c
Simplify if-else condition
J-Y-Yan Nov 14, 2023
ac40ab8
Correct GoalList import issues
J-Y-Yan Nov 14, 2023
4fcc5df
Add Project Portfolio Page.
MrOPPA1 Nov 14, 2023
34bbb4e
Correct all documentation issues, including
J-Y-Yan Nov 14, 2023
28cb8d4
Merge branch 'master' of https://github.com/AY2324S1-CS2113-F11-1/tp
MrOPPA1 Nov 14, 2023
c8401cf
Update kevinz420.md
kevinz420 Nov 14, 2023
1bfbd1a
doc
MrOPPA1 Nov 14, 2023
6638b6f
Merge branch 'master' of https://github.com/AY2324S1-CS2113-F11-1/tp
MrOPPA1 Nov 14, 2023
bd7f8a7
Fix error
MrOPPA1 Nov 14, 2023
72a88df
Bug fixes (#103)
Remy9926 Nov 14, 2023
ea7f8d3
Fix Category enum.
MrOPPA1 Nov 14, 2023
815bf5f
Merge branch 'master' of https://github.com/AY2324S1-CS2113-F11-1/tp
MrOPPA1 Nov 14, 2023
d3e8ce6
Fix Category enum.
MrOPPA1 Nov 14, 2023
20aee5d
fix bugs
MrOPPA1 Nov 14, 2023
9503ff2
Merge pull request #104 from AY2324S1-CS2113-F11-1/meal_
MrOPPA1 Nov 14, 2023
0031283
Complete help message for goal related class
J-Y-Yan Nov 14, 2023
deee6b7
Redundant change
J-Y-Yan Nov 14, 2023
0936716
Recover storage for goal
J-Y-Yan Nov 14, 2023
8234aea
fix missing
MrOPPA1 Nov 14, 2023
999f916
Merge branch 'master' into meal_
MrOPPA1 Nov 14, 2023
85c86ab
Merge pull request #105 from AY2324S1-CS2113-F11-1/meal_
MrOPPA1 Nov 14, 2023
5c276b3
Update mroppa1.md
J-Y-Yan Nov 14, 2023
1184a29
Update j-y-yan.md
J-Y-Yan Nov 14, 2023
ce334db
Update UserGuide.md
J-Y-Yan Nov 14, 2023
7f4f941
Update UserGuide.md
J-Y-Yan Nov 14, 2023
7213833
Update UserGuide.md
J-Y-Yan Nov 14, 2023
5235a0a
Update UserGuide.md
J-Y-Yan Nov 14, 2023
dc88434
PR-V2.1
MrOPPA1 Nov 15, 2023
a59ae1b
Merge pull request #107 from AY2324S1-CS2113-F11-1/meal_
MrOPPA1 Nov 15, 2023
6d5145b
Update UserGuide.md
J-Y-Yan Nov 18, 2023
5aac026
Update UserGuide.md
J-Y-Yan Nov 18, 2023
5847537
Update UserGuide.md
J-Y-Yan Nov 18, 2023
aa02ae5
Update UserGuide.md
J-Y-Yan Nov 18, 2023
b5f5bb1
Update UserGuide.md
J-Y-Yan Nov 18, 2023
8cd19f7
Update UserGuide.md
J-Y-Yan Nov 18, 2023
d21417d
Update UserGuide.md
J-Y-Yan Nov 18, 2023
3a6ab4f
Update UserGuide.md
J-Y-Yan Nov 18, 2023
77e3033
Update UserGuide.md
J-Y-Yan Nov 18, 2023
7a96072
Update UserGuide.md
J-Y-Yan Nov 18, 2023
46d39f9
Update UserGuide.md
J-Y-Yan Nov 18, 2023
658c3c2
Update UserGuide.md
J-Y-Yan Nov 18, 2023
f832042
Update UserGuide.md
J-Y-Yan Nov 18, 2023
a6d662b
Update UserGuide.md
J-Y-Yan Nov 18, 2023
b9a29ef
Update UserGuide.md
J-Y-Yan Nov 18, 2023
51f7669
Update UserGuide.md
J-Y-Yan Nov 18, 2023
13cfffb
Update UserGuide.md
J-Y-Yan Nov 20, 2023
d31d8a8
Update UserGuide.md
J-Y-Yan Nov 20, 2023
8351894
Update UserGuide.md
J-Y-Yan Nov 20, 2023
697d21d
Update UserGuide.md
J-Y-Yan Nov 20, 2023
471aa4d
Update UserGuide.md
J-Y-Yan Nov 20, 2023
69570af
Update UserGuide.md
J-Y-Yan Nov 20, 2023
b11d188
Update UserGuide.md
J-Y-Yan Nov 20, 2023
d2fc745
Update UserGuide.md
J-Y-Yan Nov 20, 2023
e0f2c85
Update UserGuide.md
J-Y-Yan Nov 20, 2023
3c0f01a
Update UserGuide.md
J-Y-Yan Nov 20, 2023
85244db
Update UserGuide.md
J-Y-Yan Nov 20, 2023
68c97c1
Update UserGuide.md
J-Y-Yan Nov 20, 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
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@
# Gradle build files
/.gradle/
/build/
src/main/resources/docs/

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

/text-ui-test/ACTUAL.TXT
/text-ui-test/EXPECTED.TXT
text-ui-test/EXPECTED-UNIX.TXT

data
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "interactive"
}
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: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ 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 'com.google.code.gson:gson:2.10.1'
}

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

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

Display | Name | Github Profile | Portfolio
--------|:----:|:--------------:|:---------:
![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
Display | Name | Github Profile | Portfolio | PPP
--------|:-----------:|:--------------------------------------:|:---------:|:----:|
![](https://picsum.photos/98) | Kevin Zhang | [Github](https://github.com/kevinz420) | [Portfolio](docs/team/johndoe.md)
![](https://picsum.photos/99) | Ethan Huang | [Github](https://github.com/remy9926) | [Portfolio](docs/team/johndoe.md) | [PPP](./team/remy9926.md)
![](https://picsum.photos/100) | Jiayan Tian | [Github](https://github.com/j-y-yan) | [Portfolio](docs/team/johndoe.md)
![](https://picsum.photos/102) | Feng Guangyao | [Github](https://github.com/mroppa1) | [Portfolio](docs/team/fengguangyao.md)
97 changes: 83 additions & 14 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,107 @@
# Developer Guide

## **Content**
- [Handing User Inputs & Displaying Output](#item-one)
- [Updates Exercise from Log feature](#item-two)
- [Adding a New Exercise Goal](#item-three)

## Acknowledgements

{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}
[Remy9926 iP for File I/O](https://github.com/Remy9926/ip)

## Design & implementation

{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
<a id="item-one"></a>
### Handling User Inputs & Displaying Output

A lot of the initial project setup that deals with things like parsing, displaying outputs back to the user, exceptions, etc. are strongly inspired by the address book example project demoed in class. Specifically, we have classes that are responsible for various aspects of our project in order to follow the single-responsibility principle and limit the amount of coupling.

One specific design implementation we chose was having a Command superclass that all commands in our application will inherit from. This allows every command we write in the future to be guaranteed to possess all methods specified in the superclass. Therefore, we can call these methods in our main function without needing to worry about the differences between various commands because they all inherit from the same parent. Another alternative we considered was simply making each separate command its own function and calling them from our parser class. However, we want to keep the commands as high level as possible and avoid calling more lower-level functions if possible, so we can provide more encapsulation to each command. Therefore, we decided to go with this class-based command hierarchy that was also found in the example address book repo.

Below is a class diagram that describes how our various components interact with one another:

![image](https://github.com/AY2324S1-CS2113-F11-1/tp/assets/54857388/21bd2aa9-8e50-49d2-b888-50446115f922)
Copy link

Choose a reason for hiding this comment

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

In the class diagram, maybe use same font size for the text of same type?

Choose a reason for hiding this comment

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

image
Should it be in:Scanner instead of Scanner in?

Choose a reason for hiding this comment

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

Good use of '+' and '-' for the class diagram.

Choose a reason for hiding this comment

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

image

Should there be a line instead of spaces between the attributes and the methods?

Copy link

@yicheng-toh yicheng-toh Nov 2, 2023

Choose a reason for hiding this comment

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

image

Perhaps the arrow should be a closed triangle?
Good use of dotted arrow for the implementation of interface.


The parser class is responsible for reading the user input and creating specific command objects. All of these subcommands inherit from a general Command parent class which has an `execute` method that can be called regardless of child class and will return a CommandResult object. The CommandResult object dictates what info (string or list of items) needs to be returned to the user for viewing. Both CommandResult and TextUi (responsible for actually displaying data from CommandResult to user) will only print objects from classes that inherit from the Printable interface. This ensures that objects in the `relevantItems` list are all serializable as a human-readable string to be displayed to the end user.
Copy link

Choose a reason for hiding this comment

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

Suggested change
The parser class is responsible for reading the user input and creating specific command objects. All of these subcommands inherit from a general Command parent class which has an `execute` method that can be called regardless of child class and will return a CommandResult object. The CommandResult object dictates what info (string or list of items) needs to be returned to the user for viewing. Both CommandResult and TextUi (responsible for actually displaying data from CommandResult to user) will only print objects from classes that inherit from the Printable interface. This ensures that objects in the `relevantItems` list are all serializable as a human-readable string to be displayed to the end user.
The parser class is responsible for reading the user input and creating specific command objects. All of these subcommands inherit from a general `Command` parent class which has an `execute` method that can be called regardless of child class and will return a `CommandResult` object. The `CommandResult` object dictates what info (string or list of items) needs to be returned to the user for viewing. Both `CommandResult` and `TextUI` (responsible for actually displaying data from `CommandResult` to user) will only print objects from classes that inherit from the `Printable` interface. This ensures that objects in the `relevantItems` list are all serializable as a human-readable string to be displayed to the end user.

Maybe enclose the class/interface names in code-blocks?


<a id="item-two"></a>
### Update Exercises from Log feature

The proposed feature is to allow users to update exercises from the ExerciseLog class to allow for full CRUD functionality of the class. Currently, users are able to create exercises and log them as well as view all the exercises that they have created, but in the case of a typo, they are unable to update the log to accommodate for the user error. To improve the user experience, this update feature has been proposed to allow users to have a better experience using the app.

The update feature will be implemented by allowing users to select the task that they want to edit by specifying the month and day that they logged this exercise at, as well as the corresponding exercise name and the number of calories that the exercise has burned. This is because each exercise is stored within Day objects, and in order to check if two exercises are equivalent, we check both the exerciseName and caloriesBurned fields. Thus, these parameters will need to be specified by the user in order to update the exercise log.

Below is an example of how this feature will work:

Step 1: Upon starting the app, the ExerciseLog class is initialized and a log is created for the user to log their exercises.

<img width="661" alt="Screenshot 2023-10-22 at 22 21 04" src="https://github.com/Remy9926/tp/assets/95456114/933b3636-eba7-442b-bcf2-aec22ef49dba">

Step 2: The user calls the log command with the specified parameters to add a new exercise to the list. However, the user notices that they made a typo and want to change the details of the exercise that they just logged.
Comment on lines +36 to +40
Copy link

Choose a reason for hiding this comment

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

Suggested change
Step 1: Upon starting the app, the ExerciseLog class is initialized and a log is created for the user to log their exercises.
<img width="661" alt="Screenshot 2023-10-22 at 22 21 04" src="https://github.com/Remy9926/tp/assets/95456114/933b3636-eba7-442b-bcf2-aec22ef49dba">
Step 2: The user calls the log command with the specified parameters to add a new exercise to the list. However, the user notices that they made a typo and want to change the details of the exercise that they just logged.
- **Step 1:** Upon starting the app, the ExerciseLog class is initialized and a log is created for the user to log their exercises.
<img width="661" alt="Screenshot 2023-10-22 at 22 21 04" src="https://github.com/Remy9926/tp/assets/95456114/933b3636-eba7-442b-bcf2-aec22ef49dba">
- **Step 2:** The user calls the log command with the specified parameters to add a new exercise to the list. However, the user notices that they made a typo and want to change the details of the exercise that they just logged.

Maybe indent and bold the steps section to make it create a hierarchy of sections.


<img width="682" alt="Screenshot 2023-10-22 at 22 23 59" src="https://github.com/Remy9926/tp/assets/95456114/318cd321-6516-4163-a4ce-4a9e5d5edf7b">

Step 3: The user calls the update command with the information of the old exercise as well as the new information that the user wants to update with. With this, the update is done.

<img width="652" alt="Screenshot 2023-10-22 at 22 25 09" src="https://github.com/Remy9926/tp/assets/95456114/d07d5570-11fc-426c-877d-feb31a338f0a">
Copy link

Choose a reason for hiding this comment

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

maybe add a class diagram for the log class

Copy link

Choose a reason for hiding this comment

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

add a sequence diagram for creating a new log


<a id="item-three"></a>
### Adding a New Exercise Goal
Setting up exercise goals is one of the major components in our FitNus app. It could guide users to do exercise in a more systematic way, while ensuring the possibility of keeping track of the record.

Inheritance Level:

As one of the commands input by user, the goal class should be inherited from the command class, with the general abstract method such as constructor, execution of command, etc.

Implementation:
The goalist class has some helper functions, including checkGoalInput to ensure the validity of user input, addGoal to add a new goal record into the goal list. The execution of goal command simply create a new goal record by first validating the user input, and create a goal record and finally return the result of creating the goal.

1. View Goal function and Delete Goal function

The view function is vital in visualization of the goal list while delete function helps to remove some redundant, incorrect, or achieved goals.

- Implementation 1:

Note that since other command classes may also need a list function or delete function, these two functions can be created for a general use and applicable for all commands.

- Implementation 2 (Current Implementation):

Since the user need different input to differentiate type of objects to delete, it is acceptable to implement different delete classes, with some common implementation of interface(if any).

2. Achieve Goal function

This aims to keep the record of achieved goals. Once the user marks a goal as finished, the record will be automatically backed up into the history list, with supported view function. Also, it is designed not to allow user to modify any achivement. If user made any mistakes, either he starts a new achievement files, or he keeps the false record.

Potential Improvements:

All records in the history list(and general goal list) should be sorted according to their finish time and in alphabetical order.

To provent user from making mistakes, we could design an algorithm to detect whether an achievement is accomplished.


## Product scope
Copy link

Choose a reason for hiding this comment

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

unfinished DG

### Target user profile
Copy link

Choose a reason for hiding this comment

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

Target user profile, Value proposition, User Stories, and Non-Functional Requirements is not updated.


{Describe the target user profile}
Our target users are NUS students who are looking to get in shape and live a healthier lifestyle. We want to provide fitness and eating recommendations that are near the NUS campus which will be easily accessible to our end users.

### Value proposition

{Describe the value proposition: what problem does it solve?}
* track calories consumption vs usage
* set fitness goals and monitor their progress towards these goals


## 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|
|v1.0|New User|see usage instructions|refer to them when I forget how to use the application|
|v2.0|Obesity Victim|set up my work out plan|lose weight|
|v2.0|Health Enthusiasts|set up fitness goals|follow and keep myself healthy in a systematic way|
|v2.1|Dieter|record everyday diet|monitor the amount of calories taking in and check total amount|

## Non-Functional Requirements

{Give non-functional requirements}

## Glossary

* *glossary item* - Definition
## Non-Functional Requirements

## Instructions for manual testing
* Java 17 is the most recommended version to use.
* Make sure the login user of your pc keeps the same, otherwise the storage address might differ, resulting in the loss of precious data.

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

{Give product intro here}
FITNUS helps NUS students set and maintain fitness goals for themselves. Students can log their meals that they've eaten as well as any exercise they have done and manage it all in our intuitive CLI application!

Useful links:
Here are some useful links:
* [User Guide](UserGuide.md)
* [Developer Guide](DeveloperGuide.md)
* [About Us](AboutUs.md)
* [About Us](AboutUs.md)
Loading
Loading