Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Plataforma SaaS B2B de tracking logístico multi-tenant para Ecuador/LATAM.
Desarrollado por SVK Solutions — Kevin Santana
"Si lo puedes imaginar, yo lo puedo programar"
| Capa | Tecnología |
|---|---|
| Frontend Web | Next.js 14 (App Router) + TypeScript + Tailwind CSS + shadcn/ui |
| Backend / API | Node.js + NestJS + REST API (JWT Auth) |
| Base de datos | PostgreSQL (datos transaccionales) + MongoDB Atlas (eventos de tracking / logs de alta escritura) |
| Infraestructura | Docker Compose (dev local), AWS RDS Aurora (prod), Vercel (frontend) |
| Seguridad | TLS 1.3, AES-256 en reposo, JWT + refresh tokens, arquitectura multi-tenant aislada, OWASP compliance |
| Móvil (fase futura) | React Native (Expo) — fuera del alcance de la Fase 1 |
sutl/
├── backend/ # API NestJS
├── frontend/ # Next.js 14 App Router
├── docs/ # Documentación de arquitectura
├── docker-compose.yml
└── CLAUDE.md # Contexto del proyecto para Claude Code
auth: registro/login, JWT access (15 min) + refresh (7 días, cookie httpOnly), guard global (JwtAuthGuard + @Public()), guard de roles (RolesGuard + @Roles()).tenants: CRUD exclusivo de super_admin (panel SaaS).users: CRUD de usuarios por tenant, siempre filtrado por tenantId del JWT.shipments: CRUD por tenant + endpoint público GET /api/shipments/tracking/:codigoGuia (sin auth).tracking-events: eventos en MongoDB Atlas, asociados a un envío; cada evento nuevo actualiza el estado del Shipment en Postgres./tracking y /tracking/[codigo].DB inicial en Supabase (Postgres free tier). El schema (backend/prisma/schema.prisma) es Postgres estándar sin extensiones propietarias, así que migrar a AWS RDS Aurora más adelante es solo cambiar DATABASE_URL/DIRECT_URL. Ver supabase/README.md para el setup paso a paso y supabase/schema.sql como referencia SQL del schema.
Eventos de tracking van en MongoDB Atlas (free tier M0), no en Supabase — ver MONGO_URI en backend/.env.example.
cp .env.example .env
cp backend/.env.example backend/.env # ajustar DATABASE_URL/DIRECT_URL a la variante local (ver comentario en el archivo)
cp frontend/.env.example frontend/.env
docker compose up --build
# Backend: http://localhost:3001/api
# Frontend: http://localhost:3000
cp backend/.env.example backend/.env # completar DATABASE_URL, DIRECT_URL y MONGO_URI reales
cp frontend/.env.example frontend/.env
cd backend
npm install
npm run prisma:migrate -- --name init
npm run prisma:seed # crea super_admin + tenant demo (ver prisma/seed.ts)
npm run start:dev
cd ../frontend
npm install
npm run dev
Usuarios de prueba tras el seed: [email protected] (super_admin), [email protected] (admin_tenant) y [email protected] (operador) — contraseñas en backend/prisma/seed.ts.
frontend/), variable NEXT_PUBLIC_API_URL apuntando al backend.Dockerfile de backend/ ya está listo para migrar a un contenedor en AWS (ECS/EB) más adelante sin cambios de código.Fase 2: refinar validaciones, tests, y llevar el CRUD de shipments/tracking-events a UI con filtros y paginación real.