1.1. Creating a circuit schematic

The web system will be divided into two panes. The left pane will contain thumbnails of different electric components like capacitors, resistors, voltage sources, etc. each of which will be displayed category wise. The right pane will be a grid on which a user can drag and drop the components from the left pane. Each component will be associated with different properties like ‘x’ and ‘y’ denoting their position on the grid, ‘angle’ to denote their rotation angle (if rotated), etc. The wires will be used to connect different components on the grid (right pane).

Given below is the list of APIs generated from swagger openapi

POST /arduino/compile

Compile list of Arduino Sketch File

Status Codes:
GET /arduino/compile/status

Returns Compilation Status

Status Codes:
GET /auth/google-callback

Creates user if OAuth token valid

Status Codes:
GET /auth/o/{provider}/
Parameters:
  • provider (string) –
Status Codes:
Response JSON Object:
 
  • access (string) – (read only)
  • refresh (string) – (read only)
  • user (string) – (read only)
POST /auth/o/{provider}/
Parameters:
  • provider (string) –
Request JSON Object:
 
  • access (string) – (read only)
  • refresh (string) – (read only)
  • user (string) – (read only)
Status Codes:
Response JSON Object:
 
  • access (string) – (read only)
  • refresh (string) – (read only)
  • user (string) – (read only)
POST /auth/token/login/

Use this endpoint to obtain user authentication token.

Request JSON Object:
 
  • password (string) –
  • username (string) –
Status Codes:
Response JSON Object:
 
  • password (string) –
  • username (string) –
POST /auth/token/logout/

Use this endpoint to logout user (remove user authentication token).

Status Codes:
GET /auth/users/
Status Codes:
Response JSON Object:
 
  • [].email (string) –
  • [].id (integer) – (read only)
  • [].username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
POST /auth/users/
Request JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • password (string) – (required)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (required)
Status Codes:
Response JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • password (string) – (required)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (required)
POST /auth/users/activation/
Request JSON Object:
 
  • token (string) – (required)
  • uid (string) – (required)
Status Codes:
Response JSON Object:
 
  • token (string) – (required)
  • uid (string) – (required)
GET /auth/users/me/
Status Codes:
Response JSON Object:
 
  • [].email (string) –
  • [].id (integer) – (read only)
  • [].username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
PUT /auth/users/me/
Request JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
Status Codes:
Response JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
PATCH /auth/users/me/
Request JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
Status Codes:
Response JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
DELETE /auth/users/me/
Status Codes:
POST /auth/users/resend_activation/
Request JSON Object:
 
  • email (string) – (required)
Status Codes:
Response JSON Object:
 
  • email (string) – (required)
POST /auth/users/reset_password/
Request JSON Object:
 
  • email (string) – (required)
Status Codes:
Response JSON Object:
 
  • email (string) – (required)
POST /auth/users/reset_password_confirm/
Request JSON Object:
 
  • new_password (string) – (required)
  • token (string) – (required)
  • uid (string) – (required)
Status Codes:
Response JSON Object:
 
  • new_password (string) – (required)
  • token (string) – (required)
  • uid (string) – (required)
POST /auth/users/reset_username/
Request JSON Object:
 
  • email (string) – (required)
Status Codes:
Response JSON Object:
 
  • email (string) – (required)
POST /auth/users/reset_username_confirm/
Request JSON Object:
 
  • new_username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (required)
Status Codes:
Response JSON Object:
 
  • new_username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (required)
POST /auth/users/set_password/
Request JSON Object:
 
  • current_password (string) – (required)
  • new_password (string) – (required)
Status Codes:
Response JSON Object:
 
  • current_password (string) – (required)
  • new_password (string) – (required)
POST /auth/users/set_username/
Request JSON Object:
 
  • new_username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (required)
Status Codes:
Response JSON Object:
 
  • new_username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (required)
GET /auth/users/{id}/
Parameters:
  • id (integer) – A unique integer value identifying this user.
Status Codes:
Response JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
PUT /auth/users/{id}/
Parameters:
  • id (integer) – A unique integer value identifying this user.
Request JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
Status Codes:
Response JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
PATCH /auth/users/{id}/
Parameters:
  • id (integer) – A unique integer value identifying this user.
Request JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
Status Codes:
Response JSON Object:
 
  • email (string) –
  • id (integer) – (read only)
  • username (string) – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. (read only)
DELETE /auth/users/{id}/
Parameters:
  • id (integer) – A unique integer value identifying this user.
Status Codes:
GET /circuits/

Listing Published Circuits

Status Codes:
Response JSON Object:
 
  • [].author (integer) –
  • [].base64_image (string) – (read only)
  • [].circuit_id (string) – (read only)
  • [].data_dump (string) – (required)
  • [].description (string) – (required)
  • [].last_updated (string) – (read only)
  • [].publish_request_time (string) – (read only)
  • [].sub_title (string) –
  • [].title (string) – (required)
GET /circuits/{circuit_id}/

Listing Published Circuits

Parameters:
  • circuit_id (string) – A UUID string identifying this circuit.
Status Codes:
Response JSON Object:
 
  • author (integer) –
  • base64_image (string) – (read only)
  • circuit_id (string) – (read only)
  • data_dump (string) – (required)
  • description (string) – (required)
  • last_updated (string) – (read only)
  • publish_request_time (string) – (read only)
  • sub_title (string) –
  • title (string) – (required)
GET /components/

Listing All Library Details

Query Parameters:
 
  • name__icontains (string) –
  • keyword__icontains (string) –
  • description__icontains (string) –
  • component_library__library_name__icontains (string) –
  • component_library (string) –
  • symbol_prefix (string) –
Status Codes:
Response JSON Object:
 
  • [].alternate_component[].dmg (integer) – (required)
  • [].alternate_component[].full_name (string) – (required)
  • [].alternate_component[].id (integer) – (read only)
  • [].alternate_component[].part (string) – (required)
  • [].alternate_component[].svg_path (string) – (required)
  • [].component_library (string) – (required)
  • [].data_link (string) – (required)
  • [].description (string) – (required)
  • [].full_name (string) – (required)
  • [].id (integer) – (read only)
  • [].keyword (string) – (required)
  • [].name (string) – (required)
  • [].svg_path (string) – (required)
  • [].symbol_prefix (string) – (required)
  • [].thumbnail_path (string) – (required)
GET /components/{id}/

Listing All Library Details

Parameters:
  • id (integer) – A unique integer value identifying this library component.
Status Codes:
Response JSON Object:
 
  • alternate_component[].dmg (integer) – (required)
  • alternate_component[].full_name (string) – (required)
  • alternate_component[].id (integer) – (read only)
  • alternate_component[].part (string) – (required)
  • alternate_component[].svg_path (string) – (required)
  • component_library (string) – (required)
  • data_link (string) – (required)
  • description (string) – (required)
  • full_name (string) – (required)
  • id (integer) – (read only)
  • keyword (string) – (required)
  • name (string) – (required)
  • svg_path (string) – (required)
  • symbol_prefix (string) – (required)
  • thumbnail_path (string) – (required)
GET /libraries/

Listing All Library Details

Query Parameters:
 
  • library_name (string) –
Status Codes:
Response JSON Object:
 
  • [].id (integer) – (read only)
  • [].library_name (string) – (required)
  • [].saved_on (string) – (read only)
GET /libraries/{id}/

Listing All Library Details

Parameters:
  • id (integer) – A unique integer value identifying this library.
Status Codes:
Response JSON Object:
 
  • id (integer) – (read only)
  • library_name (string) – (required)
  • saved_on (string) – (read only)
GET /publish/circuit/

CRUD for viewing unpublished / published circuits ( Permission Groups )

Status Codes:
Response JSON Object:
 
  • [].author (integer) –
  • [].base64_image (string) – (read only)
  • [].circuit_id (string) – (read only)
  • [].data_dump (string) – (required)
  • [].description (string) – (required)
  • [].last_updated (string) – (read only)
  • [].publish_request_time (string) – (read only)
  • [].sub_title (string) –
  • [].title (string) – (required)
POST /publish/circuit/

CRUD for viewing unpublished / published circuits ( Permission Groups )

Request JSON Object:
 
  • author (integer) –
  • base64_image (string) – (read only)
  • circuit_id (string) – (read only)
  • data_dump (string) – (required)
  • description (string) – (required)
  • last_updated (string) – (read only)
  • publish_request_time (string) – (read only)
  • sub_title (string) –
  • title (string) – (required)
Status Codes:
Response JSON Object:
 
  • author (integer) –
  • base64_image (string) – (read only)
  • circuit_id (string) – (read only)
  • data_dump (string) – (required)
  • description (string) – (required)
  • last_updated (string) – (read only)
  • publish_request_time (string) – (read only)
  • sub_title (string) –
  • title (string) – (required)
GET /publish/circuit/{circuit_id}/

CRUD for viewing unpublished / published circuits ( Permission Groups )

Parameters:
  • circuit_id (string) – A UUID string identifying this circuit.
Status Codes:
Response JSON Object:
 
  • author (integer) –
  • base64_image (string) – (read only)
  • circuit_id (string) – (read only)
  • data_dump (string) – (required)
  • description (string) – (required)
  • last_updated (string) – (read only)
  • publish_request_time (string) – (read only)
  • sub_title (string) –
  • title (string) – (required)
PUT /publish/circuit/{circuit_id}/

CRUD for viewing unpublished / published circuits ( Permission Groups )

Parameters:
  • circuit_id (string) – A UUID string identifying this circuit.
Request JSON Object:
 
  • author (integer) –
  • base64_image (string) – (read only)
  • circuit_id (string) – (read only)
  • data_dump (string) – (required)
  • description (string) – (required)
  • last_updated (string) – (read only)
  • publish_request_time (string) – (read only)
  • sub_title (string) –
  • title (string) – (required)
Status Codes:
Response JSON Object:
 
  • author (integer) –
  • base64_image (string) – (read only)
  • circuit_id (string) – (read only)
  • data_dump (string) – (required)
  • description (string) – (required)
  • last_updated (string) – (read only)
  • publish_request_time (string) – (read only)
  • sub_title (string) –
  • title (string) – (required)
PATCH /publish/circuit/{circuit_id}/

CRUD for viewing unpublished / published circuits ( Permission Groups )

Parameters:
  • circuit_id (string) – A UUID string identifying this circuit.
Request JSON Object:
 
  • author (integer) –
  • base64_image (string) – (read only)
  • circuit_id (string) – (read only)
  • data_dump (string) – (required)
  • description (string) – (required)
  • last_updated (string) – (read only)
  • publish_request_time (string) – (read only)
  • sub_title (string) –
  • title (string) – (required)
Status Codes:
Response JSON Object:
 
  • author (integer) –
  • base64_image (string) – (read only)
  • circuit_id (string) – (read only)
  • data_dump (string) – (required)
  • description (string) – (required)
  • last_updated (string) – (read only)
  • publish_request_time (string) – (read only)
  • sub_title (string) –
  • title (string) – (required)
DELETE /publish/circuit/{circuit_id}/

CRUD for viewing unpublished / published circuits ( Permission Groups )

Parameters:
  • circuit_id (string) – A UUID string identifying this circuit.
Status Codes:
GET /publish/publishing/

Publishing CRUD Operations

Status Codes:
Response JSON Object:
 
  • [].circuit.author (integer) –
  • [].circuit.base64_image (string) – (read only)
  • [].circuit.circuit_id (string) – (read only)
  • [].circuit.data_dump (string) – (required)
  • [].circuit.description (string) – (required)
  • [].circuit.last_updated (string) – (read only)
  • [].circuit.publish_request_time (string) – (read only)
  • [].circuit.sub_title (string) –
  • [].circuit.title (string) – (required)
  • [].published (boolean) –
  • [].reviewed_by (string) –
  • [].tags[].description (string) – (required)
  • [].tags[].id (integer) – (read only)
  • [].tags[].tag (string) – (required)
POST /publish/publishing/

Publishing CRUD Operations

Request JSON Object:
 
  • circuit.author (integer) –
  • circuit.base64_image (string) – (read only)
  • circuit.circuit_id (string) – (read only)
  • circuit.data_dump (string) – (required)
  • circuit.description (string) – (required)
  • circuit.last_updated (string) – (read only)
  • circuit.publish_request_time (string) – (read only)
  • circuit.sub_title (string) –
  • circuit.title (string) – (required)
  • published (boolean) –
  • reviewed_by (string) –
  • tags[].description (string) – (required)
  • tags[].id (integer) – (read only)
  • tags[].tag (string) – (required)
Status Codes:
Response JSON Object:
 
  • circuit.author (integer) –
  • circuit.base64_image (string) – (read only)
  • circuit.circuit_id (string) – (read only)
  • circuit.data_dump (string) – (required)
  • circuit.description (string) – (required)
  • circuit.last_updated (string) – (read only)
  • circuit.publish_request_time (string) – (read only)
  • circuit.sub_title (string) –
  • circuit.title (string) – (required)
  • published (boolean) –
  • reviewed_by (string) –
  • tags[].description (string) – (required)
  • tags[].id (integer) – (read only)
  • tags[].tag (string) – (required)
GET /publish/publishing/{id}/

Publishing CRUD Operations

Parameters:
  • id (integer) – A unique integer value identifying this publish.
Status Codes:
Response JSON Object:
 
  • circuit.author (integer) –
  • circuit.base64_image (string) – (read only)
  • circuit.circuit_id (string) – (read only)
  • circuit.data_dump (string) – (required)
  • circuit.description (string) – (required)
  • circuit.last_updated (string) – (read only)
  • circuit.publish_request_time (string) – (read only)
  • circuit.sub_title (string) –
  • circuit.title (string) – (required)
  • published (boolean) –
  • reviewed_by (string) –
  • tags[].description (string) – (required)
  • tags[].id (integer) – (read only)
  • tags[].tag (string) – (required)
PUT /publish/publishing/{id}/

Publishing CRUD Operations

Parameters:
  • id (integer) – A unique integer value identifying this publish.
Request JSON Object:
 
  • circuit.author (integer) –
  • circuit.base64_image (string) – (read only)
  • circuit.circuit_id (string) – (read only)
  • circuit.data_dump (string) – (required)
  • circuit.description (string) – (required)
  • circuit.last_updated (string) – (read only)
  • circuit.publish_request_time (string) – (read only)
  • circuit.sub_title (string) –
  • circuit.title (string) – (required)
  • published (boolean) –
  • reviewed_by (string) –
  • tags[].description (string) – (required)
  • tags[].id (integer) – (read only)
  • tags[].tag (string) – (required)
Status Codes:
Response JSON Object:
 
  • circuit.author (integer) –
  • circuit.base64_image (string) – (read only)
  • circuit.circuit_id (string) – (read only)
  • circuit.data_dump (string) – (required)
  • circuit.description (string) – (required)
  • circuit.last_updated (string) – (read only)
  • circuit.publish_request_time (string) – (read only)
  • circuit.sub_title (string) –
  • circuit.title (string) – (required)
  • published (boolean) –
  • reviewed_by (string) –
  • tags[].description (string) – (required)
  • tags[].id (integer) – (read only)
  • tags[].tag (string) – (required)
PATCH /publish/publishing/{id}/

Publishing CRUD Operations

Parameters:
  • id (integer) – A unique integer value identifying this publish.
Request JSON Object:
 
  • circuit.author (integer) –
  • circuit.base64_image (string) – (read only)
  • circuit.circuit_id (string) – (read only)
  • circuit.data_dump (string) – (required)
  • circuit.description (string) – (required)
  • circuit.last_updated (string) – (read only)
  • circuit.publish_request_time (string) – (read only)
  • circuit.sub_title (string) –
  • circuit.title (string) – (required)
  • published (boolean) –
  • reviewed_by (string) –
  • tags[].description (string) – (required)
  • tags[].id (integer) – (read only)
  • tags[].tag (string) – (required)
Status Codes:
Response JSON Object:
 
  • circuit.author (integer) –
  • circuit.base64_image (string) – (read only)
  • circuit.circuit_id (string) – (read only)
  • circuit.data_dump (string) – (required)
  • circuit.description (string) – (required)
  • circuit.last_updated (string) – (read only)
  • circuit.publish_request_time (string) – (read only)
  • circuit.sub_title (string) –
  • circuit.title (string) – (required)
  • published (boolean) –
  • reviewed_by (string) –
  • tags[].description (string) – (required)
  • tags[].id (integer) – (read only)
  • tags[].tag (string) – (required)
DELETE /publish/publishing/{id}/

Publishing CRUD Operations

Parameters:
  • id (integer) – A unique integer value identifying this publish.
Status Codes:
POST /save

API to save the state of project to db which can be loaded or shared later

Status Codes:
Response JSON Object:
 
  • base64_image (string) – (read only)
  • create_time (string) – (read only)
  • data_dump (string) – (required)
  • description (string) –
  • name (string) –
  • owner (integer) –
  • save_id (string) –
  • save_time (string) – (read only)
  • shared (boolean) –
GET /save/list

Returns Saved data for given username, Only user who saved the state can access it THIS WILL ESCAPE DOUBLE QUOTES

Status Codes:
Response JSON Object:
 
  • base64_image (string) – (read only)
  • create_time (string) – (read only)
  • data_dump (string) – (required)
  • description (string) –
  • name (string) –
  • owner (integer) –
  • save_id (string) –
  • save_time (string) – (read only)
  • shared (boolean) –
GET /save/{save_id}

Returns Saved data for given save id , Only user who saved the state can access / update it THIS WILL ESCAPE DOUBLE QUOTES

Parameters:
  • save_id (string) –
Status Codes:
Response JSON Object:
 
  • base64_image (string) – (read only)
  • create_time (string) – (read only)
  • data_dump (string) – (required)
  • description (string) –
  • name (string) –
  • owner (integer) –
  • save_id (string) –
  • save_time (string) – (read only)
  • shared (boolean) –
POST /save/{save_id}

Returns Saved data for given save id , Only user who saved the state can access / update it THIS WILL ESCAPE DOUBLE QUOTES

Parameters:
  • save_id (string) –
Status Codes:
Response JSON Object:
 
  • base64_image (string) – (read only)
  • create_time (string) – (read only)
  • data_dump (string) – (required)
  • description (string) –
  • name (string) –
  • owner (integer) –
  • save_id (string) –
  • save_time (string) – (read only)
  • shared (boolean) –
POST /save/{save_id}/sharing/{sharing}

Enables sharing for the given saved state

Parameters:
  • save_id (string) –
  • sharing (string) –
Status Codes:
Response JSON Object:
 
  • base64_image (string) – (read only)
  • create_time (string) – (read only)
  • data_dump (string) – (required)
  • description (string) –
  • name (string) –
  • owner (integer) –
  • save_id (string) –
  • save_time (string) – (read only)
  • shared (boolean) –
GET /simulation/status/{task_id}

Returns Simulation results for ‘task_id’ provided after uploading the netlist /api/task/<uuid>

Parameters:
  • task_id (string) –
Status Codes:
POST /simulation/upload

API for NetlistUpload

Requires a multipart/form-data POST Request with netlist file in the ‘file’ parameter

Status Codes:
GET /tags/

CRUD for Tags

Status Codes:
Response JSON Object:
 
  • [].description (string) – (required)
  • [].id (integer) – (read only)
  • [].tag (string) – (required)
POST /tags/

CRUD for Tags

Request JSON Object:
 
  • description (string) – (required)
  • id (integer) – (read only)
  • tag (string) – (required)
Status Codes:
Response JSON Object:
 
  • description (string) – (required)
  • id (integer) – (read only)
  • tag (string) – (required)
GET /tags/{id}/

CRUD for Tags

Parameters:
  • id (integer) – A unique integer value identifying this circuit tag.
Status Codes:
Response JSON Object:
 
  • description (string) – (required)
  • id (integer) – (read only)
  • tag (string) – (required)
PUT /tags/{id}/

CRUD for Tags

Parameters:
  • id (integer) – A unique integer value identifying this circuit tag.
Request JSON Object:
 
  • description (string) – (required)
  • id (integer) – (read only)
  • tag (string) – (required)
Status Codes:
Response JSON Object:
 
  • description (string) – (required)
  • id (integer) – (read only)
  • tag (string) – (required)
PATCH /tags/{id}/

CRUD for Tags

Parameters:
  • id (integer) – A unique integer value identifying this circuit tag.
Request JSON Object:
 
  • description (string) – (required)
  • id (integer) – (read only)
  • tag (string) – (required)
Status Codes:
Response JSON Object:
 
  • description (string) – (required)
  • id (integer) – (read only)
  • tag (string) – (required)
DELETE /tags/{id}/

CRUD for Tags

Parameters:
  • id (integer) – A unique integer value identifying this circuit tag.
Status Codes: