Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
MCP de coordinación: servidor y manual canónico · conexión pública · ayuda humana. Operación de agentes: al empezar/retomar y en hitos reales usa el emisor de progreso y coordinación. No genera actividad desde idle o presencia. CLI aplazadas por orden de Carlos: política persistente y parada segura.查看完整 README ↗
MCP de coordinación: servidor y manual canónico · conexión pública · ayuda humana.
Operación de agentes: al empezar/retomar y en hitos reales usa el emisor de progreso y coordinación. No genera actividad desde idle o presencia. CLI aplazadas por orden de Carlos: política persistente y parada segura.
Plataforma de intervenciones técnicas (incidencias · instalaciones · desinstalaciones · mantenimiento) sobre los equipos de puntos de venta —estancos, kioscos, loterías, centros con cartelería digital / hilo musical / metahumans—, conectando esos centros con técnicos (freelance o empresas) en un modelo marketplace. Las incidencias entran automáticamente desde Admira vía webhook. Al cerrar, el centro valora al técnico.
Definición completa y decisiones:
docs/00-definicion.md
yokup.com está fijado en ESTE repo (web/CNAME); la app vive en la subruta /tool/ y la
raíz redirige a /tool/. Publicado por .github/workflows/pages.yml (carpeta web/) en cada
push a main.web/tool/ (todos los HTML/JS/CSS/media). En la raíz
web/ sólo quedan CNAME (dominio), index.html (redirección a /tool/) y 404.html
(reenvía enlaces antiguos de la raíz a /tool/…; para paths ya bajo /tool/ muestra un 404
simple). Todas las rutas internas son relativas, así que funcionan igual bajo /tool/.location.origin + location.pathname, por lo que vuelve correctamente a la página bajo /tool/.
Lectura pública; escribir requiere sesión (RLS: anon SELECT, authenticated ALL).
⚠️ Añadir en el dashboard de Supabase (proyecto aswwjkfejdfglpxlgbjl) las Redirect URLs /
Site URL con el nuevo path: https://www.yokup.com/tool/* y https://yokup.com/tool/*.supabase, directo desde el navegador
con la anon key + RLS demo, sin worker). Proyecto aswwjkfejdfglpxlgbjl (eu-central-1).
Esquema: db/schema-demo.sql + db/rls-demo.sql. Verificado el ciclo completo escribiendo
en la BD real. La arquitectura con worker (api/) queda disponible como alternativa futura.
Nota seguridad: la anon key en
config.jses pública por diseño; RLS demo abre acceso anónimo (aceptable para demo). Endurecer con Supabase Auth antes de producción real.
Ya está montado así. El dominio custom (web/CNAME = yokup.com) hace que Pages sirva desde
la raíz del dominio, y la subruta /tool/ la damos nosotros con la carpeta web/tool/:
web/CNAME contiene yokup.com (no tocar; si se moviera a
web/tool/ Pages perdería el dominio). DNS y config de Pages ya apuntan aquí.web/tool/, por lo que se sirve en
https://www.yokup.com/tool/ (y https://yokup.com/tool/).web/index.html redirige (meta refresh + location.replace('/tool/')).web/404.html reenvía paths viejos de la raíz (p.ej. /panel.html) a
/tool/….https://www.yokup.com.yokup/
├─ web/ # Frontend estático (HTML/JS/CSS vanilla, estilo Admira)
│ ├─ index.html # Landing "cómo funciona" (el bucle + las dos caras)
│ ├─ video.html # Vídeo explainer animado (7 escenas, autoplay + controles)
│ ├─ alta-punto.html # Explicación + alta de punto de venta
│ ├─ alta-instalador.html# Explicación + alta de instalador (freelance/empresa)
│ ├─ panel.html # Panel de intervenciones (KPIs + listado + valoración)
│ ├─ marketplace.html # Tablón de trabajos por zona (los técnicos aceptan)
│ ├─ equipos.html # Catálogo de equipos (surfaces) por punto de venta
│ ├─ backoffice.html # Operador: supervisar · asignar/reasignar · validar altas · métricas
│ ├─ data.js # Capa de datos: stores desde omnipublicity-api + altas/intervenciones (mock LS)
│ ├─ yokup-nav.js # Navegación
│ └─ yokup.css # Estilos (paleta Admira + acento Yokup)
│ ├─ config.js # Selector de backend: 'local' (mock) | 'api' (worker)
├─ api/ # Cloudflare Worker (yokup-api) + Supabase — ver api/README.md
│ ├─ src/index.js
│ └─ wrangler.toml
├─ db/
│ └─ schema.sql # Esquema PostgreSQL / Supabase (v1)
└─ docs/
└─ 00-definicion.md # Documento de definición
El frontend funciona con dos backends, elegidos en web/config.js:
local (por defecto): mock en localStorage. Demo navegable sin servidor.api: Cloudflare Worker yokup-api + Supabase. Ver api/README.md
para crear el proyecto Supabase (con db/schema.sql), desplegar el worker y enchufarlo.La API de data.js es idéntica para ambos: lecturas síncronas (cache hidratada en modo
api vía await Yokup.ready) y escrituras optimistas que persisten en segundo plano.
tokens.css del design system admira-design.omnipublicity-api (Cloudflare Worker + KV), mismo maestro que Admira.
Un "equipo" en Yokup = una surface de un store.db/schema.sql).webhook_inbox, idempotente).cd web && python3 -m http.server 8788
# http://localhost:8788 (config en .claude/launch.json del workspace: "yokup-static")
En F0 las intervenciones se guardan en localStorage (mock) hasta conectar la API real (F1).