Files
labiblioteca/README.md
2025-11-18 21:45:12 +01:00

6.9 KiB

📚 La Biblioteca

Visor de documentos EPUB accesibles desde IPFS

Una aplicación web moderna para explorar y leer libros en formato EPUB almacenados en la red descentralizada IPFS. Desarrollada con React, ofrece una experiencia de lectura fluida con múltiples opciones de personalización y accesibilidad.

React License IPFS

Características

📖 Lectura

  • Visor EPUB integrado con modo de scroll continuo
  • Tabla de contenidos navegable
  • Control de tipografía - ajusta el tamaño de fuente (50% - 200%)
  • Temas de lectura - Claro, Sepia y Oscuro
  • Indicador de progreso - muestra tu avance en tiempo real
  • Navegación intuitiva - botones de anterior/siguiente página

🔍 Exploración

  • Buscador en tiempo real - filtra por título instantáneamente
  • Paginación configurable - 10, 50 o 100 libros por página
  • Catálogo completo - acceso a toda la biblioteca IPFS
  • Selector de Gateway - 9 gateways IPFS optimizados por velocidad

🌐 Compartir y Descargar

  • Enlaces directos - comparte libros específicos con un solo clic
  • Descarga EPUB - guarda libros localmente con su nombre original
  • URLs amigables - enlaces permanentes a través de IPFS
  • Múltiples gateways - resiliencia y velocidad

Accesibilidad

  • WCAG 2.1 AA - cumplimiento de estándares de accesibilidad
  • Navegación por teclado - control completo sin ratón
  • Lectores de pantalla - soporte ARIA completo
  • Skip links - navegación rápida al contenido principal
  • Alto contraste - mejores colores para legibilidad
  • Elementos semánticos - HTML5 semántico correcto

🚀 Inicio Rápido

Prerequisitos

  • Node.js 16 o superior
  • npm o yarn

Instalación

# Clonar el repositorio
git clone https://git.manalejandro.com/ale/labiblioteca.git
cd labiblioteca

# Instalar dependencias
npm install

# Iniciar servidor de desarrollo
npm start

La aplicación se abrirá automáticamente en http://localhost:3000

Compilación para Producción

# Generar build optimizado
npm run build

# La carpeta 'build' contendrá los archivos listos para desplegar

📋 Uso

  1. Al abrir la aplicación, verás el catálogo completo de libros
  2. Usa el buscador para filtrar por título
  3. Ajusta la paginación según tus preferencias
  4. Cambia el gateway IPFS si experimentas lentitud

Leer un Libro

  1. Haz clic en cualquier libro del catálogo
  2. El visor se abrirá con el libro cargado
  3. Usa los controles de la cabecera para:
    • 📥 Descargar el EPUB
    • 🔗 Compartir el enlace directo
    • 📑 Ver la tabla de contenidos
    • ⚙️ Ajustar configuración (tema, tamaño de fuente)
  4. Navega con los botones de anterior/siguiente o scroll

Compartir un Libro

  1. Abre el libro que quieres compartir
  2. Haz clic en el botón de compartir (🔗)
  3. El enlace se copiará automáticamente al portapapeles
  4. Compártelo - cualquiera con el enlace podrá leer el libro

🏗️ Arquitectura del Proyecto

labiblioteca/
├── public/
│   ├── index.html          # HTML principal con parches de accesibilidad
│   └── manifest.json       # Configuración PWA
├── src/
│   ├── components/
│   │   ├── BookList.js     # Lista y búsqueda de libros
│   │   ├── EpubViewer.js   # Visor de EPUB
│   │   ├── ErrorBoundary.js # Captura de errores React
│   │   └── GatewaySelector.js # Selector de gateway IPFS
│   ├── styles/
│   │   ├── BookList.css
│   │   ├── EpubViewer.css
│   │   └── GatewaySelector.css
│   ├── utils/
│   │   └── ipfsParser.js   # Parser del catálogo IPFS
│   ├── App.js              # Componente principal
│   ├── App.css             # Estilos globales
│   ├── index.js            # Punto de entrada
│   └── setupErrorHandler.js # Manejo global de errores
├── package.json
└── README.md

🛠️ Tecnologías Utilizadas

  • React 19.0.0 - Framework de UI
  • epubjs - Renderizado de archivos EPUB
  • react-icons - Iconos de interfaz
  • IPFS - Almacenamiento descentralizado
  • Create React App - Configuración y build

🌍 Gateways IPFS

La aplicación soporta múltiples gateways IPFS para garantizar disponibilidad y velocidad:

  1. EU Orbitor (Europa)
  2. IPFS Orbitor (Global)
  3. IPFS.io (Oficial)
  4. Cloudflare IPFS (CDN)
  5. Dweb.link (Oficial)
  6. Pinata (Pinning service)
  7. 4everland (Web3)
  8. Gateway.pinata.cloud
  9. NFT.storage

🔧 Configuración Avanzada

Cambiar el Catálogo IPFS

Edita src/utils/ipfsParser.js y modifica la constante IPFS_CATALOG_HASH:

const IPFS_CATALOG_HASH = 'QmTuHashDelCatalogo';

Agregar Nuevos Gateways

En src/utils/ipfsParser.js, agrega nuevos gateways al array IPFS_GATEWAYS:

export const IPFS_GATEWAYS = [
  // ... gateways existentes
  { name: 'Mi Gateway', url: 'https://mi-gateway.com' }
];

🐛 Solución de Problemas

Los libros no cargan

  • Prueba cambiando el gateway IPFS
  • Verifica tu conexión a internet
  • Algunos gateways pueden estar temporalmente caídos

Errores en el visor EPUB

  • Los errores de ResizeObserver son normales y están silenciados
  • Si el libro no se renderiza, intenta recargarlo
  • Algunos EPUBs pueden tener formato incompatible

El catálogo está vacío

  • Verifica que el hash del catálogo IPFS sea correcto
  • Prueba con diferentes gateways
  • Revisa la consola del navegador para errores de red

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📄 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

👤 Autor

Ale - git.manalejandro.com

🔗 Enlaces

🙏 Agradecimientos

  • A la comunidad de IPFS por la infraestructura descentralizada
  • A los desarrolladores de Epub.js por el excelente visor
  • A todos los contribuidores de bibliotecas de código abierto utilizadas

Si este proyecto te resulta útil, considera darle una estrella en el repositorio