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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證GestionRifas
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Aplicación web para administrar la operación de una empresa de rifas: organizaciones, rifas, vendedores, clientes, boletas, asignaciones, abonos, pagos, saldos, reportes y auditoría.檢視完整 README ↗
Aplicación web para administrar la operación de una empresa de rifas: organizaciones, rifas, vendedores, clientes, boletas, asignaciones, abonos, pagos, saldos, reportes y auditoría.
Estado actual: las 10 fases están completadas. La aplicación está en producción y auditada. El MVP está funcionalmente completo y endurecido desde la Fase 7: crear rifas y boletas, repartirlas entre vendedores, venderlas a clientes, cobrarlas con abonos y consultar y exportar todo eso en reportes. Los estados de pago (Sin pagar / Abonada / Pagada) y los saldos los calcula siempre la base de datos; ningún importe se suma en el navegador. Verificado con 378 pruebas de base de datos y 213 end-to-end sobre un navegador real, incluido el ciclo completo de venta desde un teléfono y una prueba de volumen con 5.000 boletas. La auditoría final (Fase 9) sometió el sistema a 47 intentos deliberados de romperlo con sesiones reales y sin privilegios especiales: ninguno consiguió leer ni escribir un dato ajeno, ni descuadrar un peso. Informe completo en
docs/AUDIT_REPORT.md; procedimiento de despliegue endocs/DEPLOYMENT.md.⚠️ Antes de operar con dinero o clientes reales hay tres controles del dueño del negocio: resolver los backups del plan Free (I-024), desactivar o rotar las cuentas demo (I-021) y confirmar la URL canónica de invitaciones en Supabase Auth (I-023). No hay trabajo técnico activo autorizado; los demás riesgos y límites están en
docs/KNOWN_ISSUES.md.
Reemplaza el control manual en papel y hojas de cálculo por un sistema con:
0021, aplicada en local y producción) y una columna «Abono» con lo ya cobrado de esa boleta
—«20», «20.000», «20000» o «Cancelado»—, que se registra como un abono real, con su historial y su
saldo (migración 0033, aplicada en local y producción).0081, solo en local): el personal genera por
rangos hasta 100.000 boletas sin vendedor, las entrega por lotes y recupera lo no vendido; cada
vendedor aparta boletas libres 30 minutos y las vende con la venta de siempre.Cada agente empieza por sus instrucciones: Codex en AGENTS.md y Claude Code en
CLAUDE.md. Después sigue el mismo núcleo: HANDOFF para el relevo operativo,
PHASE_STATUS para el estado del producto y las fuentes normativas indicadas por HANDOFF §5.
| Documento | Contenido | Cuándo leerlo |
|---|---|---|
AGENTS.md | Protocolo conciso, seguridad Git y continuidad | Codex: primero |
CLAUDE.md | Prompt histórico, reglas por fases e instrucciones propias | Claude Code: primero |
docs/HANDOFF.md | Relevo, arranque, contexto operativo y trampas | Núcleo común |
docs/PHASE_STATUS.md | Estado del producto y snapshots de cierre por fase | Núcleo común |
docs/MASTER_SPEC.md | Especificación funcional consolidada | Núcleo común |
docs/ARCHITECTURE.md | Stack, carpetas, rutas y patrones | Núcleo común |
docs/BUSINESS_RULES.md | Reglas numeradas (BR-*) | Núcleo común |
docs/DECISIONS.md | Decisiones técnicas (D-*) | Núcleo común; entradas relacionadas |
Next.js 16 (App Router) · React 19 · TypeScript 5.9 estricto · Tailwind CSS 4 · shadcn/ui · Supabase (PostgreSQL 17, Auth, RLS) · React Hook Form · Zod · date-fns · Vitest · TanStack Table y Virtual · Playwright.
Versiones exactas y su justificación en docs/ARCHITECTURE.md §2.
| Parámetro | Valor |
|---|---|
| Idioma | Español (es-CO) |
| Zona horaria | America/Bogota |
| Moneda | COP, almacenada como entero de pesos |
| Precio predeterminado de boleta | $120.000 (120000) — corregido desde $100.000 el 2026-08-15 (D-098) |
| Rebaja del vendedor | Una boleta puede venderse por debajo del precio de la rifa. La rebaja sale íntegra de la ganancia del vendedor; lo que le queda a la empresa no cambia (D-099) |
Requisitos previos: Node.js ≥ 20.19 (ver docs/DECISIONS.md D-030), npm, Git y —desde la Fase 2—
Docker Desktop para ejecutar Supabase en local.
npm install
cp .env.example .env.local # completar con las claves reales del proyecto Supabase
npm run dev
Para desarrollar conviene usar npm run dev:local, que apunta siempre a la instancia local de
Supabase. npm run dev usa lo que diga .env.local, que puede ser el proyecto real.
.env.local nunca se versiona. Variables de la aplicación: NEXT_PUBLIC_SUPABASE_URL,
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, SUPABASE_SERVICE_ROLE_KEY, NEXT_PUBLIC_SITE_URL y TZ.
El seed requiere además SEED_DEFAULT_PASSWORD. Detalle en .env.example; hoy el
prebuild no valida NEXT_PUBLIC_SITE_URL, por lo que debe revisarse manualmente (I-049).
Para tener usuarios de prueba (Owner, Admin, 2 Sellers) sobre una base de datos ya migrada:
npm run seed
Para desarrollar contra una base de datos local (necesita Docker):
npx supabase start
npm run db:reset && npm run seed:local
Comandos disponibles:
npm run dev # desarrollo (Turbopack) contra lo que diga .env.local
npm run dev:local # desarrollo contra la instancia local de Supabase
npm run build # build de producción
npm run typecheck # tsc --noEmit
npm run lint # eslint
npm run test # vitest (unitarias)
npm run test:db # 378 pruebas contra la base de datos local (crea 5.000 boletas de volumen)
npm run test:e2e # 213 pruebas end-to-end (Playwright, requiere base local RECIÉN sembrada)
npm run format:check # prettier --check
npm run verify # typecheck + lint + test + build
npm run seed # datos de desarrollo en el proyecto de .env.local
npm run seed:local # datos de desarrollo en la instancia local
npm run db:reset # reaplica todas las migraciones desde cero (local)
npm run icons # regenera TODOS los iconos desde public/icons/source/*.svg
# (cambiar el logo = soltar los SVG ahí y ejecutar esto — D-122)
npm run create-org -- --name "..." --owner-email ... --owner-name ... --owner-phone ...
# alta operativa de una organizacion y su primer Owner (docs/OPERATIONS.md)
Las fases 0 a 9 están cerradas. Cualquier fase nueva o mantenimiento requiere autorización explícita. Antes de implementar:
AGENTS.md (Codex) o CLAUDE.md (Claude Code).HANDOFF, PHASE_STATUS y el núcleo documental común.REUSE → EXTEND → CREATE (D-086).| Fase | Nombre | Estado |
|---|---|---|
| 0 | Arquitectura y planificación | ✅ Completada |
| 1 | Proyecto base y autenticación | ✅ Completada |
| 2 | Base de datos, restricciones y RLS | ✅ Completada |
| 3 | Portal Owner y Admin | ✅ Completada |
| 4 | Portal Seller y clientes | ✅ Completada |
| 5 | Pagos, abonos y saldos | ✅ Completada |
| 6 | Dashboards, reportes y UI/UX | ✅ Completada |
| 7 | Pruebas, seguridad y endurecimiento | ✅ Completada |
| 8 | Despliegue y documentación operativa | ✅ Completada |
| 9 | Auditoría final independiente | ✅ Completada |
Desplegada en Vercel (proyecto gestion-rifas) contra el proyecto Supabase real, sin un entorno de
staging separado — decisión documentada en docs/DECISIONS.md D-066. Procedimiento completo,
variables de entorno y reversión en docs/DEPLOYMENT.md; manual de operación
del día a día en docs/OPERATIONS.md; problemas frecuentes en
docs/RUNBOOK.md.
Un push a main construye y despliega automáticamente (integración de Vercel con GitHub). Las
migraciones no se aplican solas — se promueven a mano con el procedimiento de tres pasos de
DEPLOYMENT.md §2.2.
SUPABASE_SERVICE_ROLE_KEY nunca llega al navegador..env.example con valores de marcador.X-Frame-Options, X-Content-Type-Options, Referrer-Policy y Permissions-Policy.npm audit: 0 vulnerabilidades.Detalle completo en docs/SECURITY.md.
docs/DATA_MODEL.md | Tablas, restricciones, índices, triggers | Al tocar el esquema o escribir consultas |
docs/SECURITY.md | Matriz de permisos, RLS, secretos, amenazas | Al escribir RLS o Server Actions |
docs/IMPLEMENTATION_PLAN.md | Alcance por fase (0 a 9) | Solo la sección de tu fase |
docs/KNOWN_ISSUES.md | Problemas, riesgos y deuda técnica | Ante un comportamiento raro |
docs/TEST_RESULTS.md | Resultados de pruebas por fase | Al revisar qué se probó |
docs/TESTING.md | Estrategia de pruebas | Al escribir pruebas nuevas |
docs/DEPLOYMENT.md | Procedimiento de despliegue, variables de Vercel y reversión | Al desplegar o promover una migración a producción |
docs/OPERATIONS.md | Manual de operación del negocio (alta de organización, rifas, anulaciones) | Para operar la aplicación, no para programar |
docs/RUNBOOK.md | Problemas frecuentes en producción y cómo resolverlos | Ante un incidente en producción |
docs/AUDIT_REPORT.md | Snapshot de la auditoría final de Fase 9: hallazgos, evidencia e intentos adversarios | Al revisar esa auditoría histórica; para estado vigente usa HANDOFF y KNOWN_ISSUES |
docs/UX_COPY_GUIDELINES.md | Guía de UX Writing: tono, glosario y reglas de redacción de todo texto visible | Al escribir o cambiar cualquier texto de la interfaz |