EdHub es una plataforma integral de gestión editorial diseñada para editoriales pequeñas y medianas. Centraliza todo el proceso editorial en un único ecosistema, desde la creación de obras hasta la distribución y análisis de resultados.
- 🎯 8 Módulos Especializados: Gestión completa del ciclo editorial
- 🔐 Autenticación y Seguridad: Sistema de autenticación con Row Level Security (RLS)
- 📱 Diseño Responsive: Interfaz adaptable a todos los dispositivos
- 🌓 Modo Oscuro/Claro: Soporte completo para temas personalizables
- 🎨 UI Moderna: Componentes basados en shadcn/ui y Radix UI
- 📊 Dashboard Analytics: Métricas y reportes del negocio editorial
- 🖼️ Gestión de Imágenes: Soporte para portadas, fotos de autores y eventos
- 📦 Control de Stock: Inventario completo con movimientos y alertas
- Next.js 16 (App Router) - Framework React
- React 19 - Biblioteca UI
- TypeScript - Tipado estático
- Tailwind CSS 4 - Estilos utilitarios
- Radix UI - Componentes accesibles
- shadcn/ui - Sistema de componentes
- React Hook Form + Zod - Formularios y validación
- Lucide React - Iconos
- Recharts - Visualización de datos
- Supabase - Backend as a Service
- PostgreSQL - Base de datos relacional
- Row Level Security (RLS) - Seguridad a nivel de fila
- Supabase Storage - Almacenamiento de imágenes
- pnpm - Gestor de paquetes
- ESLint - Linter
- Vercel Analytics - Analytics
edHub/
├── app/ # Next.js App Router
│ ├── globals.css # Estilos globales
│ ├── layout.tsx # Layout raíz
│ ├── page.tsx # Página principal (Dashboard/Login)
│ └── modules/ # Módulos de la aplicación
│ ├── edcore/ # Gestión de Libros
│ ├── edauthor/ # Gestión de Autores
│ ├── edisbn/ # Registro ISBN
│ ├── edprint/ # Gestión de Stock
│ ├── edorders/ # Pedidos de Lotes
│ ├── edevents/ # Agenda Editorial
│ ├── edpromo/ # Promociones
│ └── edanalytics/ # Dashboard Analytics
│
├── components/ # Componentes React
│ ├── ui/ # Componentes UI base (shadcn/ui)
│ ├── dashboard-layout.tsx # Layout principal con sidebar
│ ├── book-card-with-cover.tsx
│ ├── author-card-with-photo.tsx
│ ├── order-card-enhanced.tsx
│ └── ...
│
├── contexts/ # Contextos React
│ └── auth-context.tsx # Contexto de autenticación
│
├── hooks/ # Custom Hooks
│ ├── use-mobile.ts
│ ├── use-theme.ts
│ └── use-toast.ts
│
├── lib/ # Utilidades y configuraciones
│ ├── utils.ts # Utilidades generales
│ └── supabase/ # Clientes Supabase
│ ├── client.ts # Cliente browser
│ ├── server.ts # Cliente server
│ └── storage.ts # Utilidades de storage
│
├── scripts/ # Scripts SQL de migración
│ ├── 001_create_edhub_schema.sql
│ ├── 002_add_image_fields.sql
│ └── 003_add_orders_customer_fields.sql
│
└── public/ # Assets estáticos
Ruta: /modules/edcore
Administración completa de obras editoriales:
- Gestión de libros con estados (draft, editing, design, printing, published)
- Biblioteca visual con tarjetas de libros
- Filtros por estado y género
- Estadísticas rápidas (total, publicados, en imprenta, borradores)
- Soporte para imágenes de portada
Ruta: /modules/edauthor
Gestión de perfiles de autores:
- Perfiles completos con fotos
- Información de contacto y biografía
- Relación con libros publicados
- Agenda de interacciones
Ruta: /modules/edisbn
Asignación y trazabilidad de ISBN:
- Registro de ISBN-10 e ISBN-13
- Soporte para múltiples formatos (digital, físico, audio)
- Estados: registered, active, archived
- Trazabilidad completa
Ruta: /modules/edprint
Control de inventario y stock:
- Control de cantidades (disponible, reservado, dañado)
- Movimientos de stock (entrada, salida, ajuste, daño)
- Umbral de reimpresión configurable
- Reportes de stock detallados
Ruta: /modules/edorders
Gestión de pedidos y ventas:
- Formulario de nuevo pedido
- Múltiples canales: direct, mercado_libre, tienda_digital, whatsapp
- Información completa de cliente (nombre, email, teléfono, dirección)
- Estados: pending, confirmed, shipped, delivered, cancelled
- Seguimiento de pedidos
Ruta: /modules/edevents
Gestión de eventos editoriales:
- Tipos de eventos: book_launch, book_signing, fair, workshop
- Calendario de eventos
- Participantes y autores asociados
- Imágenes de eventos
- Gestión de capacidad y ubicación
Ruta: /modules/edpromo
Campañas de marketing y promociones:
- Tipos: discount, pack, bundle, free_shipping
- Fechas de inicio y fin
- Asociación con libros específicos
- Porcentajes de descuento configurables
Ruta: /modules/edanalytics
Reportes y métricas del negocio:
- Visualización de datos con gráficos
- Métricas clave del negocio editorial
- Análisis de rendimiento
- Reportes personalizables
- Node.js 18+
- pnpm (o npm/yarn)
- Cuenta de Supabase
- Clonar el repositorio
git clone https://github.com/mirkoemirbc/edHub.git
cd edHub- Instalar dependencias
pnpm install- Configurar variables de entorno
Crea un archivo .env.local en la raíz del proyecto:
NEXT_PUBLIC_SUPABASE_URL=tu_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=tu_supabase_anon_key- Configurar la base de datos
Ejecuta los scripts SQL en tu proyecto de Supabase en el siguiente orden:
scripts/001_create_edhub_schema.sql- Esquema basescripts/002_add_image_fields.sql- Campos de imágenesscripts/003_add_orders_customer_fields.sql- Campos de cliente en pedidos
- Ejecutar el servidor de desarrollo
pnpm devAbre http://localhost:3000 en tu navegador.
Actualmente el sistema usa autenticación mock. Puedes iniciar sesión con cualquier email y contraseña. La autenticación real con Supabase está pendiente de implementación.
Una vez autenticado, accederás al dashboard principal donde encontrarás los 8 módulos del sistema. Cada módulo tiene su propia sección con funcionalidades específicas.
Los módulos están preparados para trabajar con Supabase, aunque actualmente algunos usan datos mock. La conexión real con la base de datos está en desarrollo.
- editorial - Información de la editorial/sello
- authors - Autores
- books - Libros/Obras
- isbn_registry - Registro de ISBN
- stock - Inventario
- stock_movements - Movimientos de stock
- orders - Pedidos
- order_items - Items de pedidos
- events - Eventos
- event_participants - Participantes de eventos
- promotions - Promociones
- promotion_books - Relación promociones-libros
El sistema utiliza Row Level Security (RLS) de Supabase para garantizar la seguridad de los datos. Las políticas básicas están configuradas para el MVP, pero deben ser más restrictivas en producción.
# Desarrollo
pnpm dev # Inicia el servidor de desarrollo
# Producción
pnpm build # Crea el build de producción
pnpm start # Inicia el servidor de producción
# Calidad de código
pnpm lint # Ejecuta el linterEl proyecto utiliza:
- shadcn/ui como sistema de componentes base
- Tailwind CSS para estilos
- Radix UI para componentes accesibles
- Soporte completo para dark/light mode
- Estructura base del proyecto
- 8 módulos principales implementados
- Sistema de autenticación mock
- Layout y navegación
- Componentes UI base (40+ componentes)
- Esquema de base de datos
- Scripts de migración SQL
- Soporte para imágenes
- Sistema de temas (dark/light)
- Componentes especializados
- Migración de autenticación mock a Supabase Auth
- Implementación de políticas RLS más restrictivas
- Conexión real con Supabase (actualmente usando datos mock)
- Formularios funcionales con validación completa
- Upload de imágenes a Supabase Storage
- Integración de analytics real
- Testing (unit tests, integration tests)
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 some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto es privado. Todos los derechos reservados.
mirkoemirbc
- GitHub: @mirkoemirbc
- Next.js - Framework React
- Supabase - Backend as a Service
- shadcn/ui - Sistema de componentes
- Radix UI - Componentes accesibles
- Tailwind CSS - Framework CSS
EdHub - Suite Editorial Centralizada | Versión 0.1.0 (MVP)