Skip to main content

Admin Dashboard (Manager Web)

Admin Dashboard

The Manager Web is the Cheeko admin dashboard, a single-page application used to manage devices, users, content, and system configuration.

Tech Stack

ItemDetails
FrameworkVue.js 2 (vue@^2.6.14)
UI LibraryElement UI (element-ui@^2.15.14)
RoutingVue Router 3
StateVuex 3
HTTPFly.io (flyio@^0.6.14)
Build ToolVue CLI Service 5
CSSSASS / normalize.css

Running

Development (hot-reload):

cd main/manager-web
npm install
npm run serve

Runs on http://localhost:8080 by default.

Production build:

npm run build

Output is placed in dist/. Serve it behind Nginx or any static file server.

Bundle analysis:

npm run analyze

Environment Variables

VariableDescription
VUE_APP_API_BASE_URLBackend API base URL (e.g., http://localhost:8002/toy)
VUE_APP_PUBLIC_PATHPublic path for router base (default: /)
VUE_APP_USE_CDNSet to true to enable CDN asset loading

Create a .env.local file in main/manager-web/ to set these during development.

Authentication

The dashboard uses a custom token-based auth system stored in localStorage. The token is issued by the manager-api backend (/toy/user/login). A route guard in src/router/index.js checks for the presence of a token key in localStorage before allowing access to protected routes. Unauthenticated users are redirected to /login.

Protected routes include: home, role-config, device-management, user-management, token-analytics, rfid-management, kid-profiles, all-devices, template-management, content-library, email-reports, game-analytics.

Views / Screens

The following screens are defined in src/views/ and registered in src/router/index.js:

RouteComponent FileDescription
/ and /loginlogin.vueAdmin login screen
/registerregister.vueNew admin account registration
/retrieve-passwordretrievePassword.vuePassword reset flow
/homehome.vueDashboard home / landing page
/role-configroleConfig.vueAdmin role and permission configuration
/voice-printVoicePrint.vueVoice print / voiceprint management
/device-managementDeviceManagement.vueManage individual registered ESP32 devices
/all-devicesAllDevices.vueFull device list view across all users
/ota-managementOtaManagement.vueOver-the-air firmware update management
/user-managementUserManagement.vueAdmin user accounts management
/kid-profilesKidProfiles.vueChild profile management (name, age, preferences)
/params-managementParamsManagement.vueSystem parameter / configuration key management
/server-side-managementServerSideManager.vueServer-side settings and configuration
/dict-managementDictManagement.vueSystem dictionary / lookup table management
/template-managementTemplateManagement.vueAgent prompt template management
/content-libraryContentLibrary.vueMusic, story, and textbook content management
/rfid-managementRfidManagement.vueRFID tag registration and content mapping
/token-analyticsTokenAnalytics.vueLLM token usage analytics and reporting
/game-analyticsGameAnalytics.vueGame session analytics (math, riddles, word ladder)
/email-reportsEmailReportSettings.vueEmail report scheduling and recipient settings

Key Features

  • Device Management — register and configure ESP32 Cheeko devices, view connection status, bind devices to user accounts.
  • OTA Updates — push firmware updates to devices remotely via the OTA management screen.
  • Content Library — upload and manage audio content (music, stories) and textbooks served to devices.
  • RFID Management — map RFID tags to content items for physical card-triggered playback.
  • Kid Profiles — create and edit child profiles that drive personalized AI prompts.
  • Prompt Templates — edit the AI agent system prompt templates used by the livekit-server workers.
  • Analytics — monitor LLM token consumption and game session data per device/user.
  • Voice Print — manage voice print profiles associated with devices.