Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Software de gestión para ópticas en Chile
Translation pending
BusinessTypeScript · JavaScriptGitHub @joaquinlosada77-coderOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗ERP para ópticas en Chile, multi-sucursal, tomando como referencia funcional a GesVision (ERP español en la nube para ópticas) y adaptado a la normativa chilena (RUT, SII, Ley 20.584, Ley 19.628).
Stack: Next.js 15 (App Router, Server Actions) · TypeScript · PostgreSQL 16 · Prisma 6 · Tailwind 4 · Zod · Vitest
Guía paso a paso (Vercel + Neon, sin instalar nada): docs/publicar.md.
En una instalación nueva el sistema lleva a /setup para crear la empresa y el administrador,
y desde Configuración → Importar se cargan pacientes y graduaciones exportados desde Gesvision.
docker compose up -d # o un PostgreSQL 16 propio
cp .env.example .env # ajustar DATABASE_URL y AUTH_SECRET (openssl rand -hex 32)
npm install
npx prisma migrate deploy # requiere extensión btree_gist (ver nota)
npm run db:seed # datos demo
npm run dev
Usuarios demo (clave optica123): [email protected], [email protected], [email protected], [email protected].
La migración inicial ejecuta
CREATE EXTENSION btree_gist. En PostgreSQL 13+ es una extensión "trusted" (la puede crear el dueño de la BD); en algunos proveedores hay que habilitarla desde el panel.
Scripts: npm test (unitarias), npm run typecheck, npm run lint, npm run build.
| Área GesVision | Equivalente aquí | Fase |
|---|---|---|
| Multi-tienda / multi-empresa, entorno unificado | Organization → Branch, selector de sucursal, permisos por sucursal | 1 ✅ |
| Gestión de pacientes / clientes | Pacientes con RUT, previsión (Fonasa/Isapre), consentimiento | 1 ✅ |
| Agenda / citas | Agenda diaria por profesional, estados, anti doble reserva | 1 ✅ |
| Gestión clínica: historial, optometría, contactología (audiología) | Receta ✅; resto de la ficha optométrica | 2 (parcial) |
| TPV, caja, abonos | Venta táctil, configurador de cristales, abonos, caja ✅ | 3 ✅ |
| Facturación (allí AEAT/Verifactu) | Boleta/factura electrónica SII vía proveedor API | 4 |
| Pedidos de lentes, proveedores, recepción de albaranes | Órdenes de laboratorio, guías de despacho | 5 |
| Catálogos integrados, stock multi-sucursal | Inventario, traspasos entre sucursales | 6 |
| CRM, recordatorios, informe visual por email | Campañas, recordatorios WhatsApp/email, fidelización | 7 |
orgId; los pacientes se comparten entre
sucursales de la empresa; agenda y operación son por sucursal activa (cookie validada contra los permisos).12345678-K), único por empresa;
soporte a extranjeros con pasaporte; búsqueda por RUT parcial, nombre, teléfono o correo;
previsión e Isapre; consentimiento de comunicaciones (Ley 19.628).EXCLUDE USING gist sobre tstzrange), cubriendo carreras y profesionales que atienden en varias sucursales.timestamptz) y se convierte con America/Santiago
(cambios de horario incluidos).audit_logs registra creación/edición de pacientes, citas, sucursales y usuarios.Pensado para tablet o pantalla touch, mostrando la pantalla al cliente:
167-MONO-AR-BLUE) y el precio del par. Precios y opciones en Configuración → Cristales.prisma/schema.prisma modelo de datos (+ migración con constraint anti-traslape)
src/lib/ lógica pura: rut.ts, time.ts, agenda.ts, labels.ts
src/server/ server actions y consultas (auth, patients, appointments, admin)
src/app/(app)/ pantallas autenticadas (inicio, agenda, pacientes, configuración)
src/components/ UI y formularios cliente
tests/ Vitest (RUT, zona horaria, agenda)
DteProvider;
folios/CAF por sucursal, reintentos y conciliación de estados.