How aioscout/aioscout-desktop works
AIoScout Desktop unifies AI model training and Mixly block coding for the smart car. The user selects a subpage in the shell; the Electron main process starts or reuses its backend and embeds its loopback-served UI. In the training workflow, exported models are collected into a persistent library that Mixly can read for AI Vision blocks. The graph also shows Arduino toolchain setup and the context-isolated IPC boundary. External backend internals are documented but not present in this repository, so their internal stages are omitted.
Main entry points: main/index.ts App coordinator · ipc.ts IPC handlers · modelLibrary.ts Model library · preload/index.ts Preload bridge
Components 18
Desktop interface
- Shell UI
src/renderer/main.js - Preload bridge
src/preload/index.ts - Embedded views
src/main/windowManager.ts
Electron orchestration
- App coordinator
src/main/index.ts - IPC handlers
src/main/ipc.ts - App settings
src/main/settings.ts - Runtime paths
src/main/paths.ts - Shared IPC contract
src/shared/types.ts
Backend services
- Mixly service
src/main/services/mixly.ts - Training service
src/main/services/training.ts - Mixly block editor
- Training backend
Model and device workflow
- Export outbox
- Export watcher
src/main/linkage/exportWatcher.ts - Model library
src/main/linkage/modelLibrary.ts - Arduino toolchain
src/main/arduinoCli.ts
Other components
- User
- AIoScout smart car
Connections 25
- User → Shell UI: navigates
- Shell UI → Preload bridge: invokes IPC
- Preload bridge → IPC handlers: forwards requests
- IPC handlers → App coordinator: dispatches actions
- App coordinator → App settings: loads settings
- App coordinator → Runtime paths: resolves paths
- App coordinator → Mixly service: starts service
- App coordinator → Training service: starts service
- App coordinator → Embedded views: selects page
- Mixly service → Mixly block editor: forks server
- Training service → Training backend: spawns backend
- Mixly block editor → Embedded views: serves editor
- Training backend → Embedded views: serves training UI
- Training backend → Export outbox: writes exports
- Export watcher → Export outbox: watches files
- App coordinator → Export watcher: starts watcher
- Export watcher → Model library: imports models
- IPC handlers → Model library: manages models
- Mixly block editor → Model library: reads models
- App coordinator → Arduino toolchain: seeds toolchain
- Mixly block editor → Arduino toolchain: uses CLI
- Arduino toolchain → AIoScout smart car: uploads firmware
- IPC handlers → Shared IPC contract: uses channel definitions
- Preload bridge → Shared IPC contract: uses channel definitions
- Model library → Shell UI: notifies changes