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-1] MathGenius #22

Open
wants to merge 267 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 113 commits
Commits
Show all changes
267 commits
Select commit Hold shift + click to select a range
04910d7
增加了生成题目的功能, 接受数量,运算符号和最大的位数三个参数,(有默认参数),并生成题目,保存在test中。
classskipper351 Mar 12, 2024
1a757c8
Merge pull request #6 from classskipper351/generate_problems
classskipper351 Mar 13, 2024
59251be
add the checker and checkTest
yzhanglp Mar 13, 2024
31e4e12
Fix pathing in AboutUs.md. Add class Storage and Record for data pers…
Geinzit Mar 14, 2024
cd0ec10
Default UI version: get input command from ProblemGenerator; Add UI.j…
Andy123qq4 Mar 14, 2024
6d30892
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
yzhanglp Mar 17, 2024
6f21468
Little bug fix on ProblemGen and UI
Andy123qq4 Mar 19, 2024
a563082
Refine code style. Add read file in main.
Geinzit Mar 19, 2024
c755f07
Merge branch 'master' into master
Geinzit Mar 19, 2024
3b68b6a
Merge pull request #7 from Geinzit/master
Geinzit Mar 19, 2024
3161d04
add test class
classskipper351 Mar 19, 2024
88e5c53
Merge branch 'master' into generate_problems
classskipper351 Mar 19, 2024
d093f9b
Merge pull request #13 from classskipper351/generate_problems
classskipper351 Mar 19, 2024
2b4ea98
solve merge conflicts
classskipper351 Mar 19, 2024
9f0af63
Merge pull request #14 from classskipper351/generate_problems
classskipper351 Mar 19, 2024
c71da02
fix some bugs in checker
yzhanglp Mar 19, 2024
d061e6f
merge upstream
yzhanglp Mar 19, 2024
d95be23
Fix code style and typos.
Andy123qq4 Mar 19, 2024
6d9861b
Merge pull request #15 from Andy123qq4/master
Andy123qq4 Mar 19, 2024
fe746f7
update checker to receive user input answer
yzhanglp Mar 19, 2024
0f77729
merge upstream and fix conflict
yzhanglp Mar 19, 2024
45b89ae
Code style formatting & UI help function fix
Andy123qq4 Mar 19, 2024
c945d16
add message when using default parameters and add my profile
classskipper351 Mar 19, 2024
f6b9174
Code style formatting & UI help function fix
Andy123qq4 Mar 19, 2024
30b9507
Add the time
yzhanglp Mar 19, 2024
ee629bc
Merge pull request #17 from classskipper351/master
classskipper351 Mar 19, 2024
fb880a2
Merge pull request #18 from yzhanglp/master
yzhanglp Mar 19, 2024
1aa0e0b
Merge branch 'master' of https://github.com/Andy123qq4/tp
Andy123qq4 Mar 19, 2024
429d9c1
code style problems
classskipper351 Mar 19, 2024
3e427ed
Gradle + UI
Andy123qq4 Mar 19, 2024
479257b
Merge pull request #19 from classskipper351/master
classskipper351 Mar 19, 2024
98fb1af
Merge branch 'master' into master
Andy123qq4 Mar 19, 2024
4469e1e
Merge pull request #20 from Andy123qq4/master
Andy123qq4 Mar 19, 2024
b416f4b
Fix parsing bug in Storage. Integrate Storage write-to-file function …
Geinzit Mar 19, 2024
590b6b9
Merge branch 'master' into branch-heinzhuang
Geinzit Mar 19, 2024
a7037e0
fix code style to fit standard.
Geinzit Mar 19, 2024
4a1f558
resolve conflicts.
Geinzit Mar 19, 2024
e117d1c
merge files.
Geinzit Mar 19, 2024
a0c578f
Merge pull request #21 from Geinzit/branch-heinzhuang
Geinzit Mar 19, 2024
f95ed63
fix bug so that parameters will properly load.
Geinzit Mar 19, 2024
5b6f9e1
Merge pull request #22 from Geinzit/branch-heinzhuang
Geinzit Mar 19, 2024
1ca2f59
Add a Jar file
Celineyaa Mar 20, 2024
982d91d
Add JUnit tests for ProblemGenerator, to test whether the generated p…
Celineyaa Mar 22, 2024
1ae266d
Adapted according to checkstyle
Celineyaa Mar 22, 2024
fa0ea55
Adapt the checkstyle again
Celineyaa Mar 22, 2024
40e746c
Merge pull request #23 from Celineyaa/master
Celineyaa Mar 22, 2024
ac3dcf0
update the DG with userstudy and etc.
yzhanglp Mar 27, 2024
29dd473
Merge pull request #25 from yzhanglp/master
yzhanglp Mar 27, 2024
5b7fb0e
add Record and Storage entries to the DG.
Geinzit Mar 27, 2024
dd83f61
Merge pull request #26 from Geinzit/branch-heinzhuang
Geinzit Mar 27, 2024
aa2b9ca
add the implematation of checker
yzhanglp Mar 27, 2024
4c8a9c4
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
yzhanglp Mar 27, 2024
83d1958
Merge pull request #27 from yzhanglp/master
yzhanglp Mar 27, 2024
09d9953
Add test case and Instructions for manual testing in DG
Celineyaa Mar 27, 2024
477b1b4
Merge branch 'master' into master
Celineyaa Mar 27, 2024
3337e7d
Merge pull request #28 from Celineyaa/master
Celineyaa Mar 27, 2024
8b1883f
update UML diagram and DG
classskipper351 Mar 27, 2024
75a1519
Merge pull request #29 from classskipper351/master
classskipper351 Mar 27, 2024
2dd468c
Add Record viewing feature, with multiple viewing and sorting options…
Geinzit Apr 2, 2024
d65dbc9
增加了长算式功能, Test类新增操作数参数 ,新增了一个计算器类来计算算式
classskipper351 Apr 3, 2024
4208c21
Merge pull request #35 from classskipper351/long_formula
classskipper351 Apr 3, 2024
4841f2b
Update the testcase part of DG
Celineyaa Apr 3, 2024
01f0bee
Merge pull request #34 from Geinzit/branch-heinzhuang
Geinzit Apr 3, 2024
fdc18bc
Merge pull request #1 from AY2324S2-CS2113-T13-1/master
Celineyaa Apr 3, 2024
ba74725
Update the User guide of version 1
Celineyaa Apr 3, 2024
73db9be
no message
Celineyaa Apr 3, 2024
772b9bb
Update the UserGuide of ver1
Celineyaa Apr 3, 2024
ecb3b84
Remove UserGuide.md
Celineyaa Apr 3, 2024
3f6cc69
Update User Guide for version1
Celineyaa Apr 3, 2024
93e9e1d
Merge pull request #36 from Celineyaa/master
Celineyaa Apr 3, 2024
705d63a
Let the checker to show the incorrect answer
yzhanglp Apr 3, 2024
258dc48
Merge branch 'master' into master
yzhanglp Apr 3, 2024
0fb890a
Merge pull request #37 from yzhanglp/master
yzhanglp Apr 3, 2024
de24863
update Developer Guide regarding Record and Storage. Remove magic num…
Geinzit Apr 3, 2024
ef85d75
Merge pull request #39 from Geinzit/branch-heinzhuang
Geinzit Apr 3, 2024
96ed050
update UserGuide with better formatting and additional information.
Geinzit Apr 3, 2024
d2d0b85
Merge pull request #41 from Geinzit/branch-heinzhuang
Geinzit Apr 3, 2024
104bd8d
Correct the gradle errors
Celineyaa Apr 3, 2024
a4e4d94
Merge pull request #42 from Celineyaa/master
Celineyaa Apr 3, 2024
3d95139
improve code style.
Geinzit Apr 3, 2024
1fde2dc
Merge pull request #43 from Geinzit/master
Geinzit Apr 3, 2024
9bc890d
修改了我的部分的DG, 修改了UML类图
classskipper351 Apr 3, 2024
f4beea1
Merge branch 'master' into master
classskipper351 Apr 3, 2024
b8070d1
Merge pull request #44 from classskipper351/master
classskipper351 Apr 3, 2024
02b896c
add the sequence diagram, fix some bugs in UG
yzhanglp Apr 3, 2024
ebc5731
Merge pull request #45 from yzhanglp/master
yzhanglp Apr 3, 2024
c7b3ddb
no message
Celineyaa Apr 3, 2024
229d36a
Increase and updated testcases for ProblemGenerator, Checker, UI, Sto…
Celineyaa Apr 3, 2024
658f4cd
UI intergration v2 + formatting
Andy123qq4 Apr 3, 2024
7b90adb
UI intergration v2 + formatting
Andy123qq4 Apr 3, 2024
f318701
Merge remote-tracking branch 'origin/master'
Andy123qq4 Apr 3, 2024
026220e
Merge pull request #47 from Andy123qq4/master
Andy123qq4 Apr 4, 2024
93a6fd8
UI intergration v2 + formatting
Andy123qq4 Apr 4, 2024
c00b75f
UI intergration v2 + formatting
Andy123qq4 Apr 4, 2024
d30d33e
Merge remote-tracking branch 'origin/master'
Andy123qq4 Apr 4, 2024
5cabff3
Merge remote-tracking branch 'origin/master'
Andy123qq4 Apr 4, 2024
c68c895
Merge remote-tracking branch 'origin/master'
Andy123qq4 Apr 4, 2024
e4b4efe
Merge pull request #48 from Andy123qq4/master
Andy123qq4 Apr 4, 2024
5b94312
Fix missing photo on DG: Move asset/image to DG folder
Andy123qq4 Apr 4, 2024
aa2117e
Fix missing photo on DG: Move asset/image to DG folder
Andy123qq4 Apr 4, 2024
51c112c
Merge remote-tracking branch 'origin/master'
Andy123qq4 Apr 4, 2024
17f1677
Remove trial.java
Celineyaa Apr 4, 2024
dcc08fe
Merge pull request #49 from Andy123qq4/master
Andy123qq4 Apr 4, 2024
c932975
Adapted the code suggested by gradle.
Celineyaa Apr 4, 2024
fd996a2
Merge pull request #46 from Celineyaa/master
Celineyaa Apr 4, 2024
0b08f87
Update UserGuide.md, better highlighting for records display format.
Geinzit Apr 9, 2024
ef3cb7d
Update help command to show explanation for 'exit' command.
Geinzit Apr 9, 2024
c196296
Merge pull request #81 from Geinzit/master
Geinzit Apr 9, 2024
b1e3eea
Update help command's default display
Geinzit Apr 9, 2024
79549cc
Merge branch 'AY2324S2-CS2113-T13-1:master' into master
Geinzit Apr 9, 2024
1b9a938
Merge pull request #82 from Geinzit/master
Geinzit Apr 9, 2024
c8f530f
add 'retry' feature to retry priviously attempted problem sets. Remov…
Geinzit Apr 9, 2024
acf4fa8
fix to switch case. Display speed as 'problems per minute'
Geinzit Apr 9, 2024
032ee55
Merge pull request #83 from Geinzit/master
Geinzit Apr 9, 2024
dd074b7
add the explanation
yzhanglp Apr 10, 2024
5772cd4
invalid input
Andy123qq4 Apr 10, 2024
1b3808f
Merge branch 'master' into master
Andy123qq4 Apr 10, 2024
03fcf0c
Merge pull request #84 from Andy123qq4/master
Andy123qq4 Apr 10, 2024
0710140
update text-ui-test content for Java CI tests
Geinzit Apr 10, 2024
8edba22
fix gradle reported issues.
Geinzit Apr 10, 2024
836eb5b
removed chinese comments.
Geinzit Apr 10, 2024
2f803f7
removed more chinese comments.
Geinzit Apr 10, 2024
55ee180
Fix AboutUs.md
Andy123qq4 Apr 10, 2024
511986f
Fix wrong spelling
Andy123qq4 Apr 10, 2024
ae83242
added validity check of generation input number
classskipper351 Apr 10, 2024
c6a82c4
Merge pull request #86 from classskipper351/master
classskipper351 Apr 10, 2024
7a27a77
removed all \n and \t signs in tests.
Geinzit Apr 10, 2024
4527161
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
Geinzit Apr 10, 2024
84c2251
Merge pull request #87 from Andy123qq4/master
Andy123qq4 Apr 10, 2024
9c373ad
fix illegal forwarding bug.
Geinzit Apr 10, 2024
b76674d
add the simple explanation
yzhanglp Apr 10, 2024
3e1f517
fix code style for gradle
Geinzit Apr 10, 2024
b445e38
Merge pull request #85 from Geinzit/master
Geinzit Apr 10, 2024
68e8a88
fix merge conflict
yzhanglp Apr 10, 2024
d19bb7a
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
yzhanglp Apr 10, 2024
04e791f
remove \r symbols during testing.
Geinzit Apr 10, 2024
3be3a28
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
Geinzit Apr 10, 2024
c1383be
add clean output to all Uitests
Geinzit Apr 10, 2024
4fe5cbc
Merge pull request #88 from Geinzit/master
Geinzit Apr 10, 2024
19b6c56
Move all UML diagram to another folder
Andy123qq4 Apr 10, 2024
d67eb36
Minor adjustments
Andy123qq4 Apr 10, 2024
f092e09
Better readability in UI and better help function
Andy123qq4 Apr 10, 2024
a0aae51
Enhance and add more detail for 2 guides
Andy123qq4 Apr 10, 2024
8e73deb
Enhance and add more detail for 2 guides
Andy123qq4 Apr 10, 2024
4260eba
Merge branch 'master' of https://github.com/Andy123qq4/tp
Andy123qq4 Apr 10, 2024
4bf8c01
Fix Ui and UiTest for gradle checking
Andy123qq4 Apr 10, 2024
be513f1
drafted my ppp
classskipper351 Apr 10, 2024
f123d1b
Merge pull request #89 from classskipper351/master
classskipper351 Apr 10, 2024
249fe31
add PPP for user Geinzit
Geinzit Apr 11, 2024
1ac7c97
Merge pull request #90 from Geinzit/master
Geinzit Apr 11, 2024
8caae7e
Merge branch 'master' into master
Andy123qq4 Apr 11, 2024
8f4f753
adjust file paths for portfolios
Geinzit Apr 11, 2024
b84a32e
Merge pull request #91 from Andy123qq4/master
Andy123qq4 Apr 11, 2024
6926440
add the ppp and some parts of explanation generator
yzhanglp Apr 11, 2024
1c949b2
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
Geinzit Apr 11, 2024
e1b854d
Merge pull request #92 from yzhanglp/master
yzhanglp Apr 11, 2024
e94b0ee
Add first time generate problem instruction
Andy123qq4 Apr 11, 2024
ff00bb3
Merge pull request #93 from Geinzit/master
Geinzit Apr 11, 2024
6ab24d6
fix file paths in AboutUs.md
Geinzit Apr 11, 2024
0ec7acd
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
Geinzit Apr 11, 2024
d004d84
Merge pull request #94 from Geinzit/master
Geinzit Apr 11, 2024
e84825e
Merge branch 'AY2324S2-CS2113-T13-1:master' into master
Andy123qq4 Apr 11, 2024
947dac5
Drafted PPP for Andy123qq4
Andy123qq4 Apr 11, 2024
cb00334
Merge branch 'master' of https://github.com/Andy123qq4/tp
Andy123qq4 Apr 11, 2024
31214e5
Fix aboutus when moving files
Andy123qq4 Apr 11, 2024
bd88742
Delete duplicates
Andy123qq4 Apr 11, 2024
63a7ada
Delete duplicates
Andy123qq4 Apr 11, 2024
8afae1e
Merge branch 'master' of https://github.com/Andy123qq4/tp
Andy123qq4 Apr 11, 2024
cba315e
Fix Gradle Syntax
Andy123qq4 Apr 11, 2024
1cb1a18
Merge pull request #95 from Andy123qq4/master
Andy123qq4 Apr 11, 2024
b511499
Update README.md
Andy123qq4 Apr 11, 2024
d063ff3
Merge pull request #96 from Andy123qq4/master
Andy123qq4 Apr 11, 2024
2c3a8e2
修改了calculator的错误,并且现在输入错误格式答案会被强制要求重新输入
classskipper351 Apr 11, 2024
0903df5
Merge pull request #97 from classskipper351/master
classskipper351 Apr 11, 2024
0f7bb8f
Add class DIYProblemSet and ProblemSetType, modify Storage, Record, U…
Celineyaa Apr 11, 2024
4a052f6
Merge pull request #98 from Celineyaa/master
Celineyaa Apr 11, 2024
b8c3c67
Update the code according to gradle tests.
Celineyaa Apr 11, 2024
48f8349
Merge pull request #99 from Celineyaa/master
Celineyaa Apr 11, 2024
81028ba
fix spacing errors for text-ui-test
Geinzit Apr 12, 2024
46de330
Merge pull request #100 from Geinzit/master
Geinzit Apr 12, 2024
0e0f1e5
add the explanation and other function, round the answer up to 3 decimal
yzhanglp Apr 12, 2024
420e7cc
Merge pull request #101 from yzhanglp/master
yzhanglp Apr 12, 2024
2c5918c
no message
Celineyaa Apr 13, 2024
a02a0d0
update the DIY user guide
Celineyaa Apr 13, 2024
a7ef363
Merge pull request #102 from Celineyaa/master
Celineyaa Apr 13, 2024
404ce25
Fixed the error of infinite output in DIYProblemSet
Celineyaa Apr 13, 2024
902e8ff
Merge pull request #103 from Celineyaa/master
Celineyaa Apr 13, 2024
f05e0b3
Fix CheckStyle issues. Update UG and DG for 'retry'. Fix Grammar
Geinzit Apr 14, 2024
5ed37d1
Merge pull request #104 from Geinzit/master
Geinzit Apr 14, 2024
44737de
Update UserGuide.md with grammarly check
Andy123qq4 Apr 14, 2024
4332a6e
Update DeveloperGuide.md
Andy123qq4 Apr 14, 2024
aa39b49
Update AboutUs.md and upload image
Celineyaa Apr 15, 2024
1fb2478
Merge pull request #105 from Celineyaa/master
Celineyaa Apr 15, 2024
c8d8105
Update celineyaa.md
Celineyaa Apr 15, 2024
82e4271
Update celineyaa.md
Celineyaa Apr 15, 2024
0eb41d8
Merge pull request #106 from Celineyaa/master
Celineyaa Apr 15, 2024
6542e82
Update celineyaa.md
Celineyaa Apr 15, 2024
f50e41c
Merge pull request #107 from Celineyaa/master
Celineyaa Apr 15, 2024
a2e46a7
改了DIY的答案检查和部分UI
classskipper351 Apr 15, 2024
3405db9
Merge pull request #108 from classskipper351/master
classskipper351 Apr 15, 2024
ba1d7c6
no message
Celineyaa Apr 15, 2024
d31f9c2
Modified the sequence diagram
yzhanglp Apr 15, 2024
27e68ad
Clear unused comment, refine syntax and coding standards
Andy123qq4 Apr 15, 2024
4081555
Clear unused comment, refine syntax and coding standards
Andy123qq4 Apr 15, 2024
b3278b8
Merge remote-tracking branch 'origin/master'
Andy123qq4 Apr 15, 2024
da04d29
Avoid * imports
Andy123qq4 Apr 15, 2024
edf9d98
Merge pull request #109 from Andy123qq4/master
Andy123qq4 Apr 15, 2024
7cb298d
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
Celineyaa Apr 15, 2024
da58c8a
add code segment formatting for functions and class names, data type,…
Andy123qq4 Apr 15, 2024
1388c67
Add table of contents
Andy123qq4 Apr 15, 2024
d85be92
Merge pull request #110 from Andy123qq4/master
Andy123qq4 Apr 15, 2024
79f4537
add the interface message to UI, give a more detail instruction about…
yzhanglp Apr 15, 2024
0bfbd9e
merge the upstream
yzhanglp Apr 15, 2024
46c3f78
add the message before preview the testsets
yzhanglp Apr 15, 2024
71fd7cc
Some coding standard bugs changes
yzhanglp Apr 15, 2024
47cbce3
delete useless files. update DG and README.md
Geinzit Apr 15, 2024
ddc27d3
fix the gradle problem
yzhanglp Apr 15, 2024
d8cde20
merge conflicts
Geinzit Apr 15, 2024
9ed9385
Merge pull request #112 from yzhanglp/master
yzhanglp Apr 15, 2024
9dfef66
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
Celineyaa Apr 15, 2024
e0965e1
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
Geinzit Apr 15, 2024
4a871e8
Merge pull request #113 from Geinzit/master
Geinzit Apr 15, 2024
b49a3b7
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
Celineyaa Apr 15, 2024
c969593
solve the infinite loop in DIY class, replace all scanner by ui.readc…
Celineyaa Apr 15, 2024
07ae11f
Merge pull request #114 from Celineyaa/master
Celineyaa Apr 15, 2024
597ea41
修改了我的代码风格以及exit的bug
classskipper351 Apr 15, 2024
e87e44e
remove the scanner import
Celineyaa Apr 15, 2024
c08e0fc
Merge pull request #115 from Celineyaa/master
Celineyaa Apr 15, 2024
b31169b
Merge remote-tracking branch 'origin/master'
classskipper351 Apr 15, 2024
e9206ab
Fix coding standards: assert, inconsistent, magic number and bool con…
Andy123qq4 Apr 15, 2024
7a5a52d
Merge branch 'master' of https://github.com/classskipper351/tp
classskipper351 Apr 15, 2024
cb3ca03
Merge pull request #116 from classskipper351/master
classskipper351 Apr 15, 2024
26593e5
gradle check passed
classskipper351 Apr 15, 2024
0a3daf1
no message
Celineyaa Apr 15, 2024
dd8e7aa
Merge pull request #117 from classskipper351/master
classskipper351 Apr 15, 2024
756d7aa
Merge branch 'master' of https://github.com/AY2324S2-CS2113-T13-1/tp
Celineyaa Apr 15, 2024
2cf4b21
add javadoc comments and fix minor bugs
Andy123qq4 Apr 15, 2024
4ef39de
add the exp to retry function
yzhanglp Apr 15, 2024
84bc888
Merge pull request #119 from yzhanglp/master
yzhanglp Apr 15, 2024
08fb2f6
Merge branch 'master' into master
Andy123qq4 Apr 15, 2024
452f780
Update the uml of DIYProblemSet
Celineyaa Apr 15, 2024
25e3e45
Merge pull request #118 from Andy123qq4/master
Andy123qq4 Apr 15, 2024
b3ea06a
Merge pull request #120 from Celineyaa/master
Celineyaa Apr 15, 2024
5771322
Fix ui and ui uml function
Andy123qq4 Apr 15, 2024
89eed16
Merge pull request #121 from Andy123qq4/master
Andy123qq4 Apr 15, 2024
f30f30e
Rename uml file
Andy123qq4 Apr 16, 2024
d276882
fix Get Started:
Andy123qq4 Apr 16, 2024
f02bb3a
Merge branch 'master' of https://github.com/Andy123qq4/tp
Andy123qq4 Apr 16, 2024
51c0491
Merge pull request #122 from Andy123qq4/master
Andy123qq4 Apr 16, 2024
a3e3f88
add my PPP in my github name
classskipper351 Apr 17, 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
Binary file added assets/images/bocchi.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/mathGenius.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/saber.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/sequenceDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 9 additions & 7 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# 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
--------|:-----------:|:--------------:|:---------:
![saber](../assets/images/saber.jpg) | Yuhao ZHANG | [Github](https://github.com/yzhanglp) | [Portfolio](https://yzhanglp.com)
![bocchi](../assets/images/bocchi.jpg) | Yao Chenguang|[Github](https://github.com/classskipper351)|
![](https://via.placeholder.com/100.png?text=Photo) | Yung Ka Shing | [Github](https://github.com/andy123qq4) | [Portfolio](https://google.com)
![](../docs/pics/IMG_1918.PNG) | Huang Maodian | [Github](https://github.com/Geinzit) | [Portfolio](../docs/team/heinzhuang.md)
![](https://via.placeholder.com/100.png?text=Photo) | LIN Siyan | [Github](https://github.com/Celineyaa) | [Portfolio](docs/team/johndoe.md)


215 changes: 206 additions & 9 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,230 @@

## Design & implementation

{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
### The Overall UML Diagram:

Choose a reason for hiding this comment

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

image Nice jobs on your uml diagram, but you can replace the red square and green circle with "+" and "-" sign.


![UML Diagram](../assets/images/mathGenius.png)


### The overall Sequence Diagram:

Choose a reason for hiding this comment

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

image It seems this SD has included the entire program works. If it will be better you break each part down like storage, Ui, etc..

![Sequence Diagram](../assets/images/sequenceDiagram.png)

Choose a reason for hiding this comment

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

Please remove these extraneous empty liens



### problemGenerator Component
API: [ProblemGenerator.java](../src/main/java/seedu/duke/ProblemGenerator.java)

Choose a reason for hiding this comment

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

Are these links functional? Perhaps you could provide functional links to the code or omit them if not necessary.
image

the main idea in the design of problemGenerator is that it take 4 parameters and generate a test which include some number of problems


when the gengerator is triggered, users enter a command like this:

generate -t [operators] -n [number] -d [maximum digit] -l[length]
for example , user can enter:
Copy link

@yeozhishen yeozhishen Apr 5, 2024

Choose a reason for hiding this comment

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

wrong display? the "for example, user can enter: " part is inside the code blocks


generate -t +-*/ -n 10 -d 2 -l 3

Choose a reason for hiding this comment

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

Could you perhaps include output for this sample input?


in which case the parseCommand() will take the command and pass the parameters to generete().

generate() function will choose 3 random operand with max digits of 2, take a random operation from the operation set of $+,-,*,/$ to form a single problem ,and loop the execution for 10 times to form a test

Choose a reason for hiding this comment

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

Not sure if the dollar signs in $+,-,*,/$ were meant for formatting, but it looks a little confusing.


if user missed some parameters ,defaultOptions() function will use pre-set default options and invoke UI to print a message for every missing parameter

the answer of the problem is calculated by calculator class while generating a problem, answer is stored in the problem class

### Checker Component
**API:[Checker.java](../src/main/java/seedu/duke/Checker.java)**
**How the `Checker` work:**
1. Every `Checker` was created with a `Test` class.
2. The `Checker` will ask user's input and compare the answer up to 2 decimal tolerance.
3. If the user input is not a number, the answer will automatically viewed as a incorrect answer.
4. The accuracy and the user's answers will be stored for UI or other class to access with the specific function.
5. The checker will also store the times that user use to caculate for the problemset.
6. The checker will also store the questions that user gave a wrong answer as well as the wrong answer.

**`Pseudo code` for reference:**
Copy link

Choose a reason for hiding this comment

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

Good inclusion of pseudo code to make DG more understantable!

Choose a reason for hiding this comment

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

Really like your idea of including pseudo-code, making it much clear and easy to understand.

```
# the brief pseudo code for how to check the answer

correct = 0
isCorrect = []
wrongProblem = []
wrongAnswer = []
for problem in problem set:
UI.PrintProblem
answer <- user_input
if answer - problem.answer < teleranceRange
correct <- correct+1
isCorrect.append("1")
else
isCorrect.append("0")
wrongProblem.append(problem)
wrongAnswer.append(userInput)
continue

```
**next to be added for `Checker.java`:**
1. Support check on more types of problems (i.e Quadratic equation of one variable)
2. Give some explanation of the math problems.
3. Store the answer in array format to hand the function and matrix answer.

* To be added

Choose a reason for hiding this comment

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

Could this be a redundant line? Maybe you can consider deleting it.

### Record Component - Design

API: [Record.java](../src/main/java/seedu/duke/Record.java)
Copy link

Choose a reason for hiding this comment

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

API link not working - maybe look into this?
image


The Record component:

- a snapshot of a completed problem sets, including the individual problems, the date it was solved, the time taken to solve the problem set, and the accuracy of the attempt.

Choose a reason for hiding this comment

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

Yes, probably it is better if you can add some snapshots to explain

- records the specifics of each problem, the unique ID(created using Java's default hashcode) of the problem set, for organized or filtered viewing of past records.
- For the viewing of a record, users may choose whether to display the problem set specifics or not using the `showProbDetails` parameter.
- When writing a record to external file, it's written into a single line in the format of "/dateTime(format:yyyy-MM-dd HH:mm:ss) /speed /accuracy /problemSetID /problems". For problems, each problem is separated by a space and is formatted in "/problemDescription,/problemAnswer"

Choose a reason for hiding this comment

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

it would be good to give an example for reference


### Record Component - Implementation

- Store in each Record object an ArrayList of Problems objects for storing specifics of the attempted Problem Set.
- When a problemSet solving is saved to a record **for the first time**, the corresponding Record object will create a unique ID for the problem set using Java's built-in hashCode method. When loading this record in the future and re-saving the data, the same ID will be used and no new IDs will be generated. This is achieved by using two different constructors for these two different situations.

**Code Snippet**
Copy link

Choose a reason for hiding this comment

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

Consider replacing the code snippets with a sequence diagram of the record component to help with visualization

```
// the two different constructors
public Record(LocalDateTime dateTime, double speed, double accuracy, ArrayList<Problem> probSet) {
setSpeed(speed);
setAccuracy(accuracy);
setDateTime(dateTime);
setProbSet(probSet);
psIndex = probSet.hashCode();
}

public Record(LocalDateTime dateTime, double speed, double accuracy, ArrayList<Problem> probSet, int psIndex) {
setSpeed(speed);
setAccuracy(accuracy);
setDateTime(dateTime);
setProbSet(probSet);
setPsIndex(psIndex);
}

```
- the `writeLine` method is used when writing a record to the external file, and the `print` method is used by the UI component when displaying a record to the user.

### Storage Component - Design

API: [Storage.java](../src/main/java/seedu/duke/Storage.java)

Choose a reason for hiding this comment

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

I don't think the link to the code is working here


The Storage Component:

- Read / Write to external file at appropriate runtime to enable data persistence throughout multiple usages of the software.
- a unique and strict format for external file formatting for proper loading data as well as input file corruption detection.
- incorporate the UI, Parser component for proper user feedback regarding the save/load process.
- stores a list of Record objects for reading / writing, each Record is stored on a single, separate line. Formatting of each line is explained in the Record section.
- The record list can be sorted by multiple parameters, including dateTime, speed, accuracy, problem set ID. This is used by the UI component to display users' past records in any order they desire.

### Storage Component - Implementation

- Uses a list of Record objects to store all past attempts

Choose a reason for hiding this comment

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

Probably it is better if you can include the code of Record class here

- Uses Java's built-in BufferedReader, FileReader, BufferedWriter, FileWriter to write / read properly all information of all problem sets
- sortRecords method sorts the Record list based on 4 different parameters(each representing sort by datetime, speed, accuracy, problemSet ID). each parameter have 3 different values: 0, 1, 2. 0 means to not sort by this parameter, 1 means to sort(decreasing order), 2 means to sort in reverse(increasing order). These 4 parameters are determined by the user input, and interpreted by the Parser component.

### Testcase Component

# Proposed Implementation
The proposed test mechanism is facilitated by ProblemGeneratorTest, CheckerTest. It check the correctness of the generated problemsets' types,
number of questions and max digits, by comparing the generated output to the user input.

ProblemGeneratorTest#operatorTest() — Test if the input operator type is align with the generated one.
ProblemGeneratorTest#numberTest() — Test if the input number of questions is align with the generated number of questions.
ProblemGeneratorTest#digitTest() — Test if the input max digits is align with the generated one.
ProblemGeneratorTest#parseCommand() — parse the input command to fit in the program.
ProblemGeneratorTest#parseNumber() — parse out the operands from a given problem.

Given below is an example usage scenario and how the test behaves.

Choose a reason for hiding this comment

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

Maybe you can add some snapshots here to help your illustration


Step 1. The user launch the ProblemGeneratorTest and run the operator testcase. The ProblemGeneratorTest#operatorTest() will loop through all the
commands in the data member "commands" and allocate each commands to its corresponding test case. During this process, a ProblemGenerator pb is
generated, and the problem sets it generates by calling ProblemGenerator#typeChoose will be store in variable #test#, then the problem set will be
extracted using Test#getProblem(). After that, for every problem in the generated problem set, the assertTrue will check if the type of these problem
matches with the user input type. If all of them matches, it will successfully output the generated dataset, else, it will output the problem with
incorrect format.

Step 2. The user launch the ProblemGeneratorTest and run the number testcase. The ProblemGeneratorTest#numberTest() will loop through all the commands
in the data member #commands# and call ProblemGeneratorTest#parseCommand to parse the input command to get a hashmap with the input type, number and digits
information. Then generate a new ProblemGenerator and use ProblemGenerator#typeChoose to collect the generated problem, then use assertEquals to compare
the user input number with the generated number of questions.

Step 3. The user launch the ProblemGeneratorTest and run the digit testcase. The ProblemGeneratorTest#digitTest() will loop through all the commands
in the data member #commands# and call ProblemGeneratorTest#parseCommand to parse the input command to get a hashmap with the input type, number and digits
information. Then generate a new ProblemGenerator and use ProblemGenerator#typeChoose to collect the generated problem,then for every problem, call
ProblemGeneratorTest#parseNumbers to extract the digits in the problem, then use assertTrue to verify if the input max digit is greater or equal to the digits
of every operands in the generated problems.

The features going to be implement:
testcases for generating long problem sets questions and check answer, as well as the testcases for UI, Checker, and Storage.

Details for implementation:
1. Testcases for generating long problem sets questions:
implement specific input and call assertTrue to verify if the generated long problem sets has the desired format.
2. Testcases for checker :
provide answer to sample testcases and verify if the checker output the accurate correctness.
3. Testcases for UI:
verify the UI output's correctness.
4. Storage:
verify if the record file is created, and the content in the file is correct.

## Product scope
### Target user profile

{Describe the target user profile}
* The student who wish to practise their mathematical problem solving ability.

Choose a reason for hiding this comment

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

change to students to be more in line with the next statement?

* The teachers who wish to provide students with some math problems and check their performance.

### Value proposition

{Describe the value proposition: what problem does it solve?}
The product automates the generation of mathematical problems and their corresponding answers, thereby reducing the effort required by students to find practice problems.

## 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|student who just started learning quadratic equations|use MathGenius to specifically generate problem sets|gain specialized practice on this topic|
|v1.0|a student who’s unfamiliar with mathematics terms|watch explanations and introductions to unfamiliar terms|strengthen understanding|
|v1.0|primary school teacher|wcreate course or topic-specific arithmetic questions for students|teaching student more effortlessly|

Choose a reason for hiding this comment

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

Is wcreate a typo?

|v2.0|student who want to pracise solving foumula|generate various kinds of formula|practise the ability of solving math formula|

## Non-Functional Requirements

{Give non-functional requirements}
1. Should work on any mainstream OS as long as it has Java 11 or above installed.
2. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.

**{More to be add}**

## Glossary

* *glossary item* - Definition
* Mainstream OS: Windows, Linux, Unix, MacOS
* Private contact detail: A contact detail that is not meant to be shared with others

## Instructions for manual testing

{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing}
## Launch and Shutdown
1. initial launch:
1. Download the jar file and copy into an empty folder
2. run the jar file use command '_java -jar tp.main.jar_'

Choose a reason for hiding this comment

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

It might be more readable to use markdown code block for 'java -jar tp.main.jar'

2. Saving window preferences

1. Resize the window to an optimum size. Move the window to a different location. Close the window.

2. Re-launch the app by double-clicking the jar file.
Expected: The most recent window size and location is retained.
3. Shutdown
1. input command '_exit_' in the terminal after launch the program.
## Generate ProblemSet
1. generate expected problem set by input its type('+ or - or * or /'), number of problems(integer) and
the maximum digits.
1. the example input: 'generate -t + -n 2 -d 3', which means generate a problem set, who has 2 problems,
all of their operator is '+', and the maximum digit of their operands is 3 digits.
2. input the answer: after all problems are generated, every problem will show on the terminal again,
user can type his answer on the blank. Then the next problem will show as follows. After user type in
all the answers, the accuracy of his performance and his speed will be shown as follows, e.g.
'Acc: 0.0
Spend Time: 121s' .
2. after shut down the program, user can view his performance report in a .txt file called 'recordList.txt'
with the complete date and accuracy inside.

85 changes: 63 additions & 22 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,83 @@
# User Guide
# User Guide of MathGenius

## Introduction

{Give a product intro}
**`MathGenius`** is a user-friendly application that provides a platform to enhance your equation-solving abilities. Whether you're a student learning calculation, a math enthusiast looking to sharpen your skills, or a teacher preparing for exams/lessons, this application is here to support you.

## Quick Start
## Get Started:

{Give steps to get started quickly}
Run `java mathGenius.java` to get started

1. Ensure that you have Java 11 or above installed.
1. Down the latest version of `Duke` from [here](http://link.to/duke).
Type the command in the command box and press Enter to execute it.

## Features
e.g. typing help and pressing Enter will get the help message.

{Give detailed description of each feature}
Some example commands you can try:
1. `generate`: generate problem set
2. `pressing Enter/Return`: submit your answer
3. `exit`: exit the main program
4. `records`: view the past problem solving sessions you did, including the date you finished the set, your speed, accuracy, and the problems details etc.

### Adding a todo: `todo`
Adds a new item to the list of todo items.
## Feature:

Format: `todo n/TODO_NAME d/DEADLINE`
### Show the Help: `help`

* The `DEADLINE` can be in a natural language format.
* The `TODO_NAME` cannot contain punctuation.
Show the message about the command you can use and the standard input format (e.g. input should be in fraction or in decimal form).

Example of usage:
**Format:** `help COMMAND_NAME`
- The `COMMAND_NAME` can be commands like `generate`, `records`, `exit`

*Example of usage:*
```
help generate

`todo n/Write the rest of the User Guide d/next week`
help exit
```
### generate problem set: `generate`
Generate the problem based on series of parameters. For example, what operators you wish to include in the set (+-*/), the number of problems in the set etc. And as you enter the answer in order, the program will auto check your answers for correction.

`todo n/Refactor the User Guide to remove passive voice d/13/04/2020`
**Format:** `generate -t OPERATOR -n NUMBER_OF_PROBLEMS -d MAXIMUM_DIGITS`

## FAQ
- `OPERATOR` can be `+-*/` or any combinations of these 4 operators
- `NUMBER_OF_PROBLEMS` can be any integers
- `MAXIMUM_DIGITS` can be any integers

**Q**: How do I transfer my data to another computer?
*Example of usage:*

**A**: {your answer here}
```
generate -t + -n 1 -d 1
generate -t */ -n 5 -d 3
```

## Command Summary
### Autosaving/Loading past answers

{Give a 'cheat sheet' of commands here}
Each time you finish a problem set, you results will be automatically stored in an external file `recordList.txt`. And each time you restart the application, the data from the file will be automatically loaded.

* Add todo `todo n/TODO_NAME d/DEADLINE`
Please do not manually change the file unless you're sure of what you're doing(Improper editing of the file could lead to data corruption/loss).

### View past records: `records`

View the records of your past problem solving sessions. Each record information including the date the problem set was solved, the time spent(in seconds) to solve the problem set, and the accuracy(measured in percentage), as well as the details of the problem set(including the problem set's unique ID, and each individual problem if you desire so).

**Format:** `records -sortByDate -sortBySpeed -sortByAccuracy -sortByProblemID -showProblemDetails`

- all parameters are optional
- `sortByDATE` can be d(increasing order) or dr(decreasing order).
- `sortBySpeed` can be s(increasing order) or sr(decreasing order).
- `sortByAccuracy` can be a(increasing order) or ar(decreasing order).
- `sortByProblemID` can be p(increasing order) or pr(decreasing order).
- `showProblemDetails` can be details. Which shows each individual problem's description in the problem set.

### Submit Answer: `ENTER/RETURN`

type the answer in the terminal and press ENTER/RETURN

### Judge Answer: *NA*

After finishing all the problem sets, the program will automate judged the correctness and output the accuracy and speed.

### Exit: `exit`

User can use this to exit the program.

**Format:** `exit`
Binary file added docs/pics/IMG_1918.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions docs/team/heinzhuang.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Heinz Huang

github username: Geinzit

Professional Gamer. Amateur Coder.
6 changes: 0 additions & 6 deletions docs/team/johndoe.md

This file was deleted.

Loading
Loading