Files
project.linkedcorp.net/AGENTS.md
T
Milton Gonzalez 1d22adc42e chore: estructura inicial del MVP
Backend (Express + MariaDB) y frontend (React + Vite, identidad Fluent/Windows) con el
nucleo funcional: seguridad, organizacion, proyectos, actividades, subtareas, dependencias,
dashboard, calendario, gantt, comentarios, adjuntos, notificaciones in-app y catalogos.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-03 08:37:58 -05:00

6.8 KiB
Raw Blame History

AGENTS.md - project.linkedcorp.net

⚠️ ANTES DE ACTUAR, lee el orquestador del grupo: /home/mgonzalez/desarrollo/project-md-templates/leeme_primero.txt Reglas globales (infra, secretos, UI/UX, Android, Git, versionado). Este archivo es solo el contexto especifico del proyecto.

⛔ AISLAMIENTO: SOLO ESTE PROYECTO

Regla dura del grupo (detalle en el orquestador, seccion "REGLA DE AISLAMIENTO ENTRE PROYECTOS"):

  • Se trabaja SOLO sobre este proyecto. Los otros proyectos del grupo NO se tocan NI se leen.
  • Leer otro proyecto: unicamente si el usuario lo pide TEXTUALMENTE en ese pedido.
  • Modificar otro proyecto: NUNCA, ni aunque el usuario lo nombre.
  • Recursos compartidos (puertos, NPM, systemd, BD, DNS): verificar en la fuente real que esten libres antes de ocuparlos; solo crear objetos nuevos de ESTE proyecto.

Proposito

Contexto especifico del proyecto para el asistente de IA. No repite las reglas globales del grupo, que estan en el orquestador leeme_primero.txt.

Identidad del proyecto

  • Nombre: project.linkedcorp.net
  • Tipo: fullstack (gestión y seguimiento de proyectos/actividades TI)
  • Estado: development
  • Ruta raiz: /home/mgonzalez/desarrollo/project.linkedcorp.net

Stack real del proyecto

Frontend

  • React + Vite
  • UI: CSS propio por tokens (sin Tailwind) siguiendo la identidad docs/UI-UX-WINDOWS.md (Fluent/Windows 11)
  • Iconos: lucide-react

Backend

  • Node.js + Express
  • API base: /api

Base de datos

  • Motor: MariaDB
  • Base principal: project_linkedcorp
  • Host dev: 192.168.222.20 / Host prod: 192.168.222.32 (NO mezclar)
  • La base ya existe: sí (creada en dev el 2026-09-03 con crear-db-dev.sh)

Arquetipo de despliegue

B — Dos servicios separados (frontend y backend como procesos independientes).

  • systemd: project-linkedcorp-frontend y project-linkedcorp-backend (a crear en el primer deploy).
  • NPM: Proxy Host al frontend + Custom Location /api al backend.
  • Puertos (registrados en PORTS_INVENTORY.md del grupo): frontend 5196, backend 4019.

Identidad UI/UX — DECISIÓN DE ESTE PROYECTO (no es la identidad estándar del grupo)

Este proyecto usa UI-UX-WINDOWS.md / UI-UX-WINDOWS.html (Fluent Design / Windows 11: NavigationView, clic derecho, Master-Detail, ContentDialog/InfoBar/Flyout/Toast) en vez de UI-UX-LINKEDCORP.md (identidad web estándar del grupo). Fue decisión explícita del usuario al arrancar el proyecto. Copia ajustada en docs/UI-UX-WINDOWS.md.

Adaptación web (no es una app empaquetada, corre en pestaña de navegador):

  • SÍ: tokens de color, tipografía, NavigationView, ListView+clic derecho, Master-Detail, ContentDialog, InfoBar, Toast, Flyout, ComboBox/DatePicker propios, Expander, Treeview.
  • NO: barra de título falsa con minimizar/maximizar/cerrar (no hay ventana de SO que controlar).
  • Igual obligatorio: idioma es-EC/en-US + tema claro/oscuro + apariencia de botones, todo persistido.
  • Set de íconos: Lucide (única opción usada en este proyecto).

Estructura acordada

  • frontend/
  • backend/
  • docs/

Modulos principales (MVP — ver SPEC.md para el detalle y lo diferido a fase 2)

  • Seguridad (usuarios, roles fijos, sesión, auditoría)
  • Organización (departamentos con sub-áreas, usuarios)
  • Proyectos (con miembros)
  • Actividades + Subtareas + dependencias simples
  • Dashboard (KPIs)
  • Calendario y Gantt de solo lectura
  • Comentarios y adjuntos
  • Notificaciones in-app
  • Configuración (catálogos: estados, prioridades, tipos de proyecto)

Restricciones tecnicas

  • No romper estructura existente.
  • Mantener frontend y backend separados (arquetipo B).
  • Variables de entorno, nunca secretos en código.
  • Empresa asumida como única (single-company): no hay tabla companies en el MVP.
  • Permisos por rol codificados en backend (backend/src/middleware/auth.js), no configurables por UI en el MVP — ver tabla de roles en SPEC.md.

Arquitectura esperada

Backend

  • routes -> controller -> service -> repository -> db
  • Un directorio por módulo en backend/src/modules/<modulo>/

Frontend

  • src/components (UI base Windows: NavigationView, ContentDialog, InfoBar, Toast, Flyout, ListView, ComboBox, DatePicker, Treeview, Field, Button)
  • src/pages (Login, Dashboard, Organizacion, Proyectos, Configuracion)
  • src/services (cliente API por módulo)
  • src/context (auth, ui: tema/idioma/dialog/toast)
  • src/i18n

Seguridad (proyecto con auth/usuarios)

  • Permisos validados SIEMPRE en el backend, nunca solo en el frontend.
  • Sin autosuscripción: el administrador crea los usuarios.
  • 401 → el frontend limpia sesión, redirige a login y muestra aviso (ContentDialog).
  • Cierre de sesión por expiración de JWT.
  • Auditoría en BD (audit_log): usuario, acción, entidad, fecha/hora, detalle.
  • Credenciales/secretos solo en .env (nunca en código); .env.example sí se versiona.
  • Cifrado: bcrypt para contraseñas.
  • Revalidar is_active del usuario en cada request (un JWT firmado no basta).
  • SQL siempre parametrizado. Uploads: validar MIME/tamaño, ruta de archivo generada por el servidor.

Regla de UX para pantallas

  • No mezclar listado y formulario de creación en la vista inicial de un módulo.
  • Primero el listado; botón "Nuevo" abre creación.
  • Detalle abre en modo lectura; "Editar" habilita campos; "Cancelar" vuelve a lectura sin guardar; guardar solo si hubo cambios reales.
  • Secciones de una misma entidad (Proyecto: Info/Actividades/Gantt/Calendario/Comentarios/Documentos) van en pestañas reales, nunca apiladas ni navegando a otra pantalla.

Flujos criticos

  1. Login → Dashboard con KPIs del usuario.
  2. Crear proyecto → asignar miembros → crear actividades → crear subtareas → avance se recalcula solo.
  3. Actividad vencida o por vencer → notificación in-app al responsable.

Entorno operativo

  • Desarrollo: npm run dev en backend/ (puerto 4019) y frontend/ (puerto 5196, proxy /api).
  • Producción: pendiente (deploy explícito posterior, ver PRODUCCION.md cuando se cree).
  • Docker por defecto: no.

Regla de versionado

  • Versionado X.Y.Z (ver VERSIONADO.md).
  • Antes de producción, validar si corresponde subir versión.
  • Toda versión nueva se refleja en VERSION y CHANGELOG.md.

Documentacion relacionada

  • README.md, SPEC.md, BASE_DE_DATOS.md, CONFIGURACION.md, API.md, VERSIONADO.md
  • docs/UI-UX-WINDOWS.md, docs/SEGURIDAD-Y-CALIDAD.md
  • ESTADO.md (handoff — leer siempre al retomar el proyecto)

Pendientes para quedar listo

  • Fase 2: riesgos/incidencias como módulos propios, solicitudes formales, recursos/proveedores, presupuesto y costos, registro de horas detallado, reportes exportables (PDF/Excel/CSV), permisos configurables por módulo×acción, notificaciones por email.
  • Deploy a producción (servidor .3, BD .32, systemd, NPM) — confirmar con el usuario cuando el MVP esté validado en local.