80981e9063453bd3825b841d0496a87ce758fe87
Hook reutilizable useDragReorder (drag & drop nativo HTML5, sin libreria nueva) usado en dos lugares: ListView (opt-in via onReorder, deshabilitado mientras haya un ordenamiento por columna activo) para el listado de actividades de un proyecto, y el listado de tareas de una actividad. Orden persistido en sort_order (activities y tasks, migracion 012, posiciones siempre 1..N). Fix real encontrado durante las pruebas: sincronizar el estado interno del hook por la REFERENCIA del arreglo de entrada entraba en loop infinito de renders cuando el llamador pasa "algo || []" (un arreglo nuevo en cada render mientras los datos cargan). Corregido para sincronizar por el contenido (ids), no por referencia. Probado en dev con curl (persistencia del orden) y Playwright (arrastrar filas en el navegador, orden visible y guardado correctamente, sin errores de consola tras el fix). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
project.linkedcorp.net
En producción: https://project.linkedcorp.net
Gestión y seguimiento de proyectos y actividades de TI para una empresa de tamaño medio. MVP simple por diseño (menos campos, menos módulos separados) con el modelo de datos preparado para crecer hacia el resto del alcance funcional (riesgos, incidencias, recursos, proveedores, presupuesto, reportes exportables, etc.) sin romper lo construido.
Stack
- Frontend: React + Vite
- Backend: Node.js + Express
- Base de datos: MariaDB
- Deploy: Debian 12 (dos servicios separados — arquetipo B del grupo)
Estructura
project.linkedcorp.net/
├── README.md
├── AGENTS.md
├── SPEC.md
├── API.md
├── BASE_DE_DATOS.md
├── CONFIGURACION.md
├── VERSIONADO.md
├── ESTADO.md
├── frontend/
├── backend/
├── docs/
└── scripts/
Modulos principales (MVP)
- Seguridad (usuarios, roles, auditoría)
- Organización (departamentos, usuarios)
- Proyectos, Actividades y Tareas
- Dashboard, Calendario, Gantt (solo lectura)
- Comentarios, adjuntos, notificaciones in-app
- Configuración (catálogos)
Arranque rapido
Backend
cd backend
npm install
cp .env.example .env # completar con las credenciales reales
npm run dev
Frontend
cd frontend
npm install
npm run dev
Puertos de este proyecto (registrados en PORTS_INVENTORY.md del grupo): frontend 5196,
backend 4019. El frontend escucha en 0.0.0.0 para poder probarlo desde otro equipo/celular en
la misma red.
Variables y configuracion
- Revisar
backend/.env.exampleyCONFIGURACION.md. - Base de datos dev:
project_linkedcorpen192.168.222.20(ya creada).
Documentacion relacionada
AGENTS.md— contexto del proyecto para el asistente de IA (leer primero el orquestador del grupo).SPEC.md— alcance funcional.API.md— contrato de la API.BASE_DE_DATOS.md— modelo de datos.CONFIGURACION.md— variables de entorno y setup local.docs/UI-UX-WINDOWS.md— identidad visual del proyecto (Fluent/Windows 11).ESTADO.md— punto de retoma del proyecto (handoff).
Description
Languages
JavaScript
94.6%
CSS
3.7%
Shell
1.4%
PowerShell
0.2%