# 📊 Análisis Tecnológico Completo del Proyecto **Proyecto:** EMERGES TES - Protocolo Rápido **Fecha de Análisis:** 2024-12-19 **Ruta del Proyecto:** `/home/planetazuzu/protocolo-r-pido` --- ## 1. 🎯 TECNOLOGÍAS PRINCIPALES ### 1.1 Lenguaje de Programación - **TypeScript 5.8.3** (lenguaje principal) - Configuración: `tsconfig.json`, `tsconfig.app.json`, `tsconfig.node.json` - Modo: ESNext modules, bundler mode - JSX: `react-jsx` - Target: ES2020 (app), ES2022 (node) ### 1.2 Framework Frontend - **React 18.3.1** (framework principal) - React DOM 18.3.1 - React Router DOM 6.30.1 (navegación SPA) - React Hook Form 7.61.1 (formularios) - React Markdown 10.1.0 (renderizado Markdown) ### 1.3 Herramientas de Build y Empaquetado - **Vite 5.4.19** (build tool principal) - Plugin: `@vitejs/plugin-react-swc` 3.11.0 (compilación rápida con SWC) - Code splitting configurado (manual chunks) - Soporte para PWA - Configuración para GitHub Pages ### 1.4 Estilos y UI - **Tailwind CSS 3.4.17** (framework CSS) - Plugins: - `tailwindcss-animate` 1.0.7 - `@tailwindcss/typography` 0.5.16 - PostCSS 8.5.6 - Autoprefixer 10.4.21 - **shadcn/ui** (sistema de componentes) - Basado en Radix UI - Componentes accesibles y personalizables - 40+ componentes UI implementados - **Radix UI** (primitivos UI accesibles) - 30+ componentes @radix-ui/* ### 1.5 Procesamiento de Contenido - **Markdown Processing:** - `react-markdown` 10.1.0 - `remark-gfm` 4.0.1 (GitHub Flavored Markdown) - `remark-frontmatter` 5.0.0 - `rehype-highlight` 7.0.2 (syntax highlighting) - `rehype-raw` 7.0.0 - `rehype-sanitize` 6.0.0 - `unified` 11.0.5 ### 1.6 Gestión de Estado y Datos - **TanStack Query 5.83.0** (React Query) - Gestión de estado del servidor - Caché y sincronización - **LocalStorage/SessionStorage** - Favoritos (localStorage) - Historial de búsqueda (sessionStorage) - Configuración de tema ### 1.7 PWA (Progressive Web App) - **Service Worker** (`public/sw.js`) - Estrategia: Cache First - Versionado de caché - Actualizaciones automáticas - **Web App Manifest** (`public/manifest.json`) - Configuración PWA completa - Iconos y temas ### 1.8 Utilidades y Librerías Clave - **Validación:** Zod 3.25.76 - **Fechas:** date-fns 3.6.0 - **Iconos:** lucide-react 0.462.0 - **Temas:** next-themes 0.3.0 - **Notificaciones:** sonner 1.7.4 - **Gráficos:** recharts 2.15.4 - **Carousel:** embla-carousel-react 8.6.0 - **Comandos:** cmdk 1.1.1 - **Utilidades CSS:** clsx 2.1.1, tailwind-merge 2.6.0 --- ## 2. 🏗️ ESTRUCTURA DEL PROYECTO ### 2.1 Tipo de Arquitectura **SPA (Single Page Application)** - Arquitectura: Frontend monolítico - Routing: Client-side (React Router) - Build: Estático (Vite) - Despliegue: Archivos estáticos en `dist/` ### 2.2 Carpetas Principales ``` protocolo-r-pido/ ├── .github/ # GitHub Actions workflows │ └── workflows/ │ └── deploy.yml # Auto-deploy a servidor ├── public/ # Archivos estáticos públicos │ ├── assets/ # Imágenes e infografías │ │ └── infografias/ # Imágenes organizadas por bloque │ ├── manual/ # Archivos Markdown del manual (78 archivos) │ ├── manifest.json # PWA manifest │ ├── sw.js # Service Worker │ ├── favicon.svg # Favicon │ └── robots.txt # SEO ├── src/ # Código fuente principal │ ├── components/ # Componentes React │ │ ├── content/ # MarkdownViewer │ │ ├── drugs/ # Componentes de fármacos │ │ ├── layout/ # Header, Footer, Navigation │ │ ├── procedures/ # Protocolos │ │ ├── tools/ # Calculadoras médicas │ │ └── ui/ # Componentes shadcn/ui (40+) │ ├── data/ # Datos estáticos TypeScript │ │ ├── drugs.ts # Vademécum │ │ ├── procedures.ts # Protocolos │ │ ├── manual-index.ts # Índice del manual (2500+ líneas) │ │ └── image-registry.ts # Registry de imágenes │ ├── hooks/ # Custom React hooks │ │ ├── useFavorites.ts │ │ ├── usePWAInstall.ts │ │ ├── useServiceWorker.ts │ │ └── useSearchHistory.ts │ ├── lib/ # Utilidades │ │ └── utils.ts # Funciones helper │ ├── pages/ # Páginas principales (20+) │ ├── utils/ # Utilidades específicas │ ├── App.tsx # Componente raíz │ ├── main.tsx # Entry point │ └── index.css # Estilos globales ├── scripts/ # Scripts Python y shell │ ├── verificar-manual.ts # Verificación TypeScript │ └── *.py # Scripts de organización ├── docs/ # Documentación ├── _BACKUP_MD/ # Backups (203 archivos) ├── imagenes-pendientes/ # Imágenes pendientes (60 archivos) └── [Archivos de configuración] ``` ### 2.3 Configuraciones Detectadas **Build & Development:** - `vite.config.ts` - Configuración Vite (code splitting, aliases, PWA) - `tsconfig.json` - TypeScript base - `tsconfig.app.json` - TypeScript para app - `tsconfig.node.json` - TypeScript para Node (configs) **Estilos:** - `tailwind.config.ts` - Configuración Tailwind (tema, colores, animaciones) - `postcss.config.js` - PostCSS (Tailwind + Autoprefixer) **Linting:** - `eslint.config.js` - ESLint 9.32.0 (flat config) - `eslint-plugin-react-hooks` 5.2.0 - `eslint-plugin-react-refresh` 0.4.20 - `typescript-eslint` 8.38.0 **Deployment:** - `ecosystem.config.js` - PM2 (puerto 8607) - `deploy.sh` - Script de despliegue - `webhook-deploy.sh` - Webhook handler - `.github/workflows/deploy.yml` - GitHub Actions - `vercel.json` - Configuración Vercel - `netlify.toml` - Configuración Netlify - `nginx.conf.example` - Ejemplo Nginx - `public/_redirects` - Netlify redirects - `public/.htaccess` - Apache config **PWA:** - `public/manifest.json` - Web App Manifest - `public/sw.js` - Service Worker - `vite-plugin-manifest.js` - Plugin personalizado **UI Components:** - `components.json` - Configuración shadcn/ui --- ## 3. 📦 DEPENDENCIAS ### 3.1 Gestión de Dependencias - **Sistema:** npm (Node Package Manager) - **Archivo:** `package.json` - **Type:** `module` (ESM) - **Node.js:** Requiere 18+ ### 3.2 Dependencias de Producción (75 paquetes) **Core:** - react ^18.3.1 - react-dom ^18.3.1 - react-router-dom ^6.30.1 **UI Framework:** - @radix-ui/* (30+ componentes) - tailwindcss ^3.4.17 - tailwindcss-animate ^1.0.7 - @tailwindcss/typography ^0.5.16 **Markdown:** - react-markdown ^10.1.0 - remark-gfm ^4.0.1 - remark-frontmatter ^5.0.0 - rehype-highlight ^7.0.2 - rehype-raw ^7.0.0 - rehype-sanitize ^6.0.0 - unified ^11.0.5 **State & Data:** - @tanstack/react-query ^5.83.0 - react-hook-form ^7.61.1 - zod ^3.25.76 **Utilities:** - date-fns ^3.6.0 - lucide-react ^0.462.0 - next-themes ^0.3.0 - sonner ^1.7.4 - clsx ^2.1.1 - tailwind-merge ^2.6.0 **Other:** - recharts ^2.15.4 - embla-carousel-react ^8.6.0 - cmdk ^1.1.1 - vaul ^0.9.9 ### 3.3 Dependencias de Desarrollo (15 paquetes) **Build Tools:** - vite ^5.4.19 - @vitejs/plugin-react-swc ^3.11.0 - typescript ^5.8.3 **Linting:** - eslint ^9.32.0 - @eslint/js ^9.32.0 - typescript-eslint ^8.38.0 - eslint-plugin-react-hooks ^5.2.0 - eslint-plugin-react-refresh ^0.4.20 **CSS Processing:** - tailwindcss ^3.4.17 - postcss ^8.5.6 - autoprefixer ^10.4.21 **Type Definitions:** - @types/node ^22.16.5 - @types/react ^18.3.23 - @types/react-dom ^18.3.7 **Utilities:** - tsx ^4.21.0 (TypeScript execution) - raw-loader ^4.0.2 - globals ^15.15.0 ### 3.4 Versiones de Herramientas - **Node.js:** 18+ (recomendado) - **npm:** Compatible con Node 18+ - **TypeScript:** 5.8.3 - **React:** 18.3.1 - **Vite:** 5.4.19 --- ## 4. 🛠️ ENTORNO DE DESARROLLO ### 4.1 Archivos de Configuración de IDE **VSCode:** - `.vscode/extensions.json` (si existe) - Configuración TypeScript en `tsconfig.json` **Otros:** - `.idea/` (ignorado en .gitignore) - `.DS_Store` (ignorado) ### 4.2 Scripts de Ejecución **package.json scripts:** ```json { "dev": "vite", // Desarrollo (puerto 8096) "build": "vite build", // Build producción "build:dev": "vite build --mode development", "build:github": "GITHUB_PAGES=true ...", // Build para GitHub Pages "build:production": "NODE_ENV=production vite build", "preview": "vite preview --host", // Preview build "start:production": "npx serve -s dist -l 8607", // Servir producción "lint": "eslint .", // Linter "verify:manual": "tsx scripts/verificar-manual.ts" // Verificación } ``` **Scripts Shell:** - `deploy.sh` - Deploy completo (git pull + build + PM2) - `webhook-deploy.sh` - Handler webhook - `servir-local.sh` - Servir localmente ### 4.3 Variables de Entorno **Archivos:** - `.env` (ignorado, no existe en repo) - `.env.local` (ignorado) - `.env.production` (ignorado) - `.env.development` (ignorado) - `env.example` (ejemplo, existe) **Variables usadas:** - `GITHUB_PAGES` - Para builds de GitHub Pages - `GITHUB_REPOSITORY_NAME` - Nombre del repo - `NODE_ENV` - Entorno (development/production) - `BASE_URL` - Base path dinámico (Vite) ### 4.4 Configuración de Desarrollo **Puertos:** - Desarrollo: `8096` (vite.config.ts) - Preview: `4173` (Vite default) - Producción: `8607` (ecosystem.config.js, package.json) **Hot Reload:** - ✅ Habilitado en desarrollo (Vite HMR) - ✅ Fast Refresh (React) **Code Splitting:** - ✅ Configurado en `vite.config.ts` - ✅ Lazy loading de páginas (React.lazy) - ✅ Manual chunks por librería --- ## 5. 📁 ESTRUCTURA DE ARCHIVOS ESPECÍFICA ### 5.1 Archivos de Configuración Raíz ``` ├── package.json # Dependencias y scripts ├── vite.config.ts # Configuración Vite ├── tsconfig.json # TypeScript base ├── tsconfig.app.json # TypeScript app ├── tsconfig.node.json # TypeScript node ├── tailwind.config.ts # Tailwind CSS ├── postcss.config.js # PostCSS ├── eslint.config.js # ESLint ├── components.json # shadcn/ui config ├── ecosystem.config.js # PM2 config ├── deploy.sh # Script deploy ├── webhook-deploy.sh # Webhook handler ├── vercel.json # Vercel config ├── netlify.toml # Netlify config ├── nginx.conf.example # Nginx example ├── .gitignore # Git ignore └── README.md # Documentación ``` ### 5.2 Contenido Estático **Markdown Manual:** - `public/manual/` - 78 archivos .md organizados por bloques - `MANUAL_TES_DIGITAL/` - 110 archivos .md (backup/alternativo) **Imágenes:** - `public/assets/infografias/` - 46+ imágenes PNG/SVG organizadas - `imagenes-pendientes/` - 60 imágenes pendientes de organizar **Otros:** - `_BACKUP_MD/` - 203 archivos de backup (129 .md, 62 .docx, 7 .py) ### 5.3 Scripts y Utilidades **Python Scripts:** - `analisis_profundo_contenido.py` - `buscar_multimedia_exhaustivo.py` - `buscar_multimedia_faltante.py` - `copiar_archivos_manual.py` - `generar_documento_word.py` - `generar_indice_app.py` - `generar_reportes_app.py` - `mejorar_reporte_1.py` - `scripts/*.py` - Scripts de organización **TypeScript Scripts:** - `scripts/verificar-manual.ts` - Verificación de manual **Shell Scripts:** - `deploy.sh` - Deploy - `webhook-deploy.sh` - Webhook - `servir-local.sh` - Servir local - `reorganizar_proyecto.sh` - Reorganización --- ## 6. 🔍 CARACTERÍSTICAS TÉCNICAS DETECTADAS ### 6.1 Arquitectura de Código - ✅ **Component-based:** React components - ✅ **Type-safe:** TypeScript en todo el código - ✅ **Modular:** Separación clara de concerns - ✅ **Lazy Loading:** React.lazy para páginas - ✅ **Code Splitting:** Manual chunks en Vite ### 6.2 PWA Features - ✅ Service Worker con versionado - ✅ Web App Manifest completo - ✅ Offline-first strategy - ✅ Install banner - ✅ Update notifications ### 6.3 Performance Optimizations - ✅ Code splitting (manual chunks) - ✅ Lazy loading de páginas - ✅ Image lazy loading - ✅ Memoization (React.memo, useMemo, useCallback) - ✅ Optimización de INP (Interaction to Next Paint) ### 6.4 SEO y Accesibilidad - ✅ Meta tags en index.html - ✅ robots.txt - ✅ Semantic HTML - ✅ ARIA labels (Radix UI) - ✅ Dark mode support --- ## 7. 📊 ESTADÍSTICAS DEL PROYECTO ### 7.1 Archivos por Tipo - **TypeScript/TSX:** ~136 archivos en `src/` - **Markdown:** 78 archivos en `public/manual/` + 110 en backup - **Imágenes:** 46+ en `public/assets/` + 60 pendientes - **Componentes UI:** 40+ componentes shadcn/ui - **Páginas:** 20+ páginas React - **Hooks:** 4 custom hooks - **Data Files:** 12 archivos TypeScript de datos ### 7.2 Líneas de Código (estimado) - `src/data/manual-index.ts`: 2500+ líneas - `src/App.tsx`: ~130 líneas - `vite.config.ts`: ~168 líneas - Total TypeScript/TSX: ~15,000+ líneas (estimado) ### 7.3 Dependencias - **Producción:** 75 paquetes - **Desarrollo:** 15 paquetes - **Total:** 90 paquetes npm --- ## 8. 🚀 DESPLIEGUE Y CI/CD ### 8.1 Plataformas de Despliegue Configuradas 1. **Servidor Propio (PM2)** - Puerto: 8607 - Script: `deploy.sh` - Config: `ecosystem.config.js` 2. **GitHub Actions** - Workflow: `.github/workflows/deploy.yml` - Auto-deploy en push a main 3. **Vercel** - Config: `vercel.json` - SPA routing configurado 4. **Netlify** - Config: `netlify.toml` - Redirects: `public/_redirects` 5. **GitHub Pages** - Build script: `build:github` - Base path dinámico 6. **Apache** - Config: `public/.htaccess` - SPA routing 7. **Nginx** - Example: `nginx.conf.example` - Reverse proxy ### 8.2 Estrategias de Despliegue - ✅ **Static Build:** `dist/` con archivos estáticos - ✅ **SPA Routing:** Configurado para todas las plataformas - ✅ **Auto-deploy:** GitHub Actions - ✅ **Manual Deploy:** Scripts shell --- ## 9. 📝 DOCUMENTACIÓN ### 9.1 Archivos de Documentación (40+ archivos .md) **Despliegue:** - `DEPLOYMENT_SERVER.md` - `DEPLOYMENT_GITHUB.md` - `VERCEL_DEPLOYMENT.md` - `RESUMEN_DEPLOY_8607.md` **PWA:** - `VERIFICACION_PWA.md` - `TEST_PWA.md` - `CHECKLIST_PWA_COMPLETA.md` - `GUIA_DEBUG_PWA_INSTALL.md` - `RESUMEN_PWA_INSTALACION.md` **Contenido:** - `FASE_1_FALTANTE_DETALLADO.md` - `ANALISIS_COMPLETO_FALTANTE.md` - `SISTEMA_MEDIOS_VISUALES.md` - `PLAN_ESTRUCTURA_PSIQUIATRIA.md` **Otros:** - `README.md` - `ESTADO_FUNCIONALIDADES.md` - `SPA_ROUTING_CONFIG.md` - Y muchos más... --- ## 10. ✅ RESUMEN EJECUTIVO ### Stack Tecnológico Principal ``` Frontend: React 18 + TypeScript 5.8 Build: Vite 5.4 Styling: Tailwind CSS 3.4 + shadcn/ui Routing: React Router 6.3 State: TanStack Query 5.8 + LocalStorage PWA: Service Worker + Manifest Markdown: react-markdown + remark/rehype Deploy: PM2 (puerto 8607) + GitHub Actions ``` ### Tipo de Proyecto - **Aplicación:** SPA (Single Page Application) - **Arquitectura:** Frontend monolítico - **Build:** Estático (archivos estáticos) - **Target:** PWA offline-first - **Uso:** Médico/emergencias (crítico) ### Puntos Clave para Limpieza 1. **Backups:** `_BACKUP_MD/` (203 archivos) - considerar mover/eliminar 2. **Imágenes pendientes:** `imagenes-pendientes/` (60 archivos) 3. **Documentación:** 40+ archivos .md (algunos pueden consolidarse) 4. **Scripts Python:** 10+ scripts (algunos pueden estar obsoletos) 5. **Configuraciones múltiples:** 7 plataformas de deploy (mantener solo las usadas) --- **Análisis completado:** 2024-12-19 **Próximo paso:** Identificar archivos obsoletos y redundantes para limpieza