6.6 KiB
Dashboard de Proyectos Dolibarr
Aplicación web moderna para visualizar y gestionar proyectos de Dolibarr con una interfaz intuitiva y profesional.
✨ Características
- 📊 Vista de proyectos en Grid y Lista
- 🎨 Modo oscuro completo
- 📱 Diseño responsive
- 🔍 Búsqueda en tiempo real
- 📈 Estadísticas y KPIs
- 🔐 API segura (API key protegida en el backend)
- ⚡ Skeletons loading para mejor UX
- 📄 Página de detalle completa para cada proyecto
- 🔑 Login con credenciales de Dolibarr
- ✅ Estados: Borrador, Activo y Cerrado
🚀 Getting Started
Requisitos previos
- Node.js 18+
- Docker (para Dolibarr + MariaDB)
- Dolibarr con API REST habilitada
Instalación
- Clonar el repositorio
git clone <tu-repo>
cd trello_fake
- Instalar dependencias
npm install
- Levantar Dolibarr con Docker
docker-compose up -d
Abre Dolibarr en http://localhost:8200 y completa el asistente inicial si es la primera vez.
Credenciales de instalación:
- Admin: admin / p4ssw0rd
- DB: host=mariadb, db=dolibarr, user=dolibarr, pass=dolibarr_password
- Habilitar API REST y generar API Key
En Dolibarr:
- Configuración > Módulos/Aplicaciones > API REST
- Configuración > API REST > Generar API Key
- Configurar variables de entorno
Crea un archivo .env.local en la raíz:
# API de Dolibarr (segura - solo servidor)
DOLIBARR_API_URL=http://localhost:8200/api/index.php
DOLIBARR_API_KEY=tu-api-key-aqui
# Variables públicas
NEXT_PUBLIC_DOLIBARR_USER_ID=2
# Compatibilidad (deprecated)
NEXT_PUBLIC_API_URL=http://localhost:8200/api/index.php
NEXT_PUBLIC_DOLIBARR_API_KEY=tu-api-key-aqui
- Iniciar el servidor de desarrollo
npm run dev
Abre http://localhost:3000 en tu navegador. Inicia sesión con tus credenciales de Dolibarr.
📊 Datos de Prueba
Si no tienes proyectos en tu Dolibarr, puedes generar datos de prueba:
# Con el servidor corriendo (npm run dev)
npm run seed
Este comando elimina los proyectos existentes y crea 14 proyectos con tareas:
- Estados: Borrador, Activo y Cerrado
- Progreso y presupuestos variados
- Tareas asociadas por proyecto
Ver más detalles en scripts/README.md
🏗️ Estructura del Proyecto
/
├── app/ # Next.js App Router
│ ├── api/dolibarr/[...path]/ # API Route proxy (protege la API key)
│ ├── proyectos/[id]/ # Página de detalle de proyecto
│ ├── layout.tsx # Layout principal
│ └── page.tsx # Página de inicio
├── components/
│ ├── dashboard/ # Componentes del dashboard
│ ├── ui/ # Componentes shadcn/ui
│ ├── theme-provider.tsx # Provider de tema
│ └── theme-toggle.tsx # Toggle de modo oscuro
├── lib/ # Utilidades y servicios
│ ├── dolibarrClient.ts # Cliente de API
│ ├── projectsService.ts # Servicio de proyectos
│ ├── tasksService.ts # Servicio de tareas
│ ├── usersService.ts # Servicio de usuarios
│ └── authService.ts # Login y verificación de token
├── types/ # Definiciones TypeScript
└── scripts/ # Scripts de utilidad
🧠 Arquitectura (resumen)
- UI (Next.js): muestra proyectos y tareas.
- Proxy API (
/api/dolibarr/...): protege la API key y reenvía llamadas a Dolibarr. - Dolibarr + MariaDB: fuente real de datos.
- Auth: login contra Dolibarr, token guardado en localStorage y cookie para el middleware.
🛠️ Scripts Disponibles
npm run dev # Servidor de desarrollo
npm run build # Build de producción
npm run start # Servidor de producción
npm run lint # Ejecutar ESLint
npm run seed # Reset + crear proyectos y tareas de prueba
🎨 Tecnologías
- Framework: Next.js 16 (App Router)
- Lenguaje: TypeScript 5
- UI: shadcn/ui + Radix UI
- Estilos: Tailwind CSS
- Iconos: Lucide React
- Tema: next-themes
- API: Dolibarr REST API
🔐 Seguridad
La aplicación implementa las siguientes medidas de seguridad:
- ✅ API key protegida en el servidor (NO expuesta al cliente)
- ✅ API Route proxy para todas las llamadas a Dolibarr
- ✅ Variables de entorno seguras
- ✅ Validación de datos de entrada
- ✅ Validación de token contra Dolibarr en cada request
- ✅ Sin caché de datos en servidor (evita datos antiguos)
✅ Estados de Proyecto
- 0 - Borrador
- 1 - Activo
- 2 - Cerrado
📖 Documentación Adicional
- AGENTS.md - Guías para agentes de IA y arquitectura del proyecto
- QUICK_START.md - Guía rápida para levantar y usar el proyecto
- scripts/README.md - Documentación de scripts de utilidad
🐛 Troubleshooting
Error: "Cannot connect to Dolibarr"
- Verifica que Dolibarr esté corriendo
- Revisa la URL en
.env.local - Comprueba que la API esté habilitada en Dolibarr
Me pide login constantemente / No veo datos
- Si Dolibarr está apagado, el middleware fuerza login y no hay datos
- Asegúrate de tener Docker levantado y Dolibarr accesible en
http://localhost:8200
No se muestran proyectos
- Ejecuta
npm run seedpara crear datos de prueba - Verifica las credenciales de la API
- Revisa la consola del navegador para errores
Modo oscuro no funciona
- Limpia la caché del navegador
- Verifica que ThemeProvider esté envolviendo la app
📝 Credenciales de Dolibarr (Demo)
username: admin password: p4ssw0rd
🤝 Contribuir
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add: AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
📄 Licencia
Este proyecto es privado y de uso interno.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
- Dolibarr API Documentation - Dolibarr REST API reference.
