Skip to content

[DESKTOP] Configurar base arquitectónica del frontend desktop (Tauri, routing, stores, API, temas e i18n) #18

Description

@jero-scafati

Depende de: nada

Descripción

Implementar la estructura base del desktop app utilizando Tauri + Vue 3, incluyendo:

  • Configuración inicial de Tauri (tauri.conf.json, capabilities y Cargo.toml)
  • Sistema de rutas con Vue Router y lazy loading
  • Estructura inicial de stores con Pinia usando Composition API
  • Service layer HTTP tipado hacia FastAPI
  • Sistema de temas light/dark basado en CSS variables
  • Internacionalización ES/EN con vue-i18n

Alcance

Tauri foundation

  • Configurar metadata de app, tamaño mínimo de ventana y capabilities necesarias para eventos frontend/backend
  • Verificar que npm run tauri:dev abra correctamente la app nativa

Routing

  • Crear rutas principales de herramientas DSP:

    • RTA
    • Transfer Function
    • Spectrogram
    • Coherence
    • Filter Designer
    • Signal Generator
  • Usar createWebHashHistory para compatibilidad con Tauri

  • Lazy loading en todas las vistas

Stores (Pinia)

Crear stores base para:

  • señales
  • filtros
  • coherencia
  • audio
  • estado global de la app

Todos los stores deben:

  • usar Composition API (defineStore(() => {}))
  • exponer isLoading y error
  • evitar completamente Options API

API layer

Implementar cliente HTTP centralizado:

  • VITE_API_URL
  • funciones async tipadas
  • manejo consistente de errores
  • integración con endpoints FastAPI

Theme system

Implementar:

  • tema light
  • tema dark
  • modo system
  • persistencia en localStorage
  • CSS variables globales
  • cambio dinámico sin reload

Internacionalización

Implementar:

  • vue-i18n
  • español e inglés
  • persistencia del idioma
  • eliminación de strings hardcodeados en componentes

Criterios de aceptación

  • npm run tauri:dev abre correctamente la aplicación nativa
  • Todas las rutas renderizan correctamente usando hash routing
  • Los stores están registrados y siguen Composition API
  • El cliente API maneja correctamente errores de red y validación
  • El cambio de tema funciona sin reload y persiste entre sesiones
  • El idioma puede cambiarse dinámicamente entre ES/EN
  • No existen colores ni strings hardcodeados en componentes .vue

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions