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-T12-2] Big-PP #23

Open
wants to merge 615 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
615 commits
Select commit Hold shift + click to select a range
e4b5861
Add functionality for compatibility checks
Magmanat Mar 29, 2023
316846c
Update EXPECTED.TXT
Magmanat Mar 29, 2023
f5bd246
Merge pull request #148 from Reynold-SL/branch_developer_guide_sequence
Magmanat Mar 29, 2023
4f29b9b
Resolve merge conflicts
Magmanat Mar 29, 2023
86bb4b8
Merge pull request #149 from Magmanat/compatibility_check
Magmanat Mar 29, 2023
1c7a6e6
Update UserGuide.md
Magmanat Mar 31, 2023
5c781fc
Update UserGuide.md
Magmanat Mar 31, 2023
416cb23
Update UserGuide.md
Magmanat Mar 31, 2023
e496b7a
Update UG
Mar 31, 2023
da30704
Refactor table of contents
Mar 31, 2023
cc0fbe7
Merge pull request #154 from typingpanda/user-guide
Magmanat Mar 31, 2023
8faf6bc
Add exception to account for interger overflow
Apr 1, 2023
a8f0e19
Add limit to integer size
Apr 1, 2023
88a3e84
handle integer overflow
Apr 1, 2023
a90d551
Protect from integer overflow
Apr 1, 2023
faa6b7b
Fix grammer errors
Apr 1, 2023
a8da41e
Fix checkstyle
Apr 1, 2023
e73566f
Magmanat
Apr 1, 2023
22ddb05
Add changes required to follow user guide
Magmanat Apr 1, 2023
3e8a24d
Update ViewerFilterCommand to account for invalid inputs and empty co…
Reynold-SL Apr 1, 2023
9f6c433
Update checkstyle of code
Reynold-SL Apr 1, 2023
f22d6c9
Solve clear screen bug for windows cmd terminal
Magmanat Apr 1, 2023
f9f2695
Add getDetails which will improve the list quality
Magmanat Apr 1, 2023
386a95d
Ensure only selected sockets can be added
Magmanat Apr 1, 2023
076d731
Remove log file
Magmanat Apr 1, 2023
ceadd69
Solve bug with custom cpu and motherboard not adding because of socket
Magmanat Apr 1, 2023
287f1f4
Revert docs change
Magmanat Apr 1, 2023
5f0879c
Remove random ' from storage toString method
Magmanat Apr 1, 2023
79a459d
Merge pull request #191 from typingpanda/fix-bugs
Magmanat Apr 1, 2023
30e0272
Merge pull request #193 from Reynold-SL/branch_viewer_filter_bugs
Magmanat Apr 1, 2023
660b066
last changed at Apr 2, 2023 4:31 AM, pushed by Magmanat
Apr 1, 2023
2575772
Fix Junit test to actual output
Magmanat Apr 1, 2023
3fb24d8
Handle merge conflicts
Magmanat Apr 1, 2023
8efffa2
Disable shadowjar
Magmanat Apr 1, 2023
891e2f1
Enable shadowjar
Magmanat Apr 1, 2023
cf5629a
Edit EXPECTED.TXT to fit the new changes
Magmanat Apr 1, 2023
24ac54a
Merge pull request #197 from AY2223S2-CS2113-T12-2/user-guide-update
keanecxz Apr 2, 2023
85e4f37
Add psu filter
Apr 2, 2023
5c3c6a4
Fix checkstyle
Apr 2, 2023
c59a3fc
Rearrange tests
Magmanat Apr 2, 2023
9232286
Fix viewer filter to desplay accurate error message
Reynold-SL Apr 2, 2023
73e28dd
Remove commands from input.txt
Magmanat Apr 2, 2023
244cd83
Merge pull request #198 from typingpanda/fix-bugs
Magmanat Apr 2, 2023
6a1b9f9
Update README.md
Magmanat Apr 2, 2023
9f00059
Merge pull request #199 from Reynold-SL/branch_viewer_2_filter_bugs
keanecxz Apr 2, 2023
5cedb7e
Update UserGuide.md
Magmanat Apr 2, 2023
62592c0
Merge pull request #192 from Magmanat/master
keanecxz Apr 2, 2023
94076d9
Add appropriate nextlines
Magmanat Apr 2, 2023
2b4db1d
Update UserGuide.md
Magmanat Apr 2, 2023
a7fb910
Update User Guide Glossary Bug
Apr 2, 2023
bcd59ea
Merge branch 'master' into user-guide-update
Ryujikjs Apr 2, 2023
2c3d88d
Merge pull request #200 from AY2223S2-CS2113-T12-2/user-guide-update
Magmanat Apr 2, 2023
109e031
Update list component userguide
Apr 2, 2023
2f4b4cb
Add spacing
Apr 2, 2023
83fc0e1
Add input formatting
Apr 2, 2023
9d2b21c
Add Prince PSU component
Apr 2, 2023
ede36ff
Remove Prince of Pereira
Apr 2, 2023
46696cb
Merge pull request #201 from typingpanda/user-guide
Magmanat Apr 3, 2023
eae6794
Update user guide with @@author
Magmanat Apr 3, 2023
65dfbf0
Merge pull request #202 from Magmanat/master
Magmanat Apr 3, 2023
dffd1e9
Edit author tags to appropriate format
Magmanat Apr 4, 2023
86face8
Add Thomas project portfolio
superkaiba Apr 6, 2023
2ebe536
Improve visibility of headings in DG
superkaiba Apr 6, 2023
53ef756
Add color and indentation and bold/italics to PC viewer menu
superkaiba Apr 6, 2023
21364b0
Reformat help commands to be more readable
Ryujikjs Apr 7, 2023
0a2292c
Fix checkstyle error
Ryujikjs Apr 7, 2023
7f9e288
Merge pull request #203 from superkaiba/add-thomas-project-portfolio
Magmanat Apr 7, 2023
55dedeb
Merge pull request #206 from Ryujikjs/format-help-command
Magmanat Apr 7, 2023
db32b80
Merge pull request #204 from superkaiba/improve-dg-formatting
Magmanat Apr 7, 2023
332c23e
Refactor guide to meet cs2113 standards
Apr 7, 2023
f328728
Merge pull request #207 from typingpanda/developer-docs
Magmanat Apr 7, 2023
25aa7f3
Add to componentList and PCList methods
Magmanat Apr 7, 2023
51cbc19
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T12-2/tp
Magmanat Apr 7, 2023
cbd83c5
Update DataStorage class diagram
Magmanat Apr 7, 2023
6f80e44
Merge pull request #208 from Magmanat/master
Magmanat Apr 7, 2023
e5152a4
Update ViewerAddCommand to include the activation bar
Reynold-SL Apr 7, 2023
948582f
Merge branch 'master' into branch_error_developer_guide
Reynold-SL Apr 7, 2023
d629885
Reformat PC class diagram and complete user guide and instructions fo…
Ryujikjs Apr 7, 2023
0f89d67
Resolve merge conflict
Ryujikjs Apr 7, 2023
0733854
Add profile picture
Ryujikjs Apr 7, 2023
0821262
Update ListComponentCommand PUML
Magmanat Apr 7, 2023
b0108e6
Update ViewerAddCommand to follow standard requirements
Reynold-SL Apr 7, 2023
cac48b8
Add object diagram to DG
Apr 7, 2023
593d3b2
Merge pull request #209 from Reynold-SL/branch_error_developer_guide
keanecxz Apr 7, 2023
8fc6d20
Reformat PC class architecure to be more readable
Ryujikjs Apr 7, 2023
4a7fc4b
Resolve merge conflict
Ryujikjs Apr 7, 2023
7024fe5
Merge pull request #210 from Ryujikjs/developer-guide
Ryujikjs Apr 7, 2023
51ff7ca
Upgrade DataStorage sequential diagram
Magmanat Apr 7, 2023
6f62758
Update loadChassisSequential diagram png
Magmanat Apr 7, 2023
61a2c6a
Remove User from ListComponentCommand puml
Magmanat Apr 7, 2023
d9c4d71
Update getIsFilter to getIsFiltered
Magmanat Apr 7, 2023
77f582b
Fix merge conflict
Apr 7, 2023
5419481
Rearrange Developer Guide properly
Magmanat Apr 7, 2023
9503f9e
changed explanation for abstract class of UI. Used connection instead…
Apr 7, 2023
578f432
Ensure all Class in listComponentCommand has :
Magmanat Apr 7, 2023
c479fb4
Export new png listComponentCommand
Magmanat Apr 7, 2023
dc93701
Settle merge conflicts
Magmanat Apr 7, 2023
0af73c9
Remove unecessary items from TOC
Magmanat Apr 7, 2023
0d32a0f
Add line to differentiate items on DG
Magmanat Apr 7, 2023
9d683c1
Merge pull request #213 from Magmanat/master
Ryujikjs Apr 8, 2023
0403d6e
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T12-2/tp …
Apr 8, 2023
c47edbd
Merge pull request #212 from typingpanda/developer-docs
Ryujikjs Apr 8, 2023
ce98880
Fix DataStorage Class Diagram to remove :
Magmanat Apr 8, 2023
1e5de24
Ensure PcDiagram correct sizing
Magmanat Apr 8, 2023
4f21290
Fix correctness of diagrams in DG
Apr 8, 2023
28009ce
Add @@author to DG
Magmanat Apr 8, 2023
f060db9
Add getting started and acknowledgements
Magmanat Apr 8, 2023
5b41f0e
Fix PC Viewer menu tests
superkaiba Apr 8, 2023
40a388c
Update Individual profile page, fix bug in user stories table and amm…
Ryujikjs Apr 8, 2023
cb4e3bb
Add PPP
Apr 8, 2023
4c109b7
Add fictional data for all components in resources
Magmanat Apr 8, 2023
84e0a6d
Merge pull request #214 from Ryujikjs/PPP
keanecxz Apr 8, 2023
0145d43
Solve merge conflicts
Magmanat Apr 8, 2023
6daabe4
Update PPP
Apr 8, 2023
d26604b
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T12-2/tp …
Apr 8, 2023
54d55d4
Fix spelling errors
Ryujikjs Apr 8, 2023
3baff45
Revert accidental change of PcDiagram
Magmanat Apr 8, 2023
9b6fda9
Merge pull request #217 from Ryujikjs/PPP
Magmanat Apr 8, 2023
bddeedf
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T12-2/tp …
Magmanat Apr 8, 2023
932d5b7
Fix Object diagram
Apr 8, 2023
b6878c1
Merge pull request #215 from typingpanda/developer-docs
Magmanat Apr 8, 2023
aea28f8
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T12-2/tp …
Magmanat Apr 8, 2023
54b43d1
Settle merge conflicts and add items to PPP
Magmanat Apr 8, 2023
c196bf0
Add @@author for appendix
Magmanat Apr 8, 2023
e192400
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T12-2/tp
Magmanat Apr 8, 2023
859cd5e
Merge pull request #216 from Magmanat/master
Ryujikjs Apr 8, 2023
b58ebc7
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T12-2/tp …
Magmanat Apr 8, 2023
eb31fbd
Add Prince PPP to ensure all the details are added
Magmanat Apr 8, 2023
22f5c74
change aboutUs to reflect correct portfolio
Magmanat Apr 8, 2023
ed76554
Fix more PC Viewer menu tests
superkaiba Apr 8, 2023
9ebad4c
remove text-ui-test
superkaiba Apr 8, 2023
e93949d
Remove dos2unix
superkaiba Apr 8, 2023
28ad965
Add Reviewing/Mentoring Contributions
Magmanat Apr 8, 2023
4f9934a
Add team contributions section
Magmanat Apr 8, 2023
62eab20
Update ViewerAddCommand in the developer guide.
Reynold-SL Apr 8, 2023
ec38410
Merge pull request #219 from Reynold-SL/branch_viewer_developer_guide
superkaiba Apr 8, 2023
7e82f53
Merge pull request #218 from Magmanat/Prince-PPP
superkaiba Apr 8, 2023
4dbf2e9
Resolve merge conflicts
Magmanat Apr 8, 2023
56eedb5
Change to lowercase for PPP
Magmanat Apr 8, 2023
d419655
Merge pull request #220 from Magmanat/master
Magmanat Apr 8, 2023
ad3c33b
Remove color from terminal
superkaiba Apr 8, 2023
c6c0cdf
Remove conflict marker
Magmanat Apr 8, 2023
52f8327
Change to lowercase
Magmanat Apr 8, 2023
6da1178
Merge pull request #205 from superkaiba/format-pc-viewer-menu-better
Magmanat Apr 8, 2023
9a02d42
Modify Thomas PPP
superkaiba Apr 9, 2023
1dd88ea
Update userguide for budget command
Apr 9, 2023
5a9fb66
Add documentation for componentlistcommand
Apr 9, 2023
0bfecf2
Modify PPP
Apr 9, 2023
7d77cd4
Update portfolio
Reynold-SL Apr 9, 2023
c2d0977
Update portfolio to add team based tasks
Reynold-SL Apr 9, 2023
f6acd54
Merge pull request #224 from Reynold-SL/branch_portfolio
superkaiba Apr 9, 2023
ac85eb1
Merge pull request #223 from typingpanda/documentation
superkaiba Apr 9, 2023
12309ff
Merge pull request #222 from typingpanda/user-guide
superkaiba Apr 9, 2023
3025c33
Merge pull request #221 from superkaiba/modify-thomas-ppp
Magmanat Apr 9, 2023
293da0a
Update AboutUs.md
Magmanat Apr 9, 2023
c051b38
Add Junit test for compare commands and change PPP file naming
Ryujikjs Apr 9, 2023
b123b88
Fix spelling error
Ryujikjs Apr 9, 2023
9b94a5a
Merge pull request #225 from Ryujikjs/More-Junit
Magmanat Apr 9, 2023
9e2891f
Rename Ryujikjs.md to ryujikjs.md
Magmanat Apr 9, 2023
dd87d6b
Update AboutUs.md
Magmanat Apr 9, 2023
064982e
Rename KeaneChan.md to typingpanda.md
Magmanat Apr 9, 2023
6b92329
Update AboutUs.md
Magmanat Apr 9, 2023
e1f43a9
Update magmanat.md
Magmanat Apr 9, 2023
e66e3aa
Create JUnit Test
Reynold-SL Apr 9, 2023
ec67260
Update checkstyle of code
Reynold-SL Apr 9, 2023
9b16d0f
Update ViewCommandTest according to checkstyle
Reynold-SL Apr 9, 2023
c73034e
Fix errors with FilterCommandTest and EditCommandTest
Reynold-SL Apr 9, 2023
09f365f
Edit Developer Guide to include outcomes for each example
Reynold-SL Apr 9, 2023
c4e8c36
Merge pull request #226 from Reynold-SL/branch_junit_test
Magmanat Apr 10, 2023
d53fae9
Update to follow format of sequential diagram for Commands
Magmanat Apr 10, 2023
8ef0a7c
Merge pull request #228 from Magmanat/update_reynold_pr
Magmanat Apr 10, 2023
8ebea70
Update AboutUs.md
Magmanat Apr 10, 2023
1fab622
Update UserGuide.md
Magmanat Apr 10, 2023
e63b8ad
Add Page breaks to UG
Magmanat Apr 10, 2023
8de1d82
Update PPP to have page break at top and add additional information
Ryujikjs Apr 10, 2023
23a3a78
Merge pull request #229 from Ryujikjs/PPP-Update
keanecxz Apr 10, 2023
c3618ac
Update PPP
Apr 10, 2023
184072d
Fix merge conflict
Apr 10, 2023
73171b4
Update PPP
Apr 10, 2023
f0d74a6
Fix spelling error
Apr 10, 2023
9727ac2
Merge pull request #230 from typingpanda/PPP
keanecxz Apr 10, 2023
980e4fa
Remove page break for keane PPP
keanecxz Apr 10, 2023
c533fb7
Remove line break
Ryujikjs Apr 10, 2023
11ad060
Merge pull request #231 from Ryujikjs/PPP-Update
Ryujikjs Apr 10, 2023
a6aa387
Update Reynold's PPP
Reynold-SL Apr 10, 2023
b3a2906
Update UserGuide.md
Magmanat Apr 10, 2023
5038b98
Fix Formatting issue for Reynold's PPP
Reynold-SL Apr 10, 2023
78d5062
Update DeveloperGuide.md
Magmanat Apr 10, 2023
58bb431
Update DeveloperGuide.md
Magmanat Apr 10, 2023
6b934de
Update DeveloperGuide.md
Magmanat Apr 10, 2023
4c70708
Update DeveloperGuide.md
Magmanat Apr 10, 2023
eff9ed6
Rynold PPP update
Ryujikjs Apr 10, 2023
3acd9f5
Merge remote-tracking branch 'origin/master'
Reynold-SL Apr 10, 2023
b6646df
Merge pull request #232 from Ryujikjs/PPP-Update
Reynold-SL Apr 10, 2023
d355f12
Update DeveloperGuide.md
Magmanat Apr 10, 2023
8373ddc
Update magmanat.md
Magmanat Apr 10, 2023
8a26622
Update magmanat.md
Magmanat Apr 10, 2023
4e05cc2
Update magmanat.md
Magmanat Apr 10, 2023
2feae19
Update magmanat.md
Magmanat Apr 10, 2023
19594e1
Update magmanat.md
Magmanat Apr 10, 2023
c47b926
Add Exception handling for DataStorage
Magmanat Apr 10, 2023
fb532d6
Update for DataStorage loading exception
Magmanat Apr 10, 2023
5806489
New checks to ensure tampering with data file is handled properly
Magmanat Apr 10, 2023
45510e6
Merge pull request #233 from Magmanat/master
Magmanat Apr 10, 2023
3e00a8d
Update UserGuide.md
Magmanat Apr 10, 2023
b913eab
Update UserGuide.md
Magmanat Apr 10, 2023
a7a5431
Ensure efficiency can only be gold, silver, bronze
Magmanat Apr 10, 2023
0d17868
Update UserGuide.md
Magmanat Apr 10, 2023
35f49cf
Merge remote-tracking branch 'upstream/master'
Reynold-SL Apr 10, 2023
34121dd
Ensure custom commands line up with UG
Magmanat Apr 10, 2023
c63be88
New Updates to Reynold's PPP
Reynold-SL Apr 10, 2023
d91fd44
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T12-2/tp
Magmanat Apr 10, 2023
c955ea8
Merge pull request #234 from Reynold-SL/branch_error_Reynold_PPP
Magmanat Apr 10, 2023
db9f026
Merge branch 'master' of https://github.com/AY2223S2-CS2113-T12-2/tp
Magmanat Apr 10, 2023
5c8ed9a
Change PC VIEWER to PC viewer
Magmanat Apr 10, 2023
215bbe7
Update UserGuide.md
Magmanat Apr 10, 2023
aa2e1ee
Update DeveloperGuide.md
Magmanat Apr 10, 2023
4710b81
Change the space divider for split
Magmanat Apr 10, 2023
340e224
Solve some bugs on IO
Magmanat Apr 10, 2023
99f74e7
Merge pull request #235 from Magmanat/master
Magmanat Apr 10, 2023
d49ac7e
Ensure random input after valid delete, view, edit is handled
Magmanat Apr 10, 2023
38eb8eb
Change how custom command handles price
Magmanat Apr 10, 2023
b6ea031
Add funny message for too high of a price
Magmanat Apr 10, 2023
0134a08
Fix exception messages
Apr 10, 2023
27b5865
Remove float price from custom gpu accidentally
Magmanat Apr 10, 2023
f4a2229
Merge pull request #236 from Magmanat/master
Magmanat Apr 10, 2023
9e86469
Fix test exception messsage
Apr 10, 2023
3739ecc
Fix ram json memory correctness
Apr 10, 2023
ee1c0ad
Fix list ram memory flag
Apr 10, 2023
74dff1f
Fix ram exception message
Apr 10, 2023
e0dec08
Fix ram excecption message again
Apr 10, 2023
0d090a8
Handle ParseFloat infinity
Magmanat Apr 10, 2023
d71cc68
Merge pull request #237 from typingpanda/fix-bugs
Magmanat Apr 10, 2023
823f47c
Change some formatting errors
Magmanat Apr 10, 2023
af9c6af
Fix userguide and Dg
Reynold-SL Apr 10, 2023
057bd92
Merge pull request #239 from Reynold-SL/branch_update_user_guide
Reynold-SL Apr 10, 2023
f50a93e
Change regex expression
Magmanat Apr 10, 2023
43976a8
Merge pull request #238 from Magmanat/master
Magmanat Apr 10, 2023
11f9d01
Fix out of bounds error
Apr 10, 2023
2ec233d
Fix naming error
Apr 10, 2023
18baad9
Fix float parsing
Apr 10, 2023
f39743b
Fix Junit test
Apr 10, 2023
69ecfb2
Fix merge conflict
Apr 10, 2023
6cb8e79
Fix parsing for integers and floats
Apr 10, 2023
e48b781
Fix ranges
Apr 10, 2023
850f273
Fix ranges
Apr 10, 2023
d950a20
Update user guide flags
Ryujikjs Apr 10, 2023
c5eb1c0
Fix errors
Apr 10, 2023
baf7e23
Update user guide flags
Ryujikjs Apr 10, 2023
579cb52
Merge pull request #240 from typingpanda/fix-bugs
Magmanat Apr 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add appropriate nextlines
  • Loading branch information
Magmanat authored Apr 2, 2023
commit 94076d9b206c70f2efc0ece2fe8bc2c6ff3da3c8
45 changes: 39 additions & 6 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ If you encounter unfamiliar terminology in this guide, please refer to the [Glos


Upon successful initialization of the program for the first time, you would be greeted by the following, assuming you do not currently have a user.json file in your _home folder_

```
User file does not exist. Creating new user file.
User PCs found, loading...
Expand Down Expand Up @@ -91,13 +92,15 @@ What would you like to do?
===================================================

```

If the ASCII art of BIG PP does not look correct, it is due to your terminal size being too small, if so you can disregard this issue.

## Commands
Our commands are split up for two modes, PCViewer and PCBuilder. The commands for each mode will only be recognised for the specific mode that you are currently in. The modes will specifically be stated at the top of each printout in the terminal. Additional leading and trailing whitespaces from user input will be ignored.

For reference,
- PCViewer looks like this:

```
===================================================
PC viewer
Expand All @@ -108,7 +111,9 @@ Here is the list of PC Builds:
What would you like to do?
===================================================
```

- PCBuilder looks like this

```
===================================================
PC builder
Expand All @@ -126,7 +131,9 @@ Chassis : Corsair iCUE 4000X RGB
What would you like to do?
===================================================
```

---

### Common Commands
Common commands will be the commands that the user will be able to use in both the modes

Expand All @@ -144,6 +151,7 @@ Usage: `help`
Functionality: Displays the valid commands in the respective modes
Example:
- Entering the help command in the PCViewer mode will produce the following output at the bottom of your terminal:

```
Here are the list of valid commands:
Add <name> - Add a new PC of a given name
Expand All @@ -153,6 +161,7 @@ View <index> - Display all the components of the PC of a given index
```

- Entering the help command in the PCBuilder mode will produce the following output at the bottom of your terminal:

```
Here are the list of valid commands:
list <component> - List all components of a certain type
Expand All @@ -164,20 +173,22 @@ unselect <component_type> - Remove the component of type <component_type> from t
custom <component_type> <component_specifications...> - Creates a custom component of type <component_type> with all the <component_specifications> and adds it to the list of components of that type
compare <component_type> <index_1>&<index_2> Compares all the specifications between the components oftype <component_type> with indices <index_1> and <index_2>
```

Notes: Entering the help command in either PCViewer mode or PCBuilder mode will present different sets of valid commands

---

### PCViewer Mode Commands
PCViewer Mode commands will be the commands that the user will be able to use in the PCViewer Mode


#### **Add Command**
Usage: `add PC_NAME`

Functionality: Adds a PC with the name `PC_NAME` to your PC list

Example:
>input: add NEWPC

```
===================================================
PC viewer
Expand All @@ -190,16 +201,19 @@ What would you like to do?
===================================================
Custom PC: [ NEWPC ] has been created
```

Notes: newly added PCs will always begin with infinite budget

---

#### **View Command**
Usage: `view PC_INDEX`

Functionality: Views the PC with index `PC_INDEX`

Example:
>input: view 3

```
===================================================
PC viewer
Expand All @@ -223,13 +237,15 @@ Chassis : Corsair iCUE 4000X RGB
```

---

#### **Edit Command**
Usage: `edit PC_INDEX`

Functionality: Enters PCBuilder mode for the PC with index `PC_INDEX`.

Example:
>input: edit 4

```
===================================================
PC builder
Expand All @@ -252,13 +268,15 @@ Currently editing PC: NEWPC
Notes: If the PC that the user has selected to edit is a `PREBUILT_PC`, the application would create a copy of it and mark it as a `CUSTOM_PC`. This is because we provide the prebuilts as a reference for the user, and not for editing.

---

#### **Delete Command**
Usage: `delete PC_INDEX`

Functionality: Deletes the PC with index `PC_INDEX`

Example:
>input: delete 4

```
===================================================
PC viewer
Expand All @@ -272,11 +290,10 @@ Custom PC: [ NEWPC ] has been deleted
```

---

#### **Filter Command**
Usage: `filter FILTER_FLAGS`



Available flags:
> `-name PC_NAME`
>
Expand Down Expand Up @@ -305,9 +322,11 @@ What would you like to do?
===================================================
Filter completed
```

Notes: The flags can by strung together *in any order* such as `filter -price /from 1000 /to 3000 -name intermediate -built complete`. However, if the `-clear` flag is detected, this will take **precedence** and remove all filters regardless of other flags.

---

### PCBuilder Mode Commands
PCBuilder Mode commands will be the commands that the user will be able to use in the PCBuilder Mode

Expand All @@ -316,6 +335,7 @@ Usage: `list COMPONENT_TYPE [-COMPONENT_FLAG LIST_FLAG]`
Functionality: Lists all components of type `COMPONENT_TYPE` with optional flags. These are the following common flags `-name`, `-brand` and `-price` for all components. Flags that are unique to each components can be used too, such as `-power`, `-formfactor`, `-socket`, `-core`, `-thread`, `-baseclock`, `-boostclock`, `-size`, `-rpm`, `-noise`, `-memory`, `-sticks`, `-speed`, `-type` and `-efficiency`. Noise, power, rpm, price, boostclock and baseclock requires an input range by using /from and /to flags. Multiple flags can be used together.

Example:

```
input: list cpu -name intel -price /from 1 /to 100

Expand All @@ -340,13 +360,15 @@ SOCKET: LGA1200
Notes: Arguments with missing flags will be ignored.

---

#### **Select Command**
Usage: `select COMPONENT_TYPE COMPONENT_INDEX`

Functionality: Adds the component of type `COMPONENT_TYPE` with index `INDEX` to the current PC Build

Example: add component of type `GPU` with index `4` to the current PC Build.
>input: select gpu 4

```
===================================================
PC builder
Expand All @@ -366,9 +388,11 @@ What would you like to do?
gpu added! : MSI GAMING Z TRIO RTX3080

```

Notes: you can select any component at any time and do not need to list components before selecting as long as you know which index you want to add.

---

#### **Unselect Command**
Usage: `unselect COMPONENT_TYPE`

Expand All @@ -377,6 +401,7 @@ Functionality: Removes the component of type `COMPONENT_TYPE` from your PC Build
Example: remove component of type `GPU` from the current PC Build.

>input: unselect gpu

```
===================================================
PC builder
Expand All @@ -397,13 +422,15 @@ gpu removed!
```

---

#### **Compare Command**
Usage: `compare COMPONENT_TYPE INDEX_1 & INDEX_2`

Functionality: Compares 2 components,`INDEX_1` and `INDEX_2` of type `COMPONENT_TYPE` with one another. Compares each specification in a table format

Example: Compare 2 components of type `CPU`. Comparison between indexes `1` and `2`.
>input: compare cpu 1 & 2

```
________________________________________________________________________________________________
|NAME |Intel core i3-10100 |Intel core i5-10600k |
Expand All @@ -420,13 +447,15 @@ ________________________________________________________________________________
```

---

#### **Budget Command**
Usage: `budget POSITIVE_INTEGER`

Functionality: Sets the `BUDGET` of the current PC build to `POSITIVE_INTEGER`

Example Set `BUDGET` of the PC you are currently editing to be $1000
>input: budget 1000

```
===================================================
PC builder
Expand All @@ -448,13 +477,15 @@ Current build budget is now: $1000.00
```

---

#### **Name Command**
Usage: `name PC_NAME`

Functionality: Sets the name of the current PC build to `PC_NAME`

Example Set the name of PC to be MyPC
>input: name MyPC

```
===================================================
PC builder
Expand All @@ -475,11 +506,13 @@ Current build name is now: MyPc
```

---

#### **Custom Command**
Usage: `custom COMPONENT_TYPE SPEC_1|SPEC_2|...`

Functionality: Adds a custom component of type COMPONENT_TYPE with the specs `SPEC_1`, `SPEC_2`...... to the current PC build
>input input: custom cpu Intel-new-cpu|Intel|99.5|4|8|3.5|4.6|122|LGA1200

```
===================================================
PC builder
Expand All @@ -498,9 +531,11 @@ What would you like to do?
===================================================
CPU added: Intel-new-cpu
```

Notes: Please see the glossary for the `SPEC` definitions for each component

---

#### **Back Command**
Usage: `back`

Expand All @@ -522,6 +557,7 @@ Based on the rules stated above, the compatibility checker will throw the user e

Example: The `CPU` current added has a socket **LGA1200** and the new `MOTHERBOARD` that the user wants to add has a socket **AM5**.
>input: custom motherboard newmobo|AMD|10|atx|AM5|10

```
===================================================
PC builder
Expand All @@ -542,8 +578,6 @@ Motherboard socket is not compatible with current cpu socket
Please choose another motherboard or change your cpu
```



## Glossary

### Parameters Glossary
Expand Down Expand Up @@ -582,7 +616,6 @@ Please choose another motherboard or change your cpu

### Command Glossary


| Viewer Menu Commands | Format | Flags |
|:-------------------------:|:----------------------------------------------:|:---------------------------------------------------------------------------------------------------:|
| Add PC | `add PC_NAME` | nil |
Expand Down