Skip to content

Makecode Embedded integration #643

@r59q

Description

@r59q

Determine the work required for the ml-trainer equivalent makecode integration

Investigation

  • Add the makecode-embed library
  • Determine if it should be embedded within the 'mainContent' window or it should be a page by itself
  • (If it should take up the entire page, like with ML-Trainer) Create a exceptional route in the router that fills the entire page
  • Create a MakeCodeProject from the current state of the application
  • Create an "extension" that can be used inside of the embedded makecode, there's probably something we can borrow from ML-Trainer
  • Use the block rendering to display the configuration on the model page instead of the current threshold logic

Implementation

See the dev-makecode-embed branch for reference implementations

  • Add the makecode-embed library
  • Add /makecode path
  • Add ml machine extension
  • Insert makecode embed iframe
  • Move the makecode frame driver to controller
    • WontDo - it's too tied to the UI
    • Alternative, create a FrameBuilder or some other way to move the native js away from Svelte framework code
  • Add back button to embedded makecode
  • Move navigation into backend interface, replace in makecode controller
    • Leave it in the frontend and pass in event handlers to the frambuilder
  • Add 'to makecode' button on output page
  • Put FeatureToggle in interface-controller
    • Load the features when ML-Machine is instantiated
  • Add makecode override state
  • Add blocks renderer to makecode output page view
  • Save MakeCode project
    • Create MakeCodeRepository
    • Create MakeCodeService
    • Load saved MakeCode project from repository

Potential further work (Solution for #637)

  • Generate project files instead of using extension

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions