JAP JAP

Cuqui

Voice-Controlled Smart Cooking Assistant

$ git clone github.com/JoseAPortillo/Cuqui
$ open cuqui-app.duckdns.org

$ cat README.md

Cuqui is a voice-controlled cooking assistant that manages multiple named timers through natural language commands — create, pause, resume, extend, reduce, rename, and check timers using voice or text.

It was built as a TFM (Master’s Thesis) project to demonstrate AI integration, natural language parsing, real-time synchronization via WebSockets, and reproducible deployment with Docker. It’s a Progressive Web App: installable on mobile and running in production at cuqui-app.duckdns.org.

$ ls media/

Cuqui voice command demo [image]
Timer dashboard — named timers with remaining time
Cuqui voice command demo
Voice command demo — Spanish and English
Background notification — alarm while the screen is off

$ ls src/

Python 3.12 FastAPI WebSockets React 19 TypeScript Vite PWA Push API Service Worker SQLite faster-whisper OpenAI Whisper Rule parser LLM fallback Docker Compose Capacitor

$ cat features.md

  • Voice or text commands in Spanish and English
  • Named timers: create, add time, reduce, pause, resume, cancel, rename
  • Background notifications with alarm sound even when the screen is off (Push API + Service Worker + Web Audio)
  • Real-time state sync via WebSockets
  • Local ASR with faster-whisper; optional cloud fallback (OpenAI Whisper + LLM for low-confidence commands)
  • Installable PWA for mobile — Android build via Capacitor with native alarm, screen wake and vibrate plugins
  • TFM demo panel: local vs cloud processing mode and API key control

$ cat voice.md

Spanish

  • “10 minutos para la pasta”
  • “agregar 5 minutos al pollo”
  • “pausar el pescado”
  • “renombrar pasta a spaghetti”

English

  • “set 10 minutes for pasta”
  • “add 5 minutes to the chicken”
  • “pause the fish”
  • “rename pasta to spaghetti”

Commands are parsed by a deterministic rule-based parser; low-confidence commands fall back to an LLM.

$ cat architecture.md

Clean hexagonal architecture: domain (timers, commands, parser), application (use cases), ports (intent parser, speech-to-text, push notifications, storage) and adapters (FastAPI, rule parser, faster-whisper, webpush, SQLite/in-memory storage). Docker Compose with a multi-stage build ships frontend and backend together.

  • backend — FastAPI + WebSockets, hexagonal layers, pytest suite (unit + integration)
  • frontend — React 19 + TypeScript, VitePWA, Service Worker, Capacitor Android build
  • deploy — docker-compose multi-stage, secure context (HTTPS) for voice capture

$ git status

status: In production as a PWA at cuqui-app.duckdns.org — installable on desktop and mobile. TFM project with published docs and presentation.