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

[CS2113T-F12-3] Teaching Assistant's Assistant #46

Open
wants to merge 782 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
782 commits
Select commit Hold shift + click to select a range
8c7657c
Change type of assessment from int to double and update all the strin…
rachelkeh Nov 6, 2021
1a62949
update PPP
hozhenhong99 Nov 6, 2021
8f3da16
Merge pull request #244 from rachelkeh/branch-assessment
hozhenhong99 Nov 6, 2021
83fda05
Merge pull request #245 from hozhenhong99/student-branch
leyondlee Nov 6, 2021
c10cc16
Add PPP
leyondlee Nov 6, 2021
43be627
Minor wording changes
leyondlee Nov 6, 2021
6a8793e
Update TaaClassDiagram and CommandClassDiagram
leyondlee Nov 6, 2021
f5ce93b
Change maximumMarks in AssessmentDeserializer to double
leyondlee Nov 6, 2021
69903f1
Check if student comment is valid in StudentDeserializer
leyondlee Nov 6, 2021
0ec42ce
Simplify verify() method in TeachingClass
leyondlee Nov 6, 2021
a295a78
add images to UG
hozhenhong99 Nov 6, 2021
3402f53
Update comparison of doubles to a higher precision with Double.compare
rachelkeh Nov 6, 2021
c3fbc5b
Merge pull request #246 from leyondlee/branch-ppp
hozhenhong99 Nov 6, 2021
126a22e
Merge pull request #247 from leyondlee/branch-dg
hozhenhong99 Nov 6, 2021
9286d46
Merge pull request #248 from leyondlee/branch-class
hozhenhong99 Nov 6, 2021
c80d058
Merge branch 'master' of http://github.com/AY2122S1-CS2113T-F12-3/tp …
hozhenhong99 Nov 6, 2021
315219f
update PPP
hozhenhong99 Nov 6, 2021
5a1e008
Merge branch 'master' into branch-assessment
rachelkeh Nov 6, 2021
d9aad34
Merge pull request #251 from hozhenhong99/student-branch
rachelkeh Nov 6, 2021
9db7d08
Merge pull request #250 from rachelkeh/branch-assessment
hozhenhong99 Nov 6, 2021
a5132a8
update formatting for UG
hozhenhong99 Nov 6, 2021
63f4a09
Fix logic error
rachelkeh Nov 6, 2021
474e762
Merge pull request #252 from hozhenhong99/testing-branch
rachelkeh Nov 6, 2021
761c533
Merge pull request #253 from rachelkeh/branch-assessment
leyondlee Nov 6, 2021
de80eb2
add junit testing for add, edit and delete student
hozhenhong99 Nov 6, 2021
a8fa4ee
Merge pull request #254 from hozhenhong99/testing-branch
rachelkeh Nov 6, 2021
81c733e
add JUnit testing for set and delete comment
hozhenhong99 Nov 6, 2021
cfded6b
Merge pull request #255 from hozhenhong99/testing-branch
rachelkeh Nov 6, 2021
d3900a8
Upload pictures for expected output and edit some errors in UG. Add n…
rachelkeh Nov 6, 2021
34ce047
Edit grammar error in add assessment message
rachelkeh Nov 6, 2021
cf9b158
Update 2dp note for decimal values
rachelkeh Nov 6, 2021
231e6b8
fix formatting
hozhenhong99 Nov 6, 2021
306ceb6
Add ability to stop Storage from writing/reading by setting filename …
leyondlee Nov 6, 2021
78c5730
Set Storage filename to null for tests
leyondlee Nov 6, 2021
f9dea6b
Add more test cases for isStringInteger, isStringDouble, isStringBoolean
leyondlee Nov 6, 2021
d930c2b
Move common message to Command class
leyondlee Nov 6, 2021
7996543
Allow empty arguments for EditClassCommand and check for invalid values
leyondlee Nov 6, 2021
37d74ce
Add test cases for AddClassCommand, DeleteClassCommand, EditClassCommand
leyondlee Nov 6, 2021
3705260
Merge pull request #259 from hozhenhong99/testing-branch
leyondlee Nov 6, 2021
d15e163
Merge pull request #258 from rachelkeh/branch-assessment
leyondlee Nov 6, 2021
cd26be0
Merge branch 'master' into branch-class
leyondlee Nov 6, 2021
3afa9d6
Fix checkstyle
leyondlee Nov 6, 2021
de87c5c
Change Parser.splitFirstSpace method to private
leyondlee Nov 6, 2021
e692f06
Add author tag
leyondlee Nov 6, 2021
5d36b7d
Remove extra lines
leyondlee Nov 6, 2021
3236e9e
Change class ID to uppercase
leyondlee Nov 6, 2021
3790716
Update EXPECTED.txt
leyondlee Nov 6, 2021
cdb5253
Update EditClassCommandTest
leyondlee Nov 6, 2021
fb5d738
Add images for class commands
leyondlee Nov 6, 2021
b02766a
Update AddClassCommandTest and EditClassCommandTest
leyondlee Nov 6, 2021
ea7058f
Merge pull request #260 from leyondlee/branch-class
hozhenhong99 Nov 6, 2021
80e713a
Merge pull request #261 from leyondlee/branch-ug
hozhenhong99 Nov 6, 2021
dbc996f
update file name
hozhenhong99 Nov 6, 2021
81aeeb8
add set_attendance for range of student indexes
daknam2001 Nov 7, 2021
30f4297
fix checkstyle issues
daknam2001 Nov 7, 2021
89c2aef
update usage message
daknam2001 Nov 7, 2021
db293a6
fix checkstyle
daknam2001 Nov 7, 2021
c2c0bd7
Change welcome message position
leyondlee Nov 7, 2021
08b4734
SLAP Parser.getArgumentFromString method and add JavaDoc
leyondlee Nov 7, 2021
eeaf99a
Fix formatting
leyondlee Nov 7, 2021
7dce629
Remove redundant conditions
leyondlee Nov 7, 2021
4f538e0
Simplify archive command
leyondlee Nov 7, 2021
deb39ee
Fix formatting
leyondlee Nov 7, 2021
f560aa5
Fix formatting
leyondlee Nov 7, 2021
00cc14e
SLAP assessment deserializers
leyondlee Nov 7, 2021
ff920a5
SLAP attendance deserializers
leyondlee Nov 7, 2021
fb714be
Fix formatting for StorageDeserializer
leyondlee Nov 7, 2021
522c70f
SLAP student deserializers
leyondlee Nov 7, 2021
2a0c01b
SLAP class deserializers
leyondlee Nov 7, 2021
a1d6796
Handle null JSON elements
leyondlee Nov 7, 2021
49ee8b5
Update test cases
leyondlee Nov 7, 2021
c4c8803
Fix checkstyle
leyondlee Nov 7, 2021
50ba476
Fix formatting
leyondlee Nov 7, 2021
0e75e4c
Update archive command
leyondlee Nov 7, 2021
b1c49d3
Fix logic error in Assessment.verify method
leyondlee Nov 7, 2021
7b5d383
Add AssessmentDeserializerTest
leyondlee Nov 7, 2021
8335113
Add AssessmentListDeserializerTest
leyondlee Nov 7, 2021
2b1657c
Merge pull request #263 from daknam2001/multiple-set
hozhenhong99 Nov 7, 2021
73bc295
Merge pull request #262 from hozhenhong99/PPP-branch
jon-the-melon Nov 7, 2021
82ac578
Merge pull request #264 from leyondlee/branch-class
hozhenhong99 Nov 7, 2021
ab6ad18
Merge pull request #265 from leyondlee/branch-ug
hozhenhong99 Nov 7, 2021
b8a2795
Update to n/
rachelkeh Nov 7, 2021
32c3f9b
Fix logic error in verify method
rachelkeh Nov 7, 2021
cde41cf
Update assessment deserializer tests
leyondlee Nov 7, 2021
bfa8871
Add check for invalid json object
leyondlee Nov 7, 2021
3cac812
Add tests for deserializers
leyondlee Nov 7, 2021
4c3fe29
Merge pull request #266 from rachelkeh/branch-assessment
leyondlee Nov 7, 2021
fcc3bf7
Merge branch 'master' into branch-class
leyondlee Nov 7, 2021
e3815eb
Add author tag
leyondlee Nov 7, 2021
3f80088
fix escaping of pipe character in command summary and delete extraneo…
jon-the-melon Nov 7, 2021
4118c5f
Fix checkstyle
leyondlee Nov 7, 2021
5fdd0dd
Fix checkstyle
leyondlee Nov 7, 2021
66356f8
Merge pull request #267 from leyondlee/branch-class
jon-the-melon Nov 7, 2021
cb9763a
Merge pull request #268 from jon-the-melon/master
jon-the-melon Nov 7, 2021
b277dbf
Merge pull request #256 from rachelkeh/branch-UG
jon-the-melon Nov 7, 2021
bf4c56b
update ppp
jon-the-melon Nov 7, 2021
969905d
Merge pull request #269 from jon-the-melon/master
jon-the-melon Nov 7, 2021
301a84b
Add check for no. of decimal places
leyondlee Nov 7, 2021
2ca6b96
Add newline to end of file
leyondlee Nov 7, 2021
ba06417
Merge pull request #270 from leyondlee/branch-class
jon-the-melon Nov 7, 2021
8a92824
Add more tests for Util.isStringDouble
leyondlee Nov 7, 2021
5f8a4c7
add change assessment name key in hashmap for student class
jon-the-melon Nov 7, 2021
658d513
fix checkstyle
jon-the-melon Nov 7, 2021
ded1eed
Merge pull request #289 from jon-the-melon/master
hozhenhong99 Nov 7, 2021
5b95df7
Update PPP
leyondlee Nov 7, 2021
c538cb5
Update ArchitectureDiagram.puml
leyondlee Nov 7, 2021
4c6c300
Update ArchitectureSequenceDiagram to include exception
leyondlee Nov 7, 2021
d225918
Update AddAssessmentSequenceDiagram
leyondlee Nov 7, 2021
df8d195
Update AddClassDiagram
leyondlee Nov 7, 2021
ea8f1ff
Update AddStudentSequenceDiagram
leyondlee Nov 7, 2021
6412409
Update SetMarkSequenceDiagram
leyondlee Nov 7, 2021
86826e1
Fix wrong method call
leyondlee Nov 7, 2021
c18cf7a
Change module methods to class
leyondlee Nov 7, 2021
d8d9ace
Change module methods to class
leyondlee Nov 7, 2021
ff9e57e
Update set_mark explanation
leyondlee Nov 7, 2021
e0c595b
Update error message for weightage and marks
rachelkeh Nov 7, 2021
181d039
Merge branch 'master' into branch-dg
leyondlee Nov 7, 2021
6469488
Merge branch 'master' into branch-class
leyondlee Nov 7, 2021
02b438d
Update error message for weightage and maximum marks in edit assessment
rachelkeh Nov 7, 2021
9db90bf
Update DeleteCommentCommand usage
leyondlee Nov 7, 2021
8088a5d
Merge pull request #291 from leyondlee/branch-dg
hozhenhong99 Nov 7, 2021
2c830e4
Merge pull request #290 from leyondlee/branch-class
hozhenhong99 Nov 7, 2021
66b41bb
update UG to display list_comments
hozhenhong99 Nov 7, 2021
8295d62
Fix formatting
leyondlee Nov 7, 2021
47bce93
Merge pull request #293 from hozhenhong99/final-edits-branch
leyondlee Nov 7, 2021
6239045
Change "Abort" to "Aborted"
leyondlee Nov 7, 2021
020c9e8
Include new upper bound for maximum marks
rachelkeh Nov 7, 2021
07caca6
Fix checkstyle
rachelkeh Nov 7, 2021
86c7c51
change images to reflect correct expected output in ug
jon-the-melon Nov 7, 2021
d5d373e
Merge pull request #294 from leyondlee/branch-class
jon-the-melon Nov 7, 2021
7a8e7d0
Rename .PNG to .png
leyondlee Nov 7, 2021
cc19514
Move common notes to top of category section
leyondlee Nov 7, 2021
f4f5052
edit UG to mention that marks input can have at most 2 decimalpoints
jon-the-melon Nov 7, 2021
2c22ce2
Add images for archive and reset commands
leyondlee Nov 7, 2021
cc24da8
Merge pull request #295 from jon-the-melon/master
leyondlee Nov 7, 2021
1f361a3
Merge pull request #296 from leyondlee/branch-ug
leyondlee Nov 7, 2021
63fb554
Remove spacing before horizontal line
leyondlee Nov 7, 2021
0007a30
Add spacing before horizontal line
leyondlee Nov 7, 2021
17ab87a
Merge branch 'branch-ug' of github.com:leyondlee/tp into branch-ug
leyondlee Nov 7, 2021
7e34213
Add spacing before horizontal line
leyondlee Nov 7, 2021
c26fc83
Update grammar errors
rachelkeh Nov 7, 2021
3a71fa7
Update README.md
leyondlee Nov 7, 2021
b8f32b0
change sort by scores to 6dp, add assertion for student and comment c…
hozhenhong99 Nov 7, 2021
b7b7627
Merge remote-tracking branch 'upstream/master' into branch-assessment
rachelkeh Nov 7, 2021
8174033
Merge pull request #297 from leyondlee/branch-ug
hozhenhong99 Nov 7, 2021
4069e5b
Merge pull request #298 from leyondlee/branch-readme
hozhenhong99 Nov 7, 2021
bd9b94c
Merge pull request #299 from hozhenhong99/final-edits-branch
leyondlee Nov 7, 2021
481975a
Fix formatting
leyondlee Nov 7, 2021
189412b
Merge pull request #300 from leyondlee/branch-ug
leyondlee Nov 7, 2021
f6501b6
Update user stories
leyondlee Nov 7, 2021
652feb2
Update AboutUs.md
leyondlee Nov 7, 2021
e1fb39e
Merge pull request #301 from leyondlee/branch-dg
hozhenhong99 Nov 7, 2021
a4de3bc
update PPP
hozhenhong99 Nov 7, 2021
c33411c
Merge pull request #302 from hozhenhong99/final-edits-branch
leyondlee Nov 7, 2021
4e33a3f
update PPP formatting
hozhenhong99 Nov 7, 2021
670769b
Update edit assessment command to change the results hashmap key from…
rachelkeh Nov 7, 2021
2bc53a5
Merge pull request #303 from hozhenhong99/final-edits-branch
hozhenhong99 Nov 7, 2021
b083dd2
Merge branch 'master' into branch-assessment
rachelkeh Nov 7, 2021
4bd5b88
Update error message and change to isStringDouble(maximumMarksString,…
rachelkeh Nov 7, 2021
ec12b11
Update tests
rachelkeh Nov 7, 2021
e7e416f
Fix formatting
leyondlee Nov 7, 2021
1247d85
Add template PPP for Rachel and Dak Nam
leyondlee Nov 7, 2021
69a1612
Update edit assessment to check whether the new maximum marks exceed …
rachelkeh Nov 7, 2021
29aac34
Update checkstyle
rachelkeh Nov 7, 2021
fe4fdab
Update UG to reflect the new 2 dp restriction and justification for w…
rachelkeh Nov 7, 2021
489165d
Merge branch 'master' into branch-UG
rachelkeh Nov 7, 2021
761952e
Merge pull request #304 from leyondlee/branch-ppp
rachelkeh Nov 7, 2021
1ac6a4a
add range and selection for delete attendance command
daknam2001 Nov 8, 2021
cc85dce
fix checkstyle
daknam2001 Nov 8, 2021
232b52f
add author tag
daknam2001 Nov 8, 2021
4318a5d
update PPP
daknam2001 Nov 8, 2021
681645d
Merge pull request #307 from daknam2001/editPPP
daknam2001 Nov 8, 2021
4d34bf2
refactor code to appear slightly more SLAP
daknam2001 Nov 8, 2021
c9da06b
add some assert
daknam2001 Nov 8, 2021
2fe403d
remove redundant assert
daknam2001 Nov 8, 2021
afc7d3f
add image for quickstart
daknam2001 Nov 8, 2021
6c77a57
Merge pull request #292 from rachelkeh/branch-assessment
hozhenhong99 Nov 8, 2021
bdf59d2
Merge pull request #305 from rachelkeh/branch-UG
hozhenhong99 Nov 8, 2021
c49d43b
Merge pull request #306 from daknam2001/update
hozhenhong99 Nov 8, 2021
7868ffc
Add allowed characters for values
leyondlee Nov 8, 2021
1b7a4ff
Minor word change
leyondlee Nov 8, 2021
30a6f61
Change word back
leyondlee Nov 8, 2021
41e3f45
Merge pull request #308 from leyondlee/branch-ug
jon-the-melon Nov 8, 2021
fe04c50
Add image for empty name edit
leyondlee Nov 8, 2021
cd5548b
Add breaks
leyondlee Nov 8, 2021
a61ca3c
Merge pull request #309 from leyondlee/branch-ug
jon-the-melon Nov 8, 2021
80b3f40
edit quick notes and sortbyscores to accept maxmarks 0
jon-the-melon Nov 8, 2021
661fb64
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-F12-3/tp
jon-the-melon Nov 8, 2021
650fe6b
add warning for whitespace in userguide in set and delete attendance
daknam2001 Nov 8, 2021
6e2b1e5
edit sortbyscores to perform correct action for 0 maxmarks and edit q…
jon-the-melon Nov 8, 2021
a31cf9b
Merge pull request #310 from daknam2001/update
jon-the-melon Nov 8, 2021
d523344
Merge pull request #311 from jon-the-melon/master
hozhenhong99 Nov 8, 2021
8c2fefe
delete random loc in ug and edited kloc for ppps
jon-the-melon Nov 8, 2021
b0fe596
Merge pull request #312 from jon-the-melon/master
jon-the-melon Nov 8, 2021
6057e07
update usage
daknam2001 Nov 8, 2021
40652a3
update formatting for PPP
hozhenhong99 Nov 8, 2021
1ca3a18
Merge branch 'master' of http://github.com/AY2122S1-CS2113T-F12-3/tp …
hozhenhong99 Nov 8, 2021
4253cdd
update command summary
daknam2001 Nov 8, 2021
0897d34
Merge pull request #313 from daknam2001/update
jon-the-melon Nov 8, 2021
5de31b0
Merge pull request #314 from daknam2001/update-command-summary
jon-the-melon Nov 8, 2021
1250263
fix formatting in html for ug command summary
jon-the-melon Nov 8, 2021
a545522
Merge pull request #315 from jon-the-melon/master
hozhenhong99 Nov 8, 2021
6e5478e
edit set_marks to set_mark in dg
jon-the-melon Nov 8, 2021
3deb5d4
Merge pull request #317 from jon-the-melon/master
jon-the-melon Nov 8, 2021
411ec9d
Merge pull request #316 from hozhenhong99/final-edits-branch
jon-the-melon Nov 8, 2021
567187a
fix html formatting in ug command summary
jon-the-melon Nov 8, 2021
200e64c
Merge pull request #318 from jon-the-melon/master
jon-the-melon Nov 8, 2021
5cd7570
change jar file name in quickstart
jon-the-melon Nov 8, 2021
01ba0ef
Merge pull request #319 from jon-the-melon/master
daknam2001 Nov 8, 2021
2ddd51d
Update PPP and author tag test class
rachelkeh Nov 8, 2021
8ed977d
fix set_marks to set_mark in dg and add object diagram for end state
jon-the-melon Nov 8, 2021
2e12fe6
Update TaaClassDiagram and ClassListClassDiagram
leyondlee Nov 8, 2021
0bd213c
Merge pull request #320 from rachelkeh/branch-PPP
jon-the-melon Nov 8, 2021
de53d73
Merge pull request #321 from leyondlee/branch-dg
jon-the-melon Nov 8, 2021
483d041
Merge pull request #322 from jon-the-melon/master
hozhenhong99 Nov 8, 2021
266d814
add object diagram for add student command
hozhenhong99 Nov 8, 2021
97c6ec8
add other implementation to marks
jon-the-melon Nov 8, 2021
0e1f455
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-F12-3/tp
jon-the-melon Nov 8, 2021
3367223
update PPP
hozhenhong99 Nov 8, 2021
b2e8e4b
add class and object diagram for other implementation
jon-the-melon Nov 8, 2021
58acba8
Merge pull request #323 from hozhenhong99/final-edits-branch
jon-the-melon Nov 8, 2021
b570385
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-F12-3/tp
jon-the-melon Nov 8, 2021
1df8de5
edit object diagram to include association
jon-the-melon Nov 8, 2021
83f3a09
Merge pull request #324 from jon-the-melon/master
jon-the-melon Nov 8, 2021
b733aeb
update dg contributions in ppp
jon-the-melon Nov 8, 2021
b5c4faf
Merge pull request #325 from jon-the-melon/master
jon-the-melon Nov 8, 2021
3992010
update dg with new sequence diagrams
daknam2001 Nov 8, 2021
60641bd
update PPP
daknam2001 Nov 8, 2021
1a48540
add author
jon-the-melon Nov 8, 2021
27a0adc
fix duplicated points in PPP
daknam2001 Nov 8, 2021
e0bc0ad
Merge pull request #327 from jon-the-melon/master
daknam2001 Nov 8, 2021
f454c97
Merge pull request #326 from daknam2001/update-dg
jon-the-melon Nov 8, 2021
6ac6734
Use Taa.DECIMAL_PLACES variable
leyondlee Nov 8, 2021
c87e6ed
Check for decimal places in deserializers
leyondlee Nov 8, 2021
d5a271e
Add Util.setPrecision method
leyondlee Nov 8, 2021
5204947
Add more tests
leyondlee Nov 8, 2021
cf2b06e
Merge pull request #329 from leyondlee/branch-class
jon-the-melon Nov 8, 2021
c3f1711
add header to attendance implementation
daknam2001 Nov 8, 2021
57178ab
Merge pull request #330 from daknam2001/add-header-to-attendance-impl…
daknam2001 Nov 8, 2021
f4d7be5
update DG formatting
hozhenhong99 Nov 8, 2021
68b8697
add class diagram
daknam2001 Nov 8, 2021
bf3cc13
edit PPP
daknam2001 Nov 8, 2021
640be04
Add class diagram for assessment list and update sequence diagram for…
rachelkeh Nov 8, 2021
2b09314
Merge pull request #331 from hozhenhong99/final-edits-branch
rachelkeh Nov 8, 2021
191660d
Merge pull request #333 from rachelkeh/branch-DG2
hozhenhong99 Nov 8, 2021
f8719d5
Merge pull request #332 from daknam2001/class_diagram
hozhenhong99 Nov 8, 2021
c726d14
fix minor error in PPP
daknam2001 Nov 8, 2021
0b782b0
edit object diagram
jon-the-melon Nov 8, 2021
3a6be26
Merge pull request #335 from jon-the-melon/master
jon-the-melon Nov 8, 2021
1a0a6f5
Merge pull request #334 from daknam2001/master
jon-the-melon Nov 8, 2021
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
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,12 @@ src/main/resources/docs/
*.iml
bin/

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
text-ui-test/ACTUAL.TXT
.classpath
.project
data/
text-ui-test/data/
taa.log*
src/main/java/META-INF/MANIFEST.MF
.settings/
6 changes: 4 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ repositories {
}

dependencies {
implementation 'com.google.code.gson:gson:2.8.8'
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'
}
Expand All @@ -29,11 +30,11 @@ test {
}

application {
mainClassName = "seedu.duke.Duke"
mainClassName = "taa.Taa"
}

shadowJar {
archiveBaseName = "duke"
archiveBaseName = "taa"
archiveClassifier = null
}

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

run{
standardInput = System.in
enableAssertions = true
}
10 changes: 5 additions & 5 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

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)
![](https://via.placeholder.com/100.png?text=Photo) | Zhen Hong | [hozhenhong99](https://github.com/hozhenhong99) | [Zhen Hong's Portfolio](team/zhenhong.md)
![](https://via.placeholder.com/100.png?text=Photo) | Dak Nam | [daknam2001](https://github.com/daknam2001) | [Portfolio](team/daknam.md)
![](https://via.placeholder.com/100.png?text=Photo) | Jon Lim | [jon-the-melon](https://github.com/jon-the-melon) | [Jon's Portfolio](team/jon.md)
![](https://via.placeholder.com/100.png?text=Photo) | Rachel | [rachelkeh](https://github.com/rachelkeh) | [Rachel's Portfolio](team/rachel.md)
![](https://via.placeholder.com/100.png?text=Photo) | Leyond | [leyondlee](https://github.com/leyondlee) | [Portfolio](team/leyond.md)
225 changes: 209 additions & 16 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,231 @@
# Developer Guide

Choose a reason for hiding this comment

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

great work!

* [Acknowledgements](#acknowledgements)
* [Design](#design)
* [Implementation](#implementation)
* [Add Module](#add-module)
* [Add Student](#add-student)
* [Add Assessment](#add-assessment)
* [Set Marks](#set-marks)
* [Set Attendance](#set-attendance)
* [Project scope](#product-scope)
* [User Stories](#user-stories)
* [Non-Functional Requirements](#non-functional-requirements)
* [Glossary](#glossary)

## Acknowledgements

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

## Design & implementation

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

## Design
### Architecture
![ArchitectureDiagram](diagrams/ArchitectureDiagram.png)

Choose a reason for hiding this comment

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

would it be better to use UML here?


The _Architecture Diagram_ shown above illustrates the high-level design of the Application.

**Overview of components**
* `Main`
* On app launch: Creates and runs an instance of `Taa`.
* `UI`
* Handles UI operations.
* `Taa`

Choose a reason for hiding this comment

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

The sequence diagram of TAA has a problem:

image

The activation bar of Taa should be closed

* On creation: Initializes the `UI` and `Storage` components.
* On run: Loads persistent data from `Storage`, receives user input from `UI`, and uses `Parser` to parse the user input.
* `Parser`
* Handles input parsing and determines which command to run.
* `Command`

Choose a reason for hiding this comment

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

Would it be better to add function notation?

image

Choose a reason for hiding this comment

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

Better to add function notation
image

* Defines how a command is to be executed.
* `ModuleList`
* Contains a list of `Module` objects currently being managed by the app.
* `Util`

Choose a reason for hiding this comment

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

You could further explain in-depth how the util component works. This will help your users get an idea of what util can be used for when they work on your code.

* Contains useful methods (e.g. Check if a string is integer/double, convert string to integer/double).
* `Storage`

Choose a reason for hiding this comment

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

Youd could add UML diagrams for the Storage function. This will enable your users to understand how data is written and stored by TAA as well as how it is accessed an read as inputs.

* Handles data storage operations (e.g. Reading from and writing to data file).

Choose a reason for hiding this comment

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

image
Perhaps adding the new ModuleList()

Choose a reason for hiding this comment

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

image
Perhaps adding new Command() upon instantiation


<br>

**Interaction between components**
![ArchitectureSequenceDiagram](diagrams/ArchitectureSequenceDiagram.png)

Choose a reason for hiding this comment

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

It would be better to add the notation of the grey file icon
image


The _Architecture Sequence Diagram_ shown above shows how the components usually interact with each other.

## Implementation
### Add Module
The sequence diagram shown below illustrates how the `add_module` command works:
![AddModuleSequenceDiagram](diagrams/AddModuleSequenceDiagram.png)

Choose a reason for hiding this comment

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

Nice description for the steps, but maybe you can add numbering in the diagram and link it to the steps.

Choose a reason for hiding this comment

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

image
Perhaps deleting the redundant class.


Steps:
1. The `Taa` instance reads in a user input through the `Ui.getUserInput()` method.
2. The user input is then parsed using the `Parser.parseUserInput(userInput:String)` static method and a `Command` object
is returned.
3. `AddModuleCommand.checkArguments()` is then called to check if the arguments are valid.
4. After checking the arguments, `Command.execute(moduleList:ModuleList, ui:Ui, storage:Storage)` will be called. A new
`Module` object is created and the `ModuleList.addModule(module:Module)` method is invoked to add the `Module`
object into the list of modules.
5. Lastly, a message indicating that the module has been added will be printed out.

<br>

### Add Student
The add student mechanism is facilitated by `AddStudentCommand`. It extends `Command` and uses `StudentList` which
stores student internally as an ArrayList `students`.
<br>

`AddStudentCommand` implements the following methods:
* `AddStudentCommand#execute(moduleList:ModuleList, ui:Ui, storage:Storage)` - Performs operations for the command.

`StudentList` implements the following methods:
* `StudentList#getSize()` - Returns the no. of students currently in the list.
* `StudentList#getStudents()` - Returns an ArrayList containing all the students.
* `StudentList#getStudentAt(index:int)` - Returns a student with the particular index.
* `StudentList#isValidIndex(index:int)` - Checks if an index is valid w.r.t the `students` ArrayList.
* `StudentList#addStudent(student:Student)` - Adds a student to the `students` ArrayList.
* `StudentList#deleteStudent(index:int)` - Deletes the `student` object at the specified `index` within the `students`
ArrayList.
* `StudentList#findStudent(keyword:String)` - Returns an ArrayList of students containing the keyword

The sequence diagram shown below illustrates how the `add_student` command works:
![AddStudentSequenceDiagram](diagrams/AddStudentSequenceDiagram.png)

Choose a reason for hiding this comment

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

You could maybe add numbering in the diagram so that you can link the steps to the diagram to make it more clear.

Choose a reason for hiding this comment

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

Perhaps you could explain step by step how the add_student command is being parsed and saved.

Choose a reason for hiding this comment

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

You could perhaps split up the uml diagram to include sub parts of the e.g. focuses on the logic only so that the uml diagram could be bigger and clearer. ref: https://se-education.org/addressbook-level3/DeveloperGuide.html


Below is an example scenario of how the add student feature behaves at each step:<br>
* Step 1 - The user executes `add_student c/CS2113T i/a0217978j n/jonny` to add a student. The `add_student` command
calls the `AddStudentCommand#execute` method. Within `AddStudentCommand#execute`, `ModuleList#getModule("CS2113T")` is
called to ensure that there is an existing module with code `CS2113T`.
* Step 2 - If an existing module with code `CS2113T` is found, a new `Student` object with id and name set to
`a0217978j` and `jonny` respectively. Then, `StudentList#addModule` is called to add the newly created `Student`
object into the `students` ArrayList within `StudentList`.

<br>

### Add Assessment

Choose a reason for hiding this comment

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

The description for the implementation of Assessment tends to be a bit wordy and hard to follow. To make it easier for your users to understand this command function you could add an UML sequence diagram like the other commands.

Choose a reason for hiding this comment

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

Neatness/correctness:
looks messy
not well-formatted
hard to read/understand

The add assessment mechanism is facilitated by `AddAssessmentCommand`. It extends `Command` and uses `AssessmentList`
which stores assessment internally as an ArrayList `assessments`.<br>

`AddAssessmentCommand` implements the following methods:
* `AddAssessmentCommand#execute(moduleList:ModuleList, ui:Ui, storage:Storage)` - Performs operations for the command.

`AssessmentList` implements the following methods:
* `AssessmentList#getSize()` - Returns the no. of assessments currently in the list.
* `AssessmentList#getAssessments()` - Returns an ArrayList containing all the assessments.
* `AssessmentList#getAssessment(assessmentName:String)` - Returns an assessment with a particular name specified by the
user.
* `AssessmentList#addAssessment(assessment:Assessment)` - Adds an assessment to the `assessments` ArrayList.
* `AssessmentList#deleteAssessment(assessmentName:String)` - Deletes an assessment with the name specified by the user
from the `assessments` ArrayList.

The sequence diagram shown below illustrates how the `add_assessment` command works:
![AddAssessmentSequenceDiagram](diagrams/AddAssessmentSequenceDiagram.png)

Choose a reason for hiding this comment

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

image
Perhaps adding the 'X' below the addModuleCommand


Below is an example scenario of how the add assessment feature behaves at each step:
* Step 1 - The user executes `add_assessment c/cs2113t n/midterms m/20 w/10` to add an assessment. The `add_assessment`
command calls the `AddAssessmentCommand#execute` method. Within `AddAssessmentCommand#execute`,
`ModuleList#getModuleWithCode("cs2113t")` is called to ensure that there is an existing module with code `cs2113t`.
* Step 2 - If an existing module with code `cs2113t` is found, the `MAXIMUM_MARKS` and `WEIGHTAGE` arguments are checked
to ensure that they are valid.
* Step 3 - If the `MAXIMUM_MARKS` and `WEIGHTAGE` arguments are valid, a new `Assessment` object with name,
maximum marks and weightage set to `midterms`, `20` and `10` respectively is created under the existing `Module` with
code `cs2113t`. Then, `AssessmentList#addAssessment` is called to add the newly created `Assessment` object into the
`assessments` ArrayList within `AssessmentList`.
* Step 4 - Within `AssessmentList#addAssessment`, the name of the newly created `Assessment` object is checked to ensure
there is no existing assessment with name `midterms`. At the same time, the weightage of the newly created
`Assessment` object is also checked to ensure that the total weightage of the assessments in the `cs2113t` module
will not exceed 100 with the addition of the weightage of the newly created `Assessment` object.
* Step 5 - If the name and weightage of the newly created `Assessment` object are valid, the newly created `Assessment`
object is added into the `assessments` ArrayList within `AssessmentList`.

<br>

### Set Marks

Choose a reason for hiding this comment

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

You could add an example scenario like the other commands so that it is easier for your users to understand how this command works.

Choose a reason for hiding this comment

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

Use of examples:

Not enough or too many examples e.g., sample inputs/outputs

The sequence diagram shown below illustrates how the `set_mark` command works:
![SetMarkSequenceDiagram](diagrams/SetMarkSequenceDiagram.png)

Choose a reason for hiding this comment

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

You could maybe also add numbering for the diagram so that readers can easily refer to the diagram from the steps.


Steps:
1. The `Taa` instance reads in a user input through the `Ui.getUserInput()` method.
2. The user input is then parsed using the `Parser.parseUserInput(userInput:String)` static method and a `Command` object
is returned.
3. `AddModuleCommand.checkArguments()` is then called to check if the arguments are valid.
4. After checking the arguments, `Command.execute(moduleList:ModuleList, ui:Ui, storage:Storage)` will be called.
5. The `module:Module` which the student and assessment belongs to is retrieved with
`getModuleWithCode(moduleCode:String)`.
6. Using `module:Module`, we are able to get the `studentList:StudentList` and `assessmentList:AssessmentList`.
7. The `student:Student` and `assessment:Assessment` are then retrieved from their lists using
`getStudentAt(studentIndex:Integer)` and `getAssessment(assessmentName:String)` respectively.
8. Finally, `setMarks(assessmentName:String, marks:Double)` is called to set the marks of the assessment in the
student's `results` HashMap.
9. A message will then be printed out to indicate to the user that the marks have been set successfully.


### Set Attendance

Choose a reason for hiding this comment

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

You could use an UML sequence diagram here as well for easier reference of how this command function works for your users.

The set attendance mechanism is facilitated by SetAttendanceCommand. It extends `Command` and
uses `AttendanceList` which stores a student's lessons attendance as an
ArrayList `attendances`.
<br>

`SetAttendanceCommand` implements the following methods:
* `SetAttendanceCommand#execute(moduleList:ModuleList, ui:Ui, storage:Storage)` - Performs operations for the command.

`AttendanceList` implements the following methods:
* `AttendanceList#getSize()` - Returns the no. of attendance currently in the list.
* `AttendanceList#getAttendances()` - Returns an ArrayList containing all the attendances.
* `AttendanceList#getAttendance(lessonNumber:String)` - Returns an attendance with a particular lesson number.
* `AttendanceList#isValidIndex(index:int)` - Checks if an index is valid w.r.t the `attendances` ArrayList.
* `AttendanceList#addAttendance(attendance:Attendance)` - Adds an attendance to the `attendances` ArrayList.
* `AttendnaceList#getAttendnaceIndex(lessonNumInput:String)` - Returns the attendance index in the `attendances`
ArrayList.
* `AttendanceList#deleteAttendance(lessonNumInput:String)` - Deletes an attendance with a particular lesson number.
* `AttendanceList#sortAttendances` - Sorts the attendance in the `attendances` ArrayList in ascending order based on

Choose a reason for hiding this comment

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

Maybe can consider putting these on a table as they are a bit too hard to read.

lesson number.

Below is an example scenario of how the set attendance feature behaves at each step:

Choose a reason for hiding this comment

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

The steps here look a bit chunky, maybe you could split them up into more steps which could help readers digest it better.

* Step 1 - The user executes `set_attendance c/CS2113T s/1 l/1 p/1` to set an attendance to `Present` for student at

Choose a reason for hiding this comment

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

Neatness/correctness:
looks messy
not well-formatted
hard to read/understand

perhaps some more spacing at a minimum

index `1`, lesson number `1` to set a student's attendance for a lesson. The `set_attendance` command calls the
`SetAttendanceCommand#execute` method. Within `SetAttendanceCommand#execute`, `AttendanceList#getAttendance("1")` is
called to ensure that there is no existing attendance with the
lesson number `1`for student at index `1`.
* Step 2 - If no existing attendance object with lesson number `1` for student at index `1` is found, a new
`Attendance` object
with lesson number `1` and attendance record `Present` is set as its lesson number and attendance record respectively.
Then, `AttendanceList#addAttendance` is called to add the newly created `Attendance` object into the `attendances`
ArrayList within `AttendanceList`.

<br>

## Product scope
### Target user profile

{Describe the target user profile}
* Teaching assistant who has a need to manage a significant number of students and their information.
* Prefers desktop app over other types of apps.
* Can type fast.
* Prefers typing to mouse interactions.
* Reasonably comfortable using CLI apps.

### Value proposition

{Describe the value proposition: what problem does it solve?}
* Manage student information faster than a typical mouse/GUI driven app.

## 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|Teaching Assistant|Add module|Keep track of all the modules that I am teaching|
|v1.0|Teaching Assistant|Add student|Keep track of students taking the module|
|v1.0|Teaching Assistant|Add assessment|Monitor what assessments there are in the module|
|v1.0|Teaching Assistant|Set marks|Record how much marks students score for the assessment|
|v1.0|Teaching Assistant|Set attendance|Monitor the attendance of students|
|v1.0|Teaching Assistant|Calculate the average marks of an assessment|Estimate the capabilities of students|
|v2.0|Teaching Assistant|Edit module|Change module details (e.g. code and name)|
|v2.0|Teaching Assistant|Delete module|Remove unnecessary data and reduce clutter|
|v2.0|Teaching Assistant|Edit student|Change any student's information|
|v2.0|Teaching Assistant|Delete student|Remove students who are no longer part of the class|
|v2.0|Teaching Assistant|Edit assessment|Change the name or weightage of the assessment|
|v2.0|Teaching Assistant|Delete assessment|Remove a particular assessment from the module|
|v2.0|Teaching Assistant|Edit marks|Modify the marks of the student for a particular assessment|
|v2.0|Teaching Assistant|Delete marks|Remove the marks entry of a student for a particular assessment|
|v2.0|Teaching Assistant|Delete attendance|Remove the attendance entry of a student|

## Non-Functional Requirements

{Give non-functional requirements}
1. Should work on any mainstream OS as long as it has `Java 11` 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.

## Glossary

* *glossary item* - Definition

## 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}
Comment on lines -36 to -38

Choose a reason for hiding this comment

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

I'm not sure if you're going you add this later but, perhaps adding some simple manual testing directions can guide the person to test functions you've described so far.

* Mainstream OS: Windows, Linux, Unix, OS-X
Loading