8.6 KiB
8.6 KiB
Alpha — Documento Técnico
Alpha = KAPPA Hub. Aplicación Tauri + Vue 3 para gestión multi-proyecto. Semilla de RUMBO. POC en producción como herramienta de Business Analyst.
Versión: 0.1.0 | Fecha: 2026-05-26 | Autor: Ricardo Gonzalez (Teloprax)
1. Stack tecnológico
| Capa | Tecnología | Versión |
|---|---|---|
| Desktop shell | Tauri v2 | 2.11 |
| Frontend | Vue 3 + TypeScript + Vite | 3.4 / 5.x |
| Runtime JS | Bun | 1.3+ |
| Estado | Pinia | 2.1 |
| Base de datos local | Turso (libSQL) | Embedded |
| Cache navegador | Dexie.js (IndexedDB) | 4.0 |
| UI Components | shadcn-vue (reka-ui) | 2.7 / New York |
| Estilos | Tailwind CSS v4 | 4.3 |
| Tablas | @tanstack/vue-table → AG Grid | 8.21 / planned |
| i18n | vue-i18n | 11.4 |
| Iconos | Lucide + Tabler Icons | — |
| HTTP | fetch() nativo | — |
| Auth | Bearer token KAPPA | — |
2. Arquitectura
┌──────────────────────────────────────────────┐
│ Alpha (Tauri) │
│ │
│ ┌──────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Vue 3 FE │ │ Pinia │ │ Dexie.js │ │
│ │ (Vite) │ │ Stores │ │ (offline) │ │
│ └────┬─────┘ └───────────┘ └───────────┘ │
│ │ │
│ ┌────┴──────────────────────────────────┐ │
│ │ Rust Backend (Tauri) │ │
│ │ ┌─────────┐ ┌────────────────────┐ │ │
│ │ │ Commands│ │ Turso/libSQL DB │ │ │
│ │ │ (invoke)│ │ ~/Library/... │ │ │
│ │ └─────────┘ │ alpha.db │ │ │
│ │ └────────────────────┘ │ │
│ └───────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────┐ │
│ │ Vite Dev Proxy │ │
│ │ /api → kappa.lambdaanalytics.co │ │
│ └───────────────────────────────────────┘ │
└──────────────────────────────────────────────┘
2.1 Flujo de datos
- Auth: Login → Bearer token → localStorage → Pinia store
- KAPPA sync: fetch() vía proxy Vite → store Pinia → opcional cache Dexie
- Datos locales: Tauri invoke → Rust commands → Turso/libSQL → retorna JSON al frontend
- Offline: Dexie.js guarda cache del scheduler y datos de sesión
2.2 Base de datos local (Turso)
Archivo: ~/Library/Application Support/com.teloprax.alpha/alpha.db
Tablas actuales:
projects— caché de iniciativas KAPPAwork_items— caché de historias de usuario y tareas
Tablas planeadas (módulo usuarios):
users— cache KAPPA + campos locales (rol, seniority, célula)cells— células/equiposcell_members— relación usuario ↔ célulaproject_members— relación usuario ↔ proyectoabsences— ausencias (vacaciones, permisos)daily_logs— registro diario por usuarioperformance_snapshots— métricas calculadas
3. Estructura del proyecto
kappa-hub/
├── src/ # Frontend Vue 3
│ ├── components/
│ │ ├── ui/ # shadcn-vue (30+ componentes)
│ │ ├── dashboard/ # Cards, tabla, sidebar, charts
│ │ ├── AppSidebar.vue # Navegación principal
│ │ ├── NavProjects.vue # Selector de proyectos
│ │ └── NavUser.vue # Perfil de usuario
│ ├── views/
│ │ ├── LoginView.vue # Auth
│ │ ├── NewDashboardView.vue # Dashboard multi-sección
│ │ ├── ProjectListView.vue # Lista de proyectos
│ │ ├── CalendarView.vue # Calendario colombiano
│ │ └── SchedulerView.vue # Recetas automáticas
│ ├── stores/ # Pinia
│ │ ├── auth.ts # Autenticación
│ │ ├── projects.ts # Proyectos KAPPA
│ │ ├── workitems.ts # Work items
│ │ └── scheduler.ts # Reglas + logs
│ ├── services/
│ │ ├── kappa-api.ts # Cliente HTTP KAPPA
│ │ ├── calendar.ts # Feriados Colombia + días hábiles
│ │ └── scheduler.ts # Motor de recetas
│ ├── types/kappa.ts # Tipos TypeScript KAPPA
│ ├── i18n/ # es.json, en.json
│ └── composables/ # useSearch, useTheme
├── src-tauri/ # Backend Rust
│ ├── src/
│ │ ├── main.rs # Entry point, comandos Tauri
│ │ └── db.rs # Operaciones Turso/libSQL
│ ├── tauri.conf.json # Config Tauri
│ └── icons/ # Iconos app (macOS, Windows, iOS, Android)
└── public/ # Assets estáticos
└── Alpha.svg # Logo vectorial
4. APIs KAPPA integradas
| Endpoint | Método | Uso |
|---|---|---|
/users/login/ |
POST | Auth |
/users/all/ |
GET | Listar usuarios |
/initiatives-all/ |
GET | Listar proyectos |
/userstorys/ |
GET | HUs por proyecto |
/userstorys/create/ |
POST | Crear HU |
/logbooks/ |
GET | Bitácoras |
/logbooks_master/create/ |
POST | Crear bitácora |
/logbooks/create/ |
POST | Entrada bitácora |
/plannings/ |
GET | Planeaciones |
/plannings_master/create/ |
POST | Crear planeación |
/plannings/create/ |
POST | Entrada planeación |
/business-rules/ |
GET | Reglas de negocio |
/business-rules/create/ |
POST | Crear regla |
/functionalrequirements/ |
GET | Requisitos |
/functionalrequirements/create/ |
POST | Crear requisito |
/employees/ |
GET (paginado) | Usuarios ↔ proyectos |
5. Autenticación
- Método: Bearer token (JWT de Django REST)
- Almacenamiento: localStorage (
kappa_token) - Flujo: Login → POST
/users/login/→ token → headerAuthorization: Bearer <token> - Persistencia: Recordar email en
alpha_remember_email - Proxy dev: Vite redirige
/api/*→https://kappa.lambdaanalytics.co
6. Sincronización entre máquinas
- Código: iCloud Drive (
com~apple~CloudDocs/AI/Teloprax/) - Datos KAPPA: Servidor remoto (el Hub es solo cliente)
- Token: localStorage del navegador (logueo por máquina)
- Turso DB: Local por máquina (
~/Library/Application Support/)
7. Decisiones técnicas
| Decisión | Razón |
|---|---|
| Tauri v2 en vez de Electron | Binario <10MB, RAM <50MB, Rust nativo |
| Turso/libSQL en vez de SQLite puro | Compatible SQLite, embedded, MCP server built-in |
| Dexie.js para offline | IndexedDB wrapper, API simple, ya integrado |
| shadcn-vue New York | Estilo moderno, copiable, Tailwind v4 nativo |
| Bun runtime | Más rápido que npm/yarn, compatible con Node |
| fetch() nativo | Sin dependencia axios, suficiente para REST |
| AG Grid (planeado) | Reemplaza @tanstack/vue-table para tablas complejas |
8. Roadmap técnico
| Fase | Alcance | Estado |
|---|---|---|
| Auth + Proyectos | Login, listado, dashboard individual | ✅ |
| Layout + Navegación | Sidebar, tabs, shadcn-vue | ✅ |
| Calendario | Feriados Colombia, Ley Emiliani | ✅ |
| Scheduler | Recetas automáticas, Dexie, notificaciones | ✅ |
| i18n | Español/Inglés | ✅ |
| Tauri | Migración web → desktop app | ✅ |
| Módulo Usuarios | AG Grid, Turso, roles, células | 🔜 F1 |
| Métricas PMI | SPI, CPI, Velocity, Burndown | 🔜 F4 |
| Daily | Registro diario + recálculo | 🔜 F5 |
| Calendarios externos | Google/Outlook OAuth2 | ⬜ K-21 |
| Alertas post-reunión | Detección fin reunión → captura | ⬜ K-22 |