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
翻訳待ち
Full-stack project management SaaS for small teams, built with Next.js, Spring Boot, PostgreSQL and Azure.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
Gestión de proyectos para equipos pequeños: organizaciones, incidencias y actividad, de extremo a extremo. FORGE es un gestor de proyectos multiusuario inspirado en Linear y Jira, construido como ejercicio de ingeniería full stack: del modelo de datos a la interfaz, pasando por seguridad, pruebas, CI y un ensayo de despliegue en producción.Read the full README ↗
Gestión de proyectos para equipos pequeños: organizaciones, incidencias y actividad, de extremo a extremo.
Demo en vivo · Demo local · Capturas · Arquitectura · Decisiones · Documentación
FORGE es un gestor de proyectos multiusuario inspirado en Linear y Jira, construido como ejercicio de ingeniería full stack: del modelo de datos a la interfaz, pasando por seguridad, pruebas, CI y un ensayo de despliegue en producción.
OWNER, ADMIN y MEMBER e invitaciones que caducan.CORE-1, CORE-2…) con estado, prioridad y asignación.Demo en vivo: https://forge-sandy-eta.vercel.app (Vercel + Render + Neon, planes gratuitos; ver docs/deploy-free.md). La API se duerme tras ~15 min sin tráfico: la primera visita puede tardar 30–60 s.
./deploy/deploy.sh # HTTPS + frontend + API + base de datos, y comprobaciones de humo
Abre https://app.forge.localhost:8443, crea una cuenta y recorre el flujo: organización → proyecto → incidencia → asignación → comentarios → cambio de estado. Requiere Docker con Compose v2.
¿Prefieres desarrollar con recarga en caliente? Mira la guía de desarrollo local.
Interfaz clara por defecto y con tema oscuro automático según las preferencias del sistema. Las capturas muestran un espacio de trabajo con datos de ejemplo.
| Inicio de sesión | Panel personal |
|---|---|
| Organización | Incidencias de un proyecto |
| Detalle de incidencia | Vista móvil |
Se regeneran con SCREENSHOTS=1 E2E_BASE_URL=<url> npx playwright test screenshots (desde frontend/). Necesitan la API accesible en http://localhost:8080 (o la URL de E2E_API_URL): el test crea por API usuarios, una organización, proyectos e incidencias de ejemplo con cuentas nuevas, así que se puede lanzar contra una base de datos con datos previos.
flowchart LR
Browser[Navegador] --> UI[Next.js · :3000]
UI -->|Sesión HttpOnly + CSRF| API[Spring Boot · :8080]
API --> DB[(PostgreSQL · :5432)]
Flyway[[Flyway]] -.->|migraciones| DB
| Decisión | Por qué | Coste |
|---|---|---|
Numeración de incidencias con contador por proyecto y bloqueo pesimista, en vez de MAX()+1 | Sin huecos ni duplicados, incluso con altas concurrentes (probado con 12 altas en 6 hilos) | Serializa las altas dentro de un mismo proyecto |
| Sesión HttpOnly + CSRF en vez de JWT en el navegador | Ningún token queda expuesto a JavaScript | Hay que configurar bien origen, cookies y SameSite entre dominios (docs/azure.md) |
| Flyway como única vía de esquema | Cambios versionados, revisables y reproducibles | Nunca se editan migraciones ya aplicadas |
| Una organización ajena se comporta como inexistente (404) | No filtra qué organizaciones existen | Los errores de acceso son menos explícitos |
| Pruebas contra PostgreSQL real (Testcontainers), no solo H2 | Detecta diferencias de SQL y restricciones reales | Requiere Docker para ejecutarlas |
LIKE, sin índice de texto completo: suficiente para el volumen de demostración.El seguimiento va en las issues de GitHub; no se promete ninguna extensión (Redis, WebSockets) sobre esta base.
This is the beginning of the README. Read the rest at the original. Read the full README ↗