Skip to main content

Cheeko - Backend Overview

Cheeko Hero

Cheeko is an AI companion for children (ages 3–16) running on ESP32 devices. This documentation covers all five backend and firmware components and their integration.

Boot-to-Conversation Flow

System Components

ComponentLanguageRole
livekit-serverPythonAI voice agent — conversation, games, music/story playback
manager-api-nodeNode.js / ExpressREST API — device registry, OTA, config, content, analytics
manager-webVue.jsAdmin dashboard for managing devices, users, models, and content
mqtt-gatewayNode.jsProtocol bridge: MQTT/UDP (ESP32) to LiveKit WebRTC
ESP32 FirmwareC++ / ESP-IDFOn-device client — state machine, audio pipeline, MQTT, RFID
Parent AppFlutteriOS/Android app for parents — device setup, kid profiles, content

High-Level Data Flow.

ESP32 Device ──MQTT/UDP──> mqtt-gateway ──WebSocket──> LiveKit Cloud
│ │
│ ▼
│ livekit-server
│ (AI Agent)
▼ │
manager-api-node (JS) <───────────────┘
│ (config, prompts, analytics)

manager-web
(Admin Dashboard)

All device-to-server communication starts with the Manager API (OTA check and activation), then shifts to the MQTT Gateway for real-time voice protocol. The livekit-server AI agent reads configuration and prompts from the Manager API during session setup.

Service Ports

ServicePortBase Path
manager-api-node8002/toy
MQTT broker (EMQX)1883
UDP audio channeldynamic

Quick Start

note

manager-api-node (Node.js/Express) is the backend API implementation, exposing all endpoints under /toy.