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
Sistema de gestión para emprendedores - Chat, Proyectos, Cotizaciones, Gantt
Translation pending
BusinessTypeScript · PLpgSQLGitHub @Jersson001OnlineOwner 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 ↗App de gestión para emprendedores: chat con clientes, catálogo de productos, cotizaciones y facturas, y control de proyectos y gastos.
React + TypeScript + Vite sobre Supabase, empaquetada para Android con Capacitor.
La publica Ferry App S.A.S. (NIT 902.028.115-2). Sus datos legales viven en
utils/legal.ts, y la política de privacidad y los términos en
public/, de donde Vite los copia al build y Capacitor los empaqueta.
Requisitos: Node.js.
npm install
npm run dev
Las claves van en .env.local —son dos, la URL y la clave anon de Supabase—;
hay una plantilla en env.example.
| ESTADO-FUNCIONALIDADES.md | Qué funciona hoy y qué no. Empieza por aquí. Cómo se arman las cotizaciones por capítulos, qué ve cada oficio, y por qué el documento se imprime como se imprime |
| SEGURIDAD.md | Auditoría de las políticas de la base, agujeros cerrados y cómo repetirla |
| PREVIEW-PROYECTO.md | Mapa del repositorio: stack, estructura, tablas y rutas públicas |
| COMO-FUNCIONA-EL-CHAT.md | Mensajería, contactos manuales, tiempo real |
| PENDIENTE-CATALOGO-STORAGE.md | Por qué la página del catálogo la sirve la app y no Storage |
| IDEAS-CATALOGO.md | Ideas pendientes para el catálogo |
| INTEGRACION-WHATSAPP.md | Cómo se comparten documentos por WhatsApp |
| GUIA-PRODUCCION.md | Montar Supabase y desplegar en web y Android |
| GUIA-GOOGLE-PLAY-STORE.md | Publicar en Play Store. Incluye por qué rechazaron la 2.1 y la 16. |
| GENERAR-APK-ANDROID-STUDIO.md | Generar el APK |
| CHECKLIST-EMPRENDEDOR.md | Qué dejar hecho para usar la app en un negocio real |
| MIGRATION_GUIDE.md | Qué cambió al pasar de Firebase a Supabase y qué costuras quedaron |
| CATALOGO-IA.md | Las descripciones con IA: qué hacían y por qué se retiraron |
Los .sql de la raíz son migraciones para pegar en el SQL Editor de Supabase.
Todos son idempotentes: correrlos dos veces no rompe nada.
Los que llevan .test.mjs al lado tienen pruebas que corren contra un Postgres
de verdad (PGlite, en memoria) sin tocar producción:
npm install @electric-sql/pglite --no-save
node supabase_alias.test.mjs
npm run build
npx cap sync android
cd android && ./gradlew bundleRelease
Los iconos se regeneran desde assets/ con
npx @capacitor/assets generate --android.