Skip to main content

Fase 4: Final Optimization

MongoDB Indexing

// Colección activities
db.activities.createIndex({ type: 1, isActive: 1 });

// Colección participants
db.participants.createIndex({ userId: 1 });

// Colección activitycompletions
db.activitycompletions.createIndex({ participantId: 1, date: -1 });

// Colección feedbacks
db.feedbacks.createIndex({ serial: -1 });
db.feedbacks.createIndex({ deleted: 1 });

HTTP Caching

EstrategiaImplementación
React Query staleTime30s para consultas de ranking y actividad diaria
Caché de permisosPermissionCacheService con TTL configurable
Refresh bajo demandaBotón Refresh en tablas con recarga controlada

Bundling and Bundle Reduction

Web (vibra-web)

  • Build estático (output: 'export' en next.config.mjs)
  • Imágenes sin optimización forzada de Next.js
  • Tailwind purge automático en producción

Mobile (vibra-web-mb)

  • Metro bundler con tree-shaking
  • Imágenes en assets locales (sin carga remota)
  • Lazy loading de módulos con expo-router

UI y Experiencia de Usuario

MejoraMóduloBeneficio
Sidebar con animaciones CSS puras (vibra-065)WebElimina JS hover, reduce re-renders
OfflineScreen + OfflineBanner (vibra-063)MobileFeedback inmediato al usuario sin conexión
Autocompletado de tags (vibra-072)WebConsistencia en backlog de ideas
FAB feedback flotante (vibra-073)Web/MobileAcceso rápido a envío de feedback