2024-08-20 00:18:20 -04:00
2024-08-20 00:18:20 -04:00
2024-08-20 00:18:20 -04:00
2024-03-28 00:39:18 +00:00
2024-07-29 13:10:53 -05:00
2024-07-29 13:10:53 -05:00
2024-03-27 03:29:42 +00:00



Belden Jukebox Front/Back Specification:

This document outlines how data will be transmitted between the frontend and the backend.

Standard Object

All objects sent between the frontend and backend will follow this format.

{
  "type": "name_of_request",
  "call": "send, request",
  "data": {}
}

CABLE_MAP Object

Front:

Front -> Back

{
  "type": "cable_map",
  "call": "request",
  "data": {}
}

One Liner: {"type":"cable_map","call":"request","data":{}}

Back:

Back -> Front

{
  "type": "cable_map",
  "call": "send",
  "data": {
    "map": [
      {
        "part_number": 12345,
        "position": 0, // 0-53
        "name": "Fancy Displayable Name",
        "brand": "Belden",
        "description": "This is a good cable!",
        "short_description": "Good cable!",
        "image": "https://google.com"
      }
      // many more items
    ]
  }
}

One Liner: {"type":"cable_map","call":"send","data":{"map":[{"part_number":12345,"position":0,"name":"Fancy Displayable Name","brand":"Belden","description":"This is a good cable!","short_description":"Good cable!"}]}}

CABLE_DETAILS Object

Front:

Front -> Back

{
  "type": "cable_details",
  "call": "request",
  "data": {
    "part_number": [12345, 67890, 54321, 98765],
    "position": [0, 1, 2, 53]
  }
}

One Liner: {"type":"cable_details","call":"request","data":{"part_number":[12345,67890,54321,98765],"position":[0,1,2,53]}}

Back:

Back -> Front

{
  "type": "cable_details",
  "call": "send",
  "data": {
    "cables": [
      {
        "part_number": 12345,
        "position": 0, // 0-53
        "part_image_url": "https://belden.com",
        "brand_image_url": "https://belden.com",
        "extracted_object": {
          // brand will be in here
        }
      }
      // more cables
    ]
  }
}

One Liner: {"type":"cable_details","call":"send","data":{"cables":[{"part_number":12345,"position":0,"part_image_url":"https://belden.com","brand_image_url":"https://belden.com","extracted_object":{}}]}}

CABLE_SEARCH Object

Front:

Front -> Back

{
  "type": "cable_search",
  "call": "request",
  "data": {
    "string": "name/part_number/type/category/etc"
  }
}

One Liner: {"type":"cable_search","call":"request","data":{"string":"name/part_number/type/category/etc"}}

Back:

Back -> Front

{
  "type": "cable_search",
  "call": "send",
  "data": {
    "cables": [
      {
        "part_number": 12345,
        "position": 0, // 0-53
        "part_image_url": "https://belden.com",
        "brand_image_url": "https://belden.com",
        "extracted_object": {
          // brand will be in here
        }
      }
      // more cables
    ]
  }
}

One Liner: {"type":"cable_search","call":"send","data":{"cables":[{"part_number":12345,"position":0,"part_image_url":"https://belden.com","brand_image_url":"https://belden.com","extracted_object":{}}]}}

KEYBOARD Object

Front:

Front -> Back

{
  "type": "keyboard",
  "call": "request",
  "data": {
    "enabled": true
  }
}

One Liner: {"type":"keyboard","call":"request","data":{"enabled":true}}

MACHINE_SETTINGS Object

Front:

Front -> Back

{
  "type": "machine_settings",
  "call": "request",
  "data": {}
}

One Liner: {"type":"machine_settings","call":"request","data":{}}

Back:

Back -> Front

{
  "type": "machine_settings",
  "call": "send",
  "data": {
    "settings": [
      {
        "setting_name": "text field",
        "type": "text",
        "advanced": true,
        "current_value": "current value of seting"
      },
      {
        "setting_name": "radio button",
        "type": "radio",
        "advanced": true,
        "current_value": "option 1",
        "radio_values": ["option 1", "option 2", "option 3"]
      },
      {
        "setting_name": "check box",
        "type": "check",
        "advanced": true,
        "current_value": ["option 1", "option 2"],
        "radio_values": ["option 1", "option 2", "option 3"]
      },
      {
        "setting_name": "enabled or disabled",
        "type": "boolean",
        "advanced": true,
        "current_value": true
      },
      {
        "setting_name": "slider bar",
        "type": "slider",
        "advanced": true,
        "current_value": 50.0,
        "min": -100.0,
        "max": 100.0
      },
      {
        "setting_name": "button",
        "advanced": true,
        "type": "button"
      }
    ]
  }
}

One Liner: {"type":"machine_settings","call":"send","data":{"settings":[{"setting_name":"text field","type":"text","advanced":true,"current_value":"current value of seting"},{"setting_name":"radio button","type":"radio","advanced":true,"current_value":"option 1","radio_values":["option 1","option 2","option 3"]},{"setting_name":"check box","type":"check","advanced":true,"current_value":["option 1","option 2"],"radio_values":["option 1","option 2","option 3"]},{"setting_name":"enabled or disabled","type":"boolean","advanced":true,"current_value":true},{"setting_name":"slider bar","type":"slider","advanced":true,"current_value":50,"min":-100,"max":100},{"setting_name":"button","advanced":true,"type":"button"}]}}

Front:

Front -> Back

{
  "type": "machine_settings",
  "call": "send",
  "data": {
    "settings": [
      {
        "setting_name": "text field",
        "type": "text",
        "new_value": "current value of seting"
      },
      {
        "setting_name": "radio button",
        "type": "radio",
        "new_value": ["option 1", "option 2", "option 3"]
      },
      {
        "setting_name": "check box",
        "type": "check",
        "new_value": ["option 1", "option 2", "option 3"]
      },
      {
        "setting_name": "enabled or disabled",
        "type": "boolean",
        "new_value": false
      },
      {
        "setting_name": "slider bar",
        "type": "slider",
        "new_value": 100.0
      },
      {
        "setting_name": "button",
        "type": "button",
        "new_value": true
      }
    ]
  }
}

One Liner: {"type":"machine_settings","call":"send","data":{"settings":[{"setting_name":"text field","type":"text","new_value":"current value of seting"},{"setting_name":"radio button","type":"radio","new_value":["option 1","option 2","option 3"]},{"setting_name":"check box","type":"check","new_value":["option 1","option 2","option 3"]},{"setting_name":"enabled or disabled","type":"boolean","new_value":false},{"setting_name":"slider bar","type":"slider","new_value":100},{"setting_name":"button","type":"button","new_value":true}]}}

Description
This repository is for the frontend web app used in the Jukebox project.
Readme 2.8 MiB
Languages
JavaScript 60.4%
SCSS 32.5%
HTML 6.7%
Dockerfile 0.4%