Skip to content

Commit

Permalink
Merge pull request #45 from hughjazzman/branch-docs
Browse files Browse the repository at this point in the history
Update User Guide v1.0
  • Loading branch information
hughjazzman authored Oct 12, 2020
2 parents 7910d32 + 2d89e4c commit ebcffc3
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 8 deletions.
50 changes: 45 additions & 5 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,65 @@
# Developer Guide

## Design & implementation
## Design & Implementation

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

![ArchitectureDiagram](diagrams/ArchitectureDiagram.png)

The **Architecture Design** given above explains the high-level design of the App. Given below is a quick overview of each component.

**`Duke`** is the main class of the application, and handles the app launch, initializing the appropriate classes to be used.

The rest of the app consists of four components.

* [**`UI`**](#ui-component): The UI of the App.
* [**`Logic`**](#logic-component): The command executor.
* [**`Model`**](#model-component): Holds the data of the App in memory.

### UI component

The `Ui` component

* Executes user commands using the `Logic` component.
* Listens for changes to `Model` data so that the UI can be updated with the modified data.

### Logic component

1. `Logic` uses the `Parser` class to parse the user command.
1. This results in a `Command` object which is executed in `Duke`.
1. The command execution can affect the `Model` (e.g. setting a value).
1. In addition, the `Ui` may also perform certain actions, such as displaying help to the user.

### Model component

The `Model`,

* stores a current `Template` object that represents the current circuit configuration.
* does not depend on any of the other three components.

## Product scope
### Target user profile

{Describe the target user profile}
New Computer/Electrical Engineering (CEG/EE) students who are looking for a quick way to check calculations for simple circuit configurations can use this App as an aid.

### Value proposition

{Describe the value proposition: what problem does it solve?}
CLIrcuit Assistant solves three problems:

1. Lack of access to simple circuit computation - the App quickly computes the required circuit's values.
1. Doing labs at home because of remote learning - the App provides a quick visualisation tool for the student.
1. Online alternatives require internet access, and some sites are slow to load with many resources needed - the App is an offline desktop application with minimal resources.

## 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|new CEG/EE Student |solve electronic/logic circuits through an Interactive Tutorial|get used to using a command line whilst simultaneously learning about circuits and apply the concepts in modules such as CG1111|
|v1.0|new CEG/EE Student|create template circuits using common components such as Resistors, Capacitors, Inductors|visualise and calculate values for common circuit configurations |
|v1.0|new CEG/EE Student | change values assigned to the components| obtain different calculations quickly|
|v1.0|new CEG/EE Student|add components arranged in either series or parallel|obtain my configuration for analysis|
|v1.0|new CEG/EE Student |calculate/verify my calculations of effective resistance, total capacitance, etc.|quickly and accurately do so via CLI, and not 3rd party software that I have to install/load online|
|v2.0|CEG/EE Student|compute a boolean logical expression|familiarise myself with logical computation used in digital circuits|

## Non-Functional Requirements

Expand Down
19 changes: 16 additions & 3 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,28 @@ CLIrcuit Assistant is a desktop app to implement and solve simple circuits, opti

## Quick Start

{Give steps to get started quickly}

1. Ensure that you have Java 11 or above installed.
1. Down the latest version of `Duke` from [the releases](https://github.com/AY2021S1-CS2113T-W13-3/tp/releases) when it is ready.
1. Use the command `help` to go through an interactive tutorial before using the application.

## Features

### Summary of Commands: `summary`

This command prints a summary of all commands in the application as shown in [Command Summary](#command-summary).

Format: `summary`

### Start interactive tutorial: `help`

Starts the interactive tutorial for the app.
Starts the interactive tutorial for the app. In the following order, the tutorial will guide the user on how to use the commands for the application:

1. `template` - Selecting templates
1. `set v` - Setting value for voltage
1. `set r/c/l` - Setting value for a `LoadComponent`
1. `add series/parallel r/c/l` - Adding a `LoadComponent` in series/parallel
1. `calc` - Printing a calculated value
1. `exit` - Exiting the interactive tutorial

Format: `help`

Expand Down Expand Up @@ -130,6 +142,7 @@ Expected Outcome:
Action | Format, Examples
--------|------------------
**Help** | `help`
**Summary** | `summary`
**Template** | `template TEMPLATE` <br> e.g., `template rc`
**Set** | `set COMPONENT VALUE` <br> e.g., `set r 500`
**Add** | `add CONFIG COMPONENT VALUE`<br> e.g., `add parallel c 500`
Expand Down
Binary file added docs/diagrams/ArchitectureDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 15 additions & 0 deletions docs/diagrams/ArchitectureDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
@startuml

Package " "<<Rectangle>>{
Class Ui
Class Logic
Class Model
Class Duke
}

Duke --> Ui
Duke --> Logic
Duke --> Model


@enduml

0 comments on commit ebcffc3

Please sign in to comment.