Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。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 |