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-T11-4] Inventra #23

Open
wants to merge 311 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 160 commits
Commits
Show all changes
311 commits
Select commit Hold shift + click to select a range
10018ba
Fix bugs pertaining to duplicate headers fields, invalid field type a…
tayjerom Oct 17, 2024
e719aaa
Merge branch 'master' into add-h-check
tayjerom Oct 17, 2024
5cf2124
Update CSV file path
tayjerom Oct 17, 2024
3f685c2
Merge pull request #24 from tayjerom/add-h-check
tayjerom Oct 17, 2024
6e9a2d1
Implement update to csv after deleting records + gradle fix
tayjerom Oct 17, 2024
155dcea
Merge pull request #25 from tayjerom/update-csv-after-deletion
tayjerom Oct 17, 2024
7900781
Added number related exceptions
danusan-s Oct 17, 2024
564faf4
Added missing arguements exception
danusan-s Oct 17, 2024
240f94b
Made Delete command use Exceptions
danusan-s Oct 17, 2024
c57ea4b
Merge pull request #26 from danusan-s/refactoring-exceptions
danusan-s Oct 17, 2024
8789199
Added Delete Junit test
danusan-s Oct 17, 2024
98eeb7b
Modified test method name
danusan-s Oct 17, 2024
0c7a80b
Merge pull request #27 from danusan-s/added-delete-test
danusan-s Oct 17, 2024
4477341
Debug CSV header field types upon reload program, via assertion and l…
tayjerom Oct 17, 2024
e47f0a8
Merge remote-tracking branch 'upstream/master' into fix-bugs-csv-header
tayjerom Oct 17, 2024
9c6d5bf
Modify view command to use Inventra Exception
Lambom4n Oct 17, 2024
ed3a4bf
Merge pull request #28 from tayjerom/fix-bugs-csv-header
tayjerom Oct 17, 2024
79bba43
Fix test-setup to create test CSV file and handle file pathing
tayjerom Oct 17, 2024
836272d
Merge pull request #29 from AY2425S1-CS2113-T11-4/branch-#29
DucPhong135 Oct 17, 2024
1917b3b
Merge pull request #30 from tayjerom/fix-test-filepath
tayjerom Oct 17, 2024
fb4aa10
Cleaned up view and delete
danusan-s Oct 18, 2024
1d986f6
Added a lot more exceptions
danusan-s Oct 18, 2024
0856f1a
Cleaned up ui class
danusan-s Oct 18, 2024
1f3b256
Updated junit tests
danusan-s Oct 18, 2024
b39aba4
Temporarily removed absolute path
danusan-s Oct 18, 2024
bee83c6
Merge pull request #31 from danusan-s/more-exceptions
danusan-s Oct 18, 2024
055c6b5
Added ability to delete entire table and all records
danusan-s Oct 18, 2024
2886f85
Added ability to delete an entire column
danusan-s Oct 18, 2024
29a2445
Fixed style for delete command
danusan-s Oct 18, 2024
005dcf4
Merge pull request #33 from danusan-s/delete-headers
danusan-s Oct 18, 2024
59a47e6
Merge remote-tracking branch 'Upstream_repo/master' into Delete-Headers
Oct 18, 2024
8dec487
Add a new exception for too many argument being passed to a command a…
Lambom4n Oct 18, 2024
43fda35
Merge pull request #34 from DucPhong135/master
DucPhong135 Oct 18, 2024
ce29ecd
Modified the extra args exception
danusan-s Oct 18, 2024
ba91d57
Added help command and removed exit command
danusan-s Oct 18, 2024
8b2fb4a
Modified text-ui-test
danusan-s Oct 18, 2024
91f852d
Merge pull request #35 from danusan-s/help-command
danusan-s Oct 18, 2024
a11c030
Standardise expected output between cmd and IntelliJ
Oct 18, 2024
451caea
Merge remote-tracking branch 'Upstream_repo/master' into merge-v0.2
Oct 18, 2024
e328e4d
Test relative path
Oct 18, 2024
62ab1b1
Standardize intelliJ and cmd filepath
Oct 18, 2024
dd66c90
Merge pull request #36 from lucas-sc0/lucas-merge-0.2
lucas-sc0 Oct 18, 2024
558fa31
Fix handling of metadata upon deletion
Oct 19, 2024
dac4359
Update csv properly after delete -a & delete -e
Oct 19, 2024
8bd4079
Add new delete command flag variants into help command
Oct 19, 2024
198a305
Merge pull request #38 from lucas-sc0/master
lucas-sc0 Oct 19, 2024
5cab9fc
Comment out unecessary debugging info
Oct 19, 2024
a9c2b09
Merge pull request #39 from lucas-sc0/master
lucas-sc0 Oct 19, 2024
7308ddb
Test coverage for entire delete command
danusan-s Oct 23, 2024
e5b253a
Fixed checkstyle
danusan-s Oct 23, 2024
929119e
Merge pull request #40 from danusan-s/delete-test-coverage
danusan-s Oct 23, 2024
85fc0d4
Make file path simpler and jar compatible
danusan-s Oct 23, 2024
2384f85
Modify text-ui-test script to clear up data folder upon completion
danusan-s Oct 23, 2024
d190c6b
Update delete test
danusan-s Oct 23, 2024
1e7da8e
Reformatting to fix style
danusan-s Oct 23, 2024
4e2acc0
Merge pull request #41 from danusan-s/file-path-fix
danusan-s Oct 23, 2024
0c45ed4
Added command specific help
danusan-s Oct 23, 2024
577bcc3
Merge pull request #42 from danusan-s/better-help-command
danusan-s Oct 23, 2024
1ff3b86
Added delete range feature
danusan-s Oct 23, 2024
044ecf6
Formatted code to pass checkstyle
danusan-s Oct 23, 2024
ade6a51
Merge pull request #43 from danusan-s/delete-range
danusan-s Oct 23, 2024
47b6621
Enable assertion in build.gradle, removed add -l command
tayjerom Oct 23, 2024
8f39674
Update InventraTest: Replace add -l with view -a to fix test failures
tayjerom Oct 23, 2024
c197918
Merge pull request #45 from tayjerom/v2.0-start-v1
tayjerom Oct 23, 2024
9e0b528
Update AboutUs.md
tayjerom Oct 23, 2024
c1a24ac
add view command view -f
Lambom4n Oct 23, 2024
97a44bd
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
DucPhong135 Oct 23, 2024
ed2d76f
Merge pull request #46 from DucPhong135/master
DucPhong135 Oct 23, 2024
1b5e345
Add assertions
Oct 23, 2024
113493e
Update DeveloperGuide.md
tayjerom Oct 23, 2024
fa11a02
Update DeveloperGuide.md
tayjerom Oct 23, 2024
edb529b
Repackage add command test
Oct 23, 2024
a65b102
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
LuxLucky7 Oct 24, 2024
f7c6144
Merge branch 'master' of https://github.com/LuxLucky7/tp
Oct 24, 2024
2bf4328
Merge pull request #52 from lucas-sc0/test-merge-0.2
lucas-sc0 Oct 24, 2024
0110260
Improve add command testing
Oct 25, 2024
e1e7a07
Merge pull request #53 from lucas-sc0/test-merge-0.2
lucas-sc0 Oct 25, 2024
6fa2632
Add exception class
Oct 25, 2024
56c38f7
Merge pull request #54 from lucas-sc0/test-merge-0.2
lucas-sc0 Oct 25, 2024
e725807
Complete test coverage
danusan-s Oct 26, 2024
02eb4f9
Added more help for new flags
danusan-s Oct 26, 2024
70dad2e
Cleanup to fit checkstyle
danusan-s Oct 26, 2024
cfd01a3
Merge pull request #55 from danusan-s/improve-delete
danusan-s Oct 26, 2024
e293591
Update user guide to include delete command
danusan-s Oct 27, 2024
c7d5426
Added some info about delete in Developer Guide
danusan-s Oct 27, 2024
507dabc
Merge pull request #56 from danusan-s/developer-guide
danusan-s Oct 29, 2024
c5c2b38
Update developer guide
Oct 30, 2024
cdb80ed
Add abstract command class
Oct 30, 2024
aedae83
Update code to use abstract command class
Oct 30, 2024
0634b9b
Remove arrowhead code
Oct 30, 2024
bfb2f41
Improve output of view -f
Oct 30, 2024
db21412
Improve add command testing
Oct 30, 2024
3525084
Merge pull request #57 from lucas-sc0/More-OOP
lucas-sc0 Oct 30, 2024
0bdecac
Implement CommandParserTest
Oct 30, 2024
b5ac8b0
Merge pull request #59 from lucas-sc0/More-OOP
lucas-sc0 Oct 30, 2024
bc7f010
add ViewCommandTest
Lambom4n Oct 31, 2024
e441e97
Merge pull request #60 from DucPhong135/master
DucPhong135 Oct 31, 2024
5c3a212
Update UserGuide to include guide for Add, View, Exit commands
tayjerom Oct 31, 2024
075f529
Update DeveloperGuide to include UML diagrams.
tayjerom Nov 1, 2024
41c739b
Update Developer Guide to include UML diagrams and View command
tayjerom Nov 1, 2024
3019bfd
Merge remote-tracking branch 'upstream/master' into v2.0-Week11
tayjerom Nov 1, 2024
869ec8a
Merge pull request #61 from tayjerom/v2.0-Week11
tayjerom Nov 1, 2024
2229ad4
Merge remote-tracking branch 'Upstream_repo/master'
Nov 4, 2024
a7819d8
Merge remote-tracking branch 'Upstream_repo/master'
Nov 4, 2024
7c120fc
Add table of contents for DG
Nov 4, 2024
45188ef
Merge pull request #62 from lucas-sc0/DG-Update
lucas-sc0 Nov 4, 2024
ed791a1
Remove add -hu command and update README.md
tayjerom Nov 5, 2024
2aace19
Merge pull request #63 from tayjerom/v2.0-remove-add-hu
tayjerom Nov 5, 2024
94211ce
Fix Gradle and CI test for Add, View, CommandParser Test
tayjerom Nov 5, 2024
4239a26
Merge pull request #64 from tayjerom/v2.0-fix-GradleCI-Test
tayjerom Nov 5, 2024
d1757c5
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
LuxLucky7 Nov 5, 2024
0fb3e2e
Merge branch 'master' of https://github.com/LuxLucky7/tp
Nov 5, 2024
400a06f
Enhance Coverage Testing for overall code base (Add, Delete, View, In…
tayjerom Nov 5, 2024
d7dff10
Merge pull request #65 from tayjerom/v2.0-Further-ManualTest
tayjerom Nov 5, 2024
b26203d
Fix delete -h command to update CSV after deleting header
tayjerom Nov 5, 2024
6139e12
Merge pull request #66 from tayjerom/v2.0-CSVUpdate-delete-h
tayjerom Nov 5, 2024
7d02cd5
Implement UpdateCommand
Nov 5, 2024
0641f74
Fix UpdateCommand and CommandParser Checkstyle violations
Nov 5, 2024
fbb76c4
UpdateCommand UML diagrams
Nov 5, 2024
370d218
UpdateCommand UserGuide and DeveloperGuide
Nov 5, 2024
bd261cf
Initial UpdateCommandTest
Nov 6, 2024
c39ac51
Implement UpdateCommandTest
Nov 6, 2024
cfea880
Merge pull request #67 from LuxLucky7/UpdateCommand
LuxLucky7 Nov 6, 2024
942a7eb
Merge branch 'master' of https://github.com/LuxLucky7/tp
Nov 6, 2024
174bf51
Revise developer guide
Nov 6, 2024
65c47d3
Merge remote-tracking branch 'Upstream_repo/master' into merge
Nov 6, 2024
491a9c9
Update UG
Nov 6, 2024
1578b8a
Add class diagram into DG
Nov 6, 2024
a854ecd
Fix bugs and crashes
Nov 6, 2024
b8393bb
Merge pull request #68 from lucas-sc0/merge
lucas-sc0 Nov 6, 2024
b059f20
Update update command input validation
Nov 6, 2024
50bf1f8
Merge pull request #69 from lucas-sc0/merge
lucas-sc0 Nov 6, 2024
2d0a722
Refactor codes identified with bugs upon Manual Test
tayjerom Nov 7, 2024
e96e9ad
Merge pull request #70 from tayjerom/v2.0-test-and-bugs-fix-0711
tayjerom Nov 7, 2024
ec49dec
Update repository's README.md to reflect Inventra description and Guide.
tayjerom Nov 7, 2024
b3af044
Update UserGuide.md to reflect consistency of style.
tayjerom Nov 7, 2024
eca7f68
Update developer guide
Nov 7, 2024
49cf683
Merge pull request #71 from lucas-sc0/merge
lucas-sc0 Nov 7, 2024
981c23c
Update landing page
Nov 7, 2024
73d2de3
Update UG
Nov 7, 2024
efa9c10
Merge pull request #72 from lucas-sc0/merge
lucas-sc0 Nov 7, 2024
c15e863
Update user guide
Nov 8, 2024
5c39f14
Merge branch 'master' into merge
lucas-sc0 Nov 8, 2024
10edb7f
Update UG
Nov 8, 2024
f798de1
Merge remote-tracking branch 'origin/merge' into merge
Nov 8, 2024
05e4927
Merge pull request #73 from lucas-sc0/merge
lucas-sc0 Nov 8, 2024
4bac55e
FIx hyperlinks for UG and DG
Nov 8, 2024
f936fb5
Merge pull request #74 from lucas-sc0/master
lucas-sc0 Nov 8, 2024
08a035a
Update UG
Nov 8, 2024
b0e07f3
Merge pull request #75 from lucas-sc0/master
lucas-sc0 Nov 8, 2024
a7e8938
change error in help commands
Lambom4n Nov 8, 2024
9a96624
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
DucPhong135 Nov 8, 2024
15c03b6
Merge pull request #76 from DucPhong135/master
DucPhong135 Nov 8, 2024
360190d
update exception when exit command input more than expected
Lambom4n Nov 8, 2024
fa22e2e
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
DucPhong135 Nov 8, 2024
479d902
Merge pull request #77 from DucPhong135/master
DucPhong135 Nov 8, 2024
e5e8f93
update missing view command in UG
Lambom4n Nov 8, 2024
f47e250
update on exception message when inputting invalid field type
Lambom4n Nov 8, 2024
00f82e9
Merge remote-tracking branch 'origin/master'
Lambom4n Nov 8, 2024
46c6228
Merge pull request #78 from DucPhong135/master
DucPhong135 Nov 8, 2024
85f5382
Address PE-D issues highlighted #1
tayjerom Nov 9, 2024
f9b306f
Address PE-D issues highlighted #1
tayjerom Nov 9, 2024
bb6f235
Merge pull request #146 from tayjerom/v2.1-fix-PE-D-#1
tayjerom Nov 9, 2024
901a514
Address PE-D issues highlighted #2
tayjerom Nov 9, 2024
1d85ad8
Fix issue #90
danusan-s Nov 9, 2024
3295647
Remove csv message
danusan-s Nov 9, 2024
bc4eb60
Fix UG for delete range
danusan-s Nov 9, 2024
a24111d
Enforce start is smaller than end in range
danusan-s Nov 9, 2024
cd5b638
Reformat code
danusan-s Nov 9, 2024
f52504f
Combine text blocks in help command
danusan-s Nov 9, 2024
2cfde00
Fix indentation in help command
danusan-s Nov 9, 2024
2c46b4a
Merge pull request #148 from danusan-s/fix-issues-1
danusan-s Nov 9, 2024
aa5ce7b
Address PE-D issues highlighted #3
tayjerom Nov 9, 2024
a6077d9
Merge branch 'master' into v2.1-fix-PE-D-#2
tayjerom Nov 9, 2024
2d762d8
Resolved conflict in CommandParser.java
tayjerom Nov 9, 2024
379f58a
Merge branch 'v2.1-fix-PE-D-#2' of https://github.com/tayjerom/tp int…
tayjerom Nov 9, 2024
15781ac
Merge pull request #147 from tayjerom/v2.1-fix-PE-D-#2
tayjerom Nov 9, 2024
bec3723
Merge pull request #149 from tayjerom/v2.1-fix-PE-D-#3
tayjerom Nov 9, 2024
1020c3c
Address PE-D issues highlighted #4
tayjerom Nov 9, 2024
4a960c6
Merge branch 'master' into v2.1-fix-PE-D-#4
tayjerom Nov 9, 2024
17f2305
Merge pull request #150 from tayjerom/v2.1-fix-PE-D-#4
tayjerom Nov 9, 2024
deb6983
address issue #81
Lambom4n Nov 9, 2024
d2f360d
Address PE-D issues highlighted #5
tayjerom Nov 9, 2024
36c71fc
Merge pull request #151 from tayjerom/v2.1-fix-PE-D-#5
tayjerom Nov 9, 2024
41b4278
address issue #120
Lambom4n Nov 9, 2024
2528682
address issue #120
Lambom4n Nov 9, 2024
5fc8ca6
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
DucPhong135 Nov 9, 2024
b69d024
Merge pull request #152 from DucPhong135/master
DucPhong135 Nov 9, 2024
fd48795
Update UserGuide.md
tayjerom Nov 9, 2024
4416037
Update UserGuide.md
tayjerom Nov 9, 2024
4c15360
Address issue #153 and included PPP
tayjerom Nov 9, 2024
9ff35ac
Merge branch 'master' into v2.1-PPP
tayjerom Nov 9, 2024
d2476b7
Address conflict on InvalidNumberException
tayjerom Nov 9, 2024
fae8dbf
Merge pull request #154 from tayjerom/v2.1-PPP
tayjerom Nov 9, 2024
567099c
Address issues raised in PE-D #6
tayjerom Nov 10, 2024
f98c68f
Merge pull request #155 from tayjerom/v2.1-fix-PE-D-#6
tayjerom Nov 10, 2024
65a1974
Address PE-D issues highlighted #7
tayjerom Nov 10, 2024
da1bb5d
Merge pull request #156 from tayjerom/v2.1-fix-PE-D-#7
tayjerom Nov 10, 2024
b46575f
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
LuxLucky7 Nov 10, 2024
803bb1a
Merge branch 'master' of https://github.com/LuxLucky7/tp
Nov 10, 2024
ae71fc1
Include draft version of luxlucky7.md
Nov 10, 2024
924fdda
Fix issue #80
Nov 10, 2024
732d02d
Update UG and add PPP
Lambom4n Nov 10, 2024
fd263b5
Merge remote-tracking branch 'origin/master'
Lambom4n Nov 10, 2024
2ed8f97
Merge pull request #157 from DucPhong135/master
DucPhong135 Nov 10, 2024
342e2e8
Update view command test
Lambom4n Nov 10, 2024
b85b95f
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
DucPhong135 Nov 10, 2024
d9fd2ba
Merge pull request #158 from DucPhong135/master
DucPhong135 Nov 10, 2024
ffa44b6
Rename DucPhong135.md to ducphong135.md
DucPhong135 Nov 11, 2024
883fefd
Rename DucPhong135.md to ducphong135.md
DucPhong135 Nov 11, 2024
a4f6d81
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
DucPhong135 Nov 11, 2024
bee4ae7
Fixed ViewCommand text checkstyle
danusan-s Nov 11, 2024
e5a2de2
Added Personal Portfolio
danusan-s Nov 11, 2024
73deaf2
Merge pull request #159 from danusan-s/ppp-danusan
danusan-s Nov 11, 2024
a705b77
Resolve issue #145
Nov 11, 2024
835aa51
Merge pull request #160 from lucas-sc0/master
lucas-sc0 Nov 11, 2024
9407c96
Resolve issue #143
Nov 11, 2024
28ab4b3
Resolve issue #105
Nov 11, 2024
e3b093d
Add PPP
Nov 11, 2024
4b9bd17
Merge pull request #161 from lucas-sc0/master
lucas-sc0 Nov 11, 2024
b69520f
Resolve checkstyle error
Nov 11, 2024
42da59e
Merge branch 'AY2425S1-CS2113-T11-4:master' into master
DucPhong135 Nov 11, 2024
120fc26
Add exception for input string longer than limit and modify view comm…
Lambom4n Nov 11, 2024
32645b2
update userguide
Lambom4n Nov 11, 2024
3a7a437
Merge pull request #163 from DucPhong135/master
DucPhong135 Nov 11, 2024
626b769
Merge remote-tracking branch 'Upstream_repo/master'
Nov 11, 2024
baa9303
Fix gradle test
Nov 11, 2024
ca92df9
FIx checkstyle errors
Nov 11, 2024
493e027
FIx checkstyle errors
Nov 11, 2024
7630921
FIx checkstyle errors
Nov 11, 2024
edd8046
Merge pull request #164 from lucas-sc0/master
lucas-sc0 Nov 11, 2024
b6f962d
Include final version of luxlucky7.md
Nov 11, 2024
0217419
Merge pull request #165 from LuxLucky7/docs-team
LuxLucky7 Nov 11, 2024
d2cd42a
Update PPP draft
Nov 12, 2024
568bbd8
Merge pull request #166 from lucas-sc0/master
lucas-sc0 Nov 12, 2024
f35984f
Update landing page
Nov 12, 2024
ddf2da2
Merge pull request #167 from lucas-sc0/master
lucas-sc0 Nov 12, 2024
cfd6c0c
Fix landing page link
Nov 12, 2024
2c87afd
Merge pull request #168 from lucas-sc0/master
lucas-sc0 Nov 12, 2024
cbfbfef
Fix PPP
Nov 12, 2024
4468f51
Merge pull request #169 from lucas-sc0/master
lucas-sc0 Nov 12, 2024
4a1366a
FIx PPP format
Nov 12, 2024
fb0e610
Fix PPP
Nov 12, 2024
f908beb
Merge pull request #170 from lucas-sc0/master
lucas-sc0 Nov 12, 2024
4bcf6fa
Add Javadoc commments
Nov 12, 2024
c380722
Merge pull request #171 from lucas-sc0/master
lucas-sc0 Nov 12, 2024
da5da5c
FIx checkstyle errors
Nov 12, 2024
8508a00
Merge pull request #172 from lucas-sc0/master
lucas-sc0 Nov 12, 2024
bb42cdd
Update UG
Nov 12, 2024
837ed42
Merge pull request #173 from lucas-sc0/master
lucas-sc0 Nov 12, 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
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ src/main/resources/docs/
*.iml
bin/

/text-ui-test/ACTUAL.TXT
text-ui-test/ACTUAL.TXT
text-ui-test/EXPECTED-UNIX.TXT
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Duke project template
# Inventra

This is a project template for a greenfield Java project. It's named after the Java mascot _Duke_. Given below are instructions on how to use it.

Expand Down
8 changes: 6 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,16 @@ test {
showStackTraces true
showStandardStreams = false
}
// Enable assertions during tests
jvmArgs += '-ea'
}

application {
mainClass.set("seedu.duke.Duke")
mainClass.set("seedu.inventra.Inventra")
}

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

Expand All @@ -43,4 +45,6 @@ checkstyle {

run{
standardInput = System.in
// Enable assertions during run-time
jvmArgs += '-ea'
}
Empty file added data/inventory.csv
Empty file.
Empty file added data/test_inventory.csv
Empty file.
9 changes: 4 additions & 5 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

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) | Sugumar Danusan | [Github](https://github.com/danusan-s) | [Portfolio](danusan-s)
![](https://via.placeholder.com/100.png?text=Photo) | Nguyen Duc Phong | [Github](https://github.com/DucPhong135) | [Portfolio](ducphong135)
![](https://via.placeholder.com/100.png?text=Photo) | Lucas Spencer Chan | [Github](https://github.com/lucas-sc0) | [Portfolio](lucas-sc0)
![](https://via.placeholder.com/100.png?text=Photo) | Jerome Tay Feng Wei | [Github](https://github.com/tayjerom) | [Portfolio](tayjerom)
202 changes: 186 additions & 16 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,208 @@
# Developer Guide
Copy link

Choose a reason for hiding this comment

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

[CRITICAL]
Diagrams are not shown on DG html page. Please fix this as soon as possible.


## Acknowledgements

{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}
The following resources and libraries were referenced or adapted in this project:
* Java Coding Standard (Basic): [Official Documentation](https://se-education.org/guides/conventions/java/basic.html)
* Code Quality (Guide): (https://nus-cs2113-ay2425s1.github.io/website/se-book-adapted/chapters/codeQuality.html)

Choose a reason for hiding this comment

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

Hyperlink not working (not clickable in the DG)


## Design & implementation

Choose a reason for hiding this comment

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

Can add a brief overview of the whole program to allow user view the whole sequence of the project


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

Choose a reason for hiding this comment

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

Perhaps include an architecture diagram here.


The `Inventra` class manages the overall application flow, which includes application launch and shutdown.
The core processes are managed by the following components:
* **UI**: The user interface for handling user interaction and the display of output.
* **Command**: The commands that user inputs.
* **CommandParser**: A parser to handle said commands, as well as interpreting flags and arguments.
* **Inventory**: The mode we are operating in.
* **Storage**: Reads and writes data to a CSV file to maintain data persistence.

### "Add" Command Feature

Choose a reason for hiding this comment

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

Inconsistent formatting styles: "Add" (line 11), '-h' (line 15), command (line 20). It is recommended that you use a single style for code snippets, most preferably ....

Copy link

Choose a reason for hiding this comment

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

Do note that the DG's primary purpose is to inform on the implementation details.
However, the header seems to suggest to inform on what features have been implemented.

This is prevalent in other "Command Features" as well.

The "AddCommand" is responsible for adding fields and records to the inventory.
Concurrently, "add" command is implemented with behaviour to update CSV file to persist changes made to inventory.

This command supports the following options:
* '-h': Add custom fields to the inventory.
* '-d': Add records to the inventory corresponding to defined fields.

#### Architecture Overview
Copy link

Choose a reason for hiding this comment

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

This seems to be better explained with class diagrams.

The 'AddCommand' is part of the `command` package, and interacts with the following key components:
* **Inventory**: Contains the current state of the inventory, including fields and records.
* **Csv**: Handles reading from and writing to the CSV file for data storage persistence.
* **Ui**: Handles user interactions component such as message to user during command execution.

Command flow of 'AddCommand' can be visualized with the following architecture diagram:
Copy link

Choose a reason for hiding this comment

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

A "command flow" seems to suggest a sequence diagram more so than an architecture diagram.

![Architecture Diagram](docs/diagrams/AddCommandArchitectureDiagram.png)

* **Description**: The `AddCommand` class modifies the `Inventory` by adding new fields or records based on user's inputs.
It interacts with `Csv` to update the CSV file accordingly to maintain data persistence.
The `Ui` components then displays feedback to the user.

#### Component-Level Design
"AddCommand" Class:
* processes the input arguments and executes the logic based on flags (-h, -d) respectively.
* fields and records are validated before updating inventory data into the CSV file.

"AddCommand" Methods:
* handleAddMultipleFields(): processes input fields, validate fields, and update the inventory accordingly.
* handleAddRecord(): handles logic for adding records into the inventory. If successfully add records, data will be appended into the CSV file.
* handleUpdateFields(): allow updating of existing fields and types in the inventory.
![Class Diagram](docs/umldiagrams/AddCommandClassDiagram.png)
Copy link

Choose a reason for hiding this comment

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

For all diagrams, it would be better to show the diagram first before explaining the details within the diagram.

Copy link

Choose a reason for hiding this comment

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

The navigability seems to suggest that there is a reference of Inventory, Csv, and Ui within the AddCommand class, but this is not the case within the code!

The association label is not indicated with an arrow head.

Please follow proper UML notation for class diagrams.

* **Description**: The class diagram illustrates methods of the `AddCommand` class and the interaction with `Inventory`, `Csv`, and `Ui` respectively.
Copy link

Choose a reason for hiding this comment

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

This bullet point is out of place. What is this description for?


#### Sequence Diagram
*Illustrates how "AddCommand" interacts with "Inventory" and "Csv" classes when adding a record:

![Sequence Diagram](docs/diagrams/AddCommandSequenceDiagram.png)
Copy link

Choose a reason for hiding this comment

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

The sequence diagram totally do not match the implementation.
For example, within execute(), handleAddMultipleFields(), handleUpdateFields() and handleAddRecord() is being called based on condition, but the alt-frames are not shown.
There isn't any validateField() method within the class as well.
Only omit return arrows if it does not result in ambiguity.

Are you sure that User is the one who invokes the execute() method?

Please fix all your sequence diagrams within the DG.


#### Why Implement "AddCommand" in this way?
Separating implementation of "AddCommand", "Inventory", and "Csv" classes ensures:
* "AddCommand" focus only on processing input and delegating task to other specific components.
* "Csv" class is responsible for updating data into CSV file for storage; ensuring persistence in data control.
* With this breakdown of implementation, create room for future scalability (e.g. adding more fields types).

#### Alternative Considered
Only when requirements permits, database implementation has been considered for better handling of fields types for inventory storage.

### "Delete" Command Feature
The "DeleteCommand" is responsible for adding fields and records to the inventory.
Concurrently, "delete" command is implemented with behaviour to update CSV file to persist changes made to inventory.
This command supports the following formats:
* '\<index>': Delete the record at the specified index (1-based indexing).
* '-a': Delete all records in the inventory.
* '-e': Delete all records and headers in the inventory.
* '-h \<field_name>': Delete the mentioned field and its column from the inventory.
* '-r \<start>-\<end>': Delete records from the start index to the end index (both inclusive and 1-based indexing).

Choose a reason for hiding this comment

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

Should have example below every command for clarity instead of in the manual testing part at the bottom of the document


#### Architecture Overview
The 'DeleteCommand' is part of the `command` package, and interacts with the following key components:
* **Inventory**: Contains the current state of the inventory, including fields and records.
* **Csv**: Handles reading from and writing to the CSV file for data storage persistence.
* **Ui**: Handles user interactions component such as message to user during command execution.

Command flow of 'DeleteCommand' can be visualized with the following architecture diagram:
![Architecture Diagram](docs/diagrams/DeleteCommandArchitectureDiagram.png)
* **Description**: The `DeleteCommand` modifies `Inventory` by removing fields or records that are specified by the user.
The `Csv` components updates the CSV file to reflect changes made during deletion, as well as `Ui` provide response to the user.

#### Component-Level Design
"DeleteCommand" Class:
* processes the input arguments and executes the logic based on if the second argument is a number or flag.
* fields and records are validated before updating inventory data into the CSV file.

"Delete Command" key methods include:
* `deleteSingleRecord()`: Deletes a specific record by defined index.
* `deleteAllRecords()`: Deletes all records from the inventory.
* `deleteHeaderAndColumn()`: Deletes a specific field.
* `deleteRangeRecords()`: Deletes a range of records.

![Class Diagram](docs/diagrams/DeleteCommandClassDiagram.png)
* **Description**: The class diagram above shows the core methods of `DeleteCommand` and its interactions with `Inventory`, `Csv`, and `Ui`.

#### Sequence Diagram
*Illustrates how "DeleteCommand" interacts with "Inventory" and "Csv" classes when deleting a record:

![Sequence Diagram](docs/diagrams/DeleteCommandSequenceDiagram.png)

#### Why Implement "DeleteCommand" in this way?
Separating implementation of "DeleteCommand", "Inventory", and "Csv" classes ensures:
* "DeleteCommand" focus only on processing input and delegating task to other specific components.
* "Csv" class is responsible for updating data into CSV file for storage; ensuring persistence in data control.
* With this breakdown of implementation, create room for future scalability (e.g. adding more fields types).

#### Alternative Considered
As with `AddCommand`, database implementation has been considered for better handling of fields types for inventory storage.


### "View" Command Feature
The `ViewCommand` allows users to view records in the inventory, either displaying all records or specific ones based on user's defined filters.

This command supports the following formats:
* `-a`: View all records.
* `<ID>`: View a specific record by defined ID.
* `-f <keyword>`: View records containing a keyword.

#### Architecture Overview

The `ViewCommand` interacts with:
* **Inventory**: Accessing data to retrieve and display records
* **Ui**: Displays records to the user.

![ViewCommand Architecture Diagram](docs/diagrams/ViewCommandArchitectureDiagram.png)
* **Description**: The `ViewCommand` retrieve data from `Inventory` based on user's input and leverage on `Ui` to display records.

#### Component-Level Design

The `ViewCommand` class processes input arguments and execute respective logic based on flags or IDs provided.

"View Command" key methods include:
* `handleViewById()`: Displays a specific record by ID
* `handleViewByKeyword()`: Filters and displays records based on defined keyword.

![ViewCommand Class Diagram](docs/diagrams/ViewCommandClassDiagram.png)
* **Description**: The class diagram above shows the main methods used by `ViewCommand` and its connection to `Inventory` and `Ui`.

#### Sequence Diagram
The following sequence diagram shows how `ViewCommand` interacts with `Inventory` and `Ui` when displaying a specific records:

![ViewCommand Sequence Diagram](docs/diagrams/ViewCommandSequenceDiagram.png)

#### Why Implement `ViewCommand` in this way:
Approach was adopted to ensure efficient access to `Inventory` for data retrieval and provide overall user-friendliness for user viewing records through `Ui`.


Choose a reason for hiding this comment

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

Can add ur logging and exception to show how u catch errors

## Product scope
### Target user profile

{Describe the target user profile}
* Small to medium-sized business owners operating as retail stores, warehouses, or online shops.
* Owners seeking a customizable, command-driven system to efficiently manage inventory and optimize workflows can leverage on Inventra.

### Value proposition

{Describe the value proposition: what problem does it solve?}
Inventra provides a fast, command-line driven logistics and inventory management system, allowing a single user to do stock tracking, order management, and operational insights, ensuring quick and snappy access to critical business data.

## User Stories

|Version| As a ... | I want to ... | So that I can ...|
|--------|----------|---------------|------------------|
|v1.0|new user|see usage instructions|refer to them when I forget how to use the application|
|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list|
| Version | As a ... | I want to ... | So that ... |
|--------|----------------|---------------------------------------------------|----------------------------------------------------------------------------------|
| v1.0 | business owner | add new products to the inventory | I can keep track of stock availability. |
| v1.0 | business owner | delete discontinued products from inventory | the inventory can be up-to-date on the existing products. |
| v1.0 | business owner | view current inventory list | I can efficiently access in-stock products and to handle restocking of products. |
| v1.0 | business owner | import and export inventory data into spreadsheet | I can streamline inventory updates. |
| v1.0 | business owner | customize information type related to products | I can have the flexibility to manage inventory better. |
| v2.0 | business owner | search for products in the inventory | I can find specific items quickly. |
| v2.0 | business owner | delete all products in inventory | I can handle incorrect creation of inventory data. |
| v2.0 | business owner | update product details | I make adjustments to the inventory when required. |

## Non-Functional Requirements

{Give non-functional requirements}
* The system should work across different operating systems (Windows, Linux, macOS).
* Data must be persistent across sessions by saving and fetching from/to a CSV file.

## Glossary
Copy link

Choose a reason for hiding this comment

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

Glossary is lacking, please double-check on the additional vocabulary that you have introduced, such as "Records".


* *glossary item* - Definition
* *CSV* - Comma-separated values, a format used to store data in a table that are separated by commas
* *Inventory* - Collections of items defined based on their associated properties (fields) - for example: product name, quantity, ...).

## 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}
1. Adding Fields
* Run command: `add -h s/name, i/quantity, f/price` to add new fields to inventory
* Verification: `view -a`

2. Adding Records
* Run command: `add -d Apple, 100, 1.5`
* Verification: `view -a`

3. View Records
* To view all records in inventory, run command: `view -a`
* To view specific records in inventory by ID, in this case ID = 1, run command: `view 1`
* To view records by string, in this case find string "Apple", run command: `view -f Apple`

4. Delete Records
* To delete ID = 1, run command: `delete 1`
* To delete all records, run command: `delete -a`
* To delete entire table (inventory), run command `delete -e`
* Verification: `view -a`

5. CSV Persistence (data storage)
* After add or delete fields/records, check CSV file (`inventory.csv`) for update

6. Exit Program
* Run command: `exit`
Loading
Loading