-
Notifications
You must be signed in to change notification settings - Fork 103
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-W11-2] ComputerComponentChooser #2
base: master
Are you sure you want to change the base?
Changes from 246 commits
1558569
bb2f45b
313328b
93dcdd3
ccf2f99
f001425
371c0d9
d018835
8de33a0
c0a7e5f
344834b
8df2f9d
a807607
9173177
6534366
fac8898
13ddf01
dfb6dc9
d9191ec
7b9b0c9
d50b50c
7075ccc
f6a5a7a
f33ce86
9b352b7
6797564
fc4346f
c47225c
64638e8
4c9608f
0f62be4
1ef5ff4
8929dbd
93c11e9
f16d567
2959968
4a79c14
11c044b
f49d1f5
8139f37
0de3996
d9094a9
6794147
29ce5aa
5c44f57
1a63e31
20c3cae
f9be832
02c410b
6188025
074cd3c
aa706ae
1cf3773
5be0964
1c513aa
a72704f
f1d93f4
a05fad3
267cd8e
79a00c6
32e79d3
0be8996
9d068fa
069e5f6
2313c29
ae30876
cbf885e
85d9e6a
f731fb5
732b950
72db612
91864c0
c2e240f
d95aca3
6f8598c
fbe24ae
0a3db2a
edd0d00
33c1ba6
edc06ef
b509dcf
ae036b9
2fd7fa8
c2cf232
e9c8161
e1fa4b3
26cbabb
13a3877
b205665
dba7d8e
43c92d2
1077cce
546cff4
3b76bc2
dda5ec7
802219e
a651db3
23bc713
5c00089
395c4a8
7596b86
d7ce8f9
559f013
20e4e0f
6d19355
f623124
0306c61
1da1454
20ef7bc
2dfe8b9
6d3c6fe
6733524
7c1e4b3
b622337
bc6807b
79d0032
01125e0
e87e684
9e98e80
8474b21
cc20961
9e73941
2e97838
d6d59b8
aae7a51
c1b377c
085c04a
a9ffaff
83ad19b
46952ca
0c7ef61
6936e1b
04d2caf
bbd0a67
20b8205
1c4f6bf
0cd9938
e704872
1809c5c
24b715b
dd35fcf
7103ac2
4b45589
187009b
bce27a1
88d6107
76f806a
3ca2191
12abe78
239f279
fc68c0a
5fabb3b
dd47be8
15ec0fc
c4fce43
5bf52ed
62f3745
781c0b2
b000e55
e26313c
50b6180
813cd7e
b207304
647299b
1927806
2af7e7d
224d6fc
fa786c0
d821689
0baf8da
c51f0de
dd1d69f
7312600
ef907f1
0ca1296
ed2a6a0
040cf86
a8c8bc7
1a895ac
19d4773
52b1aa5
596c906
48f1a09
7c58529
88c09af
8615849
9bacb58
601bb1a
00900bf
39a3fb6
103a4e9
7a33120
fe02a35
3c1f5ad
3bf4dea
7c06077
6596b57
824789e
c93301e
ceda471
c0d39af
aadb0a9
b3d9a01
ddba9a3
39a4c45
8451379
720b8f3
c9df49b
5e4c9be
a1329e0
58afb21
a1afebc
40422a5
4064229
30ce5d0
b4e812e
34f796b
03e8b3a
ebb400c
da30de6
f90cf47
d09d174
b3d46c6
55edc65
3e274b3
d5bf650
acaacf5
51b6e3d
5ba6815
4a413f3
8d7dfc4
b90e7c3
84abdfb
32b95d3
d0602c1
e6cab59
fc61cd3
88cd68e
6e2c0b0
e9a5cc8
0c55960
29100f5
a7e5294
580d5f1
a706242
b69d511
447eee5
694fd53
6f56911
81498d5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,3 +15,4 @@ bin/ | |
|
||
/text-ui-test/ACTUAL.txt | ||
text-ui-test/EXPECTED-UNIX.TXT | ||
/data/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Manifest-Version: 1.0 | ||
Main-Class: computercomponentchooser.ComputerComponentChooser | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
case/airflow/100.50/5/atx/3 | ||
cooler/noctua/250/25/am4/2500/5 | ||
other/mouse/20/1 | ||
powersupply/corsair/350/850 | ||
cpu/ryzen 9 5900X/550/105/am4/3.7 | ||
drive/ssd/150/5/1/ssd | ||
monitor/prism/200/45/144/1/1080 | ||
motherboard/x570/300/25/am4/atx/2/2 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
motherboard/ASUS ROG/600/130/lga1511/Full ATX/4/4 | ||
case/Cooler Master/400/0/full ATX/2/3 | ||
cpu/intel 10990x/1200/80/lga1511/3.8 | ||
drive/Samsung EVO/500/35/500/ssd | ||
drive/Samsung EVO 2/500/35/500/ssd | ||
drive/Samsung EVO 3/500/35/500/ssd |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
cpu/AMD RYZEN/500/80/AM4/3.7 | ||
drive/Samsung EVO/500/35/500/ssd | ||
gpu/nvidia3090x/2500/130/16/1395 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
a | ||
build2 | ||
build1 | ||
testbuild |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
Build Name, Component Name, Price, Power | ||
build2,AMD RYZEN,500,80,AM4,3.7 | ||
build2,Samsung EVO,500,35,500,ssd | ||
build2,nvidia3090x,2500,130,16,1395 | ||
build1,ASUS ROG,600,130,lga1511,Full ATX,4,4 | ||
build1,Cooler Master,400,0,full ATX,2 | ||
build1,intel 10990x,1200,80,lga1511,3.8 | ||
build1,noctuna,300,60,m4,1000,20 | ||
build1,Samsung EVO,500,35,500,ssd | ||
build1,Samsung EVO 2,500,35,500,ssd | ||
build1,Samsung EVO 3,500,35,500,ssd |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
____________________________________________________________ | ||
Info: | ||
Build name: build2 | ||
Total cost: 3500.0 | ||
Total power: 245 | ||
Compatibility: Not compatible | ||
|
||
Components list: | ||
1. AMD RYZEN [$500] [80 W] [AM4] [3.7 GHz] | ||
2. Samsung EVO [$500] [35 W] [500 GB] [ssd] | ||
3. nvidia3090x [$2500] [130 W] [16 GB] [1395 MHz] | ||
________________________________________________________________________________________________________________________ | ||
Info: | ||
Build name: build1 | ||
Total cost: 4000.0 | ||
Total power: 375 | ||
Compatibility: Not compatible | ||
|
||
Components list: | ||
1. ASUS ROG [$600] [130 W] [lga1511] [Full ATX] [4 RAM slots] [4 GPU slots] | ||
2. Cooler Master [$400] [0 W] [full ATX] [2] | ||
3. intel 10990x [$1200] [80 W] [lga1511] [3.8 GHz] | ||
4. noctuna [$300] [60 W] [m4] [1000 RPM] [20 dB] | ||
5. Samsung EVO [$500] [35 W] [500 GB] [ssd] | ||
6. Samsung EVO 2 [$500] [35 W] [500 GB] [ssd] | ||
7. Samsung EVO 3 [$500] [35 W] [500 GB] [ssd] | ||
________________________________________________________________________________________________________________________ | ||
Info: | ||
Build name: testbuild | ||
Total cost: 0.0 | ||
Total power: 0 | ||
Compatibility: Not compatible | ||
|
||
Components list: | ||
____________________________________________________________ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
____________________________________________________________ | ||
Info: | ||
Build name: build2 | ||
Total cost: 3500.0 | ||
Total power: 245 | ||
Compatibility: Not compatible | ||
|
||
Components list: | ||
1. AMD RYZEN [$500] [80 W] [AM4] [3.7 GHz] | ||
2. Samsung EVO [$500] [35 W] [500 GB] [ssd] | ||
3. nvidia3090x [$2500] [130 W] [16 GB] [1395 MHz] | ||
____________________________________________________________ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
____________________________________________________________ | ||
Info: | ||
Build name: testbuild | ||
Total cost: 1200.0 | ||
Total power: 80 | ||
Compatibility: Not compatible | ||
|
||
Components list: | ||
1. intel 10990x [$1200] [80 W] [lga1511] [3.8 GHz] | ||
____________________________________________________________ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
cpu/intel 10990x/1200/80/lga1511/3.8 | ||
powersupply/psu/123/123123 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,8 @@ | ||
# About us | ||
|
||
Display | Name | Github Profile | Portfolio | ||
--------|:----:|:--------------:|:---------: | ||
![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
Display | Name | Github Profile | Portfolio | ||
--------|:----------------:|:------------------------------------:|:---------: | ||
![](https://via.placeholder.com/100.png?text=Photo) | Devesh Logendran | [Github](https://github.com/deveshl) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Shawn Tan | [Github](https://github.com/GitPancaked) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Roy Lim | [Github](https://github.com/lcsroy) | [Portfolio](docs/team/johndoe.md) | ||
![](https://via.placeholder.com/100.png?text=Photo) | Heinrich koh | [Github](https://github.com/P0tatoChips) | [Portfolio](docs/team/johndoe.md) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,26 @@ | ||
# Developer Guide | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Better to have an simple demonstration to show how the program works overall. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Better try to simplify the sentences, and use more hierarchy within a section of code instead a chunk of code to improve readability. |
||
## Table of Contents | ||
* [Acknowledgements](#acknowledgements) | ||
* [Design & Implementation](#design--implementation) | ||
* [Main Mode](#main-mode) | ||
* [Build Manager](#build-manager) | ||
* [Edit Mode](#edit-mode) | ||
* [Build](#build) | ||
* [Components](#components) | ||
* [Storage](#storage) | ||
* [Export](#export) | ||
|
||
* [Appendix](#appendix) | ||
* [Product Scope](#product-scope) | ||
* [Target User Profile](#target-user-profile) | ||
* [Value Proposition](#value-proposition) | ||
* [User Stories](#user-stories) | ||
* [Non-Functional Requirements](#non-functional-requirements) | ||
* [Glossary](#glossary) | ||
* [Instructions for Manual Testing](#instructions-for-manual-testing) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good use of hyperlinks in table of contents! |
||
|
||
|
||
## Acknowledgements | ||
|
||
{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} | ||
|
@@ -8,30 +29,194 @@ | |
|
||
{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} | ||
|
||
### Main Mode | ||
|
||
This section describes the implementation of Main Mode features. | ||
|
||
Once the `main()` method of ComputerComponentChooser is called, objects for the `BuildManager`, `Parser`, | ||
`editParser`, `Storage`, `Ui` are created. | ||
|
||
|
||
|
||
#### BuildManager | ||
|
||
![](/images/BuildManager.png) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You may do so by adding in 'hide circle' |
||
|
||
The builds are managed by the BuildManager class. It contains a list of builds in a HashMap. The class also contains | ||
methods to find and filter builds based on user requirements. The BuildManager class is a singleton class, meaning that | ||
there is only one instance of the class in the program. This is to ensure that there is only one list of builds in the | ||
program. | ||
|
||
In our application, BuildManager is a class object that contains a HashMap of builds. The HashMap is used to store the | ||
builds in the program. The key of the HashMap is the name of the build, and the value is the build object. | ||
|
||
The BuildManager class is responsible for the following operations: | ||
- Add a build to the list of builds | ||
- Delete a build from the list of builds | ||
- Get a particular build from the list of builds | ||
- Get the list of builds | ||
- Find build that contains a search term from the list of builds | ||
- Filter builds based on user requirements | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. slightly confused by the idea of "getting a particular build" and "finding a build that contains a search term from the list of builds" - maybe the difference could be explained more distinctly. |
||
##### Add a build to the list of builds | ||
|
||
This feature allows users to add a build to the list. | ||
|
||
When the user first inputs a command for the adding of a build, the `Parser` class will parse the command and call the | ||
method `mainParseAdd()` in the Parser Class. | ||
|
||
The 'mainParseAdd() will check if the provided name is valid or is blank or made up of white spaces. If the provided | ||
name is valid, the method will create a build with the provided name and the method will call the method `addBuild()` | ||
in the `BuildManager` class, passing `addBuild` the created build object with the provided name. If the provided name is | ||
invalid, the `BlankStringException` exception will be thrown and an error message will be printed. | ||
|
||
The `addBuild()` method will check if the provided name is already in the list of builds. If the provided name is not | ||
in the list of builds, the method will add the build into the list of builds. If the provided name is already in the | ||
list of builds, the `DuplicateBuildException` exception will be thrown and an error message will be printed. | ||
|
||
After adding the build into the list, the program will return to the `mainParseAdd` method where the method will print | ||
a message, telling the user the build has been added. | ||
|
||
Finally, the `mainParseAdd` method will call the `saveBuilds()` method in the `Storage` class to save the list of builds | ||
into the data file. | ||
|
||
The following sequence diagram shows how the add build operation works: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All objects listed at the top row of the diagram should start with a colon to indicate it is an object. |
||
![](/images/BuildManagerAddBuildSequence.png) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. diagram was clean and easy to understand! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
|
||
### Edit Mode | ||
|
||
#### Build | ||
|
||
![](/images/Build.png) | ||
|
||
A build is a collection of components that are used to create a PC. A build can be saved and loaded from the storage. | ||
The user can also export the build to a text file via the export functionality. | ||
|
||
In our application build is a class object which contains a 2D linked hash map of components. LinkedHashMap2D is a class | ||
representing a 2D linked hash map data structure. The keys of the outer map are the component types and the keys of the inner | ||
are the component names. The values of the inner map are the components themselves. | ||
|
||
The user can add, delete, and view the components in the build. The user can also | ||
perform aggregate operations on the build such as viewing the total price of the build and viewing the total wattage of the build. | ||
There are also check compatibility functions that check if the build's components are compatible with each other in different ways. Such as: | ||
- Check if the power supply is compatible with the build's total power consumption | ||
- Checking if the build's motherboard is compatible with the build's CPU and Cooler | ||
- Checking if the form factor of the build's case is compatible with the build's motherboard | ||
- Checking if the build's storage is compatible with the case expansion slots | ||
- Checking if the number of the build's GPUs is compatible with the motherboard GPU slots | ||
- Checking if the number of the build's RAM is compatible with the motherboard RAM slots | ||
|
||
##### Add & delete component | ||
|
||
The user can add and delete components from the build. When the user adds a component, the component is added to the 2D linked hash map. | ||
When the user deletes a component, the component is removed from the 2D linked hash map. This is done by calling the `addComponent()` and `deleteComponent()` methods of the Build class. | ||
Which in turn calls the `addElement()` and `removeElement()` methods of the LinkedHashMap2D class. | ||
|
||
![](/images/BuildSequence.png) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. sequence diagram is easy to understand There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
|
||
### Storage | ||
|
||
![](/images/Storage.png) | ||
|
||
Note: Some methods are being left out to show the core functionality of the storage class. | ||
|
||
Storage is used for loading and saving the user's builds. The user can save their builds to a text file and load them | ||
from a text file. | ||
|
||
The `Storage` class has private attributes `FILE_DIRECTORY`, `BUILD_FILE_PATH` and `COMPONENT_FILE_PATH`. | ||
`FILE_DIRECTORY` is the directory where the text files are stored. | ||
`BUILD_FILE_PATH` is the path to the text file where all the build names are stored. | ||
`COMPONENT_FILE_PATH` is the path to the text file where the file is named after the build name. The components of the build | ||
are stored in their respective build text file. | ||
|
||
The `Storage` class has a constructor that takes in a `BuildManager` object. The `BuildManager` object is used to access the | ||
builds in the `BuildManager` object. The `Storage` class has a `loadBuild()` method that loads the builds from the text file | ||
a `saveBuild()` method that saves the builds from the `BuildManager` object into the text file. The `Storage` class also has | ||
a `loadComponent()` and `saveComponent()` methods utilize the `BuildManager` object to access the `Build` object to load and save | ||
the components of the build into their respective text files. The `deleteBuild()` method deletes the build from the text file with the path | ||
`BUILD_FILE_PATH` and deletes the text file with the path `COMPONENT_FILE_PATH` that is named after the build name. | ||
|
||
|
||
### Components | ||
|
||
![](/images/Component.png) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. i think the icons can be omitted for all the diagrams |
||
|
||
Each of the various components are represented by classes stored in the `components` package. The current components represented are the following: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For this diagram maybe consider using simplified class diagrams and omit the attributes to show an overview or an architecture diagram instead, then include the details later on |
||
- `Cpu` | ||
- `Gpu` | ||
- `Motherboard` | ||
- `Memory` | ||
- `Drive` | ||
- `Case` | ||
- `Cooler` | ||
- `PowerSupply` | ||
- `Monitor` | ||
|
||
An `Other` class is also included to represent any other components that are not currently represented in the application. All the classes inherit from the `Component` class, and any new components added should also inherit from the `Component` class. | ||
All components have the attributes `name`, `price` and `power`, which represent the name of the component, the price of the component and the power consumption of the component respectively. These attributes hold the same meaning in all subclasses except for the `PowerSupply` class, where the `power` attribute represents the power output of the power supply instead. | ||
|
||
In addition to the getters and setters for each of the class fields, the classes share the following methods: | ||
- `toCsv()` - returns a string representation of the component in CSV format | ||
- `saveAsString()` - returns a string representation of the component in a format that can be saved to a text file | ||
- `getDetails()` - returns a string representation of the component in a format that can be displayed to the user | ||
- `getType()` - returns the type of the component | ||
|
||
### Export | ||
|
||
In our application export is a utility class. The user can export all builds or a specific build to a text file. The user can also export | ||
all builds to a CSV file. | ||
|
||
|
||
## Product scope | ||
### Target user profile | ||
|
||
{Describe the target user profile} | ||
This product is targeted towards PC building enthusiasts and professional System builds who have a need and want to | ||
keep track of their PC builds. It is optimized for users to work with a Command Line Interface (CLI). | ||
|
||
### Value proposition | ||
|
||
{Describe the value proposition: what problem does it solve?} | ||
This product helps builders to keep track of their PC builds and their components. It also helps them to keep track of | ||
their total power consumption and the total cost of their builds. Compatibility of components is also checked to ensure | ||
that the build is able to function properly.. | ||
|
||
## 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 I can ... | | ||
|---------|----------|----------------------------|-------------------------------------------------------------| | ||
| v1.0 | new user | see usage instructions | refer to them when I forget how to use the application | | ||
| v1.0 | user | add a new build | refer to when I want to track my build | | ||
| v1.0 | user | list all builds | get a list of all builds in one place | | ||
| v1.0 | user | delete a build | remove builds that I do not need anymore | | ||
| v2.0 | user | find a to-do item by name | locate a to-do without having to go through the entire list | | ||
| v2.0 | user | add a component to a build | refer to when I want to track a component in my build | | ||
| v2.0 | user | list all components | get a list of all components of a build in one place | | ||
| v2.0 | user | delete a component | remove components that I do need anymore | | ||
| v2.0 | user | delete a component | remove components that have mistakes | | ||
| v2.0 | user | check a build | check the compatability of all components of a build | | ||
| v2.0 | user | info | view the relevant information about a build | | ||
| v2.0 | user | export a build | export a build to a text file | | ||
| v2.0 | user | export a build | export a build to a csv file | | ||
| v2.0 | user | find a build | locate a build without having to go through the entire list | | ||
| v2.0 | user | filter builds | find all builds that are within a certain price range | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should be considered the same users story? |
||
| v2.0 | user | filter builds | find all builds that are within a certain power range | | ||
| v2.0 | user | filter builds | find all builds that are compatible | | ||
|
||
## Non-Functional Requirements | ||
|
||
{Give non-functional requirements} | ||
Product should work on any mainstream OS as long as it has Java 11 or above installed. | ||
|
||
## Glossary | ||
|
||
* *glossary item* - Definition | ||
* | ||
| Terms | Definition | | ||
|-------------|----------------------------------------------------------------------------------------------------| | ||
| CPU | The component of a computer system that controls the interpretation and execution of instructions. | | ||
| GPU | Graphics processing unit, a specialized processor designed to accelerate graphics rendering. | | ||
| Drive | Storage devices to store user information. | | ||
| Memory | A computer's short-term memory, where the data that the processor is currently using is stored. | | ||
| Motherboard | The main circuit board within a computer that the other components plug into to create a whole. | | ||
| Powersupply | A power supply is a hardware component that supplies power to the computer. | | ||
|
||
## Instructions for manual testing | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Better have more examples to each command, users will not know how to invoke the method without method signature or example.