Hola, soy Andrés 👋

Desarrollador Web Full-Stack

Desde Bogotá, Colombia. Especializado en la arquitectura y desarrollo de aplicaciones web robustas, sistemas de gestión y plataformas escalables.

Stack Tecnológico

HTML5 HTML5 CSS3 CSS3 JavaScript JavaScript React.js React.js Angular Angular Next.js Next.js EJS templates TailwindCSS TailwindCSS HTML5 HTML5 CSS3 CSS3 JavaScript JavaScript React.js React.js Angular Angular Next.js Next.js EJS templates TailwindCSS TailwindCSS
Node.js Node.js Express.js Express.js PHP PHP Python Python Go Go PostgreSQL PostgreSQL MySQL MySQL MongoDB MongoDB RESTful APIs Prisma ORM Node.js Node.js Express.js Express.js PHP PHP Python Python Go Go PostgreSQL PostgreSQL MySQL MySQL MongoDB MongoDB RESTful APIs Prisma ORM
Flutter Flutter Dart Dart Kotlin Kotlin Git & GitHub Git & GitHub Firebase Firebase Docker Docker Flutter Flutter Dart Dart Kotlin Kotlin Git & GitHub Git & GitHub Firebase Firebase Docker Docker

Últimos Desarrollos

Portada de Aura: Gestor de Tareas y Productividad Elegante con Arquitectura Offline-First Cifrada

Aura: Gestor de Tareas y Productividad Elegante con Arquitectura Offline-First Cifrada

Problema Inicial: El Cuello de Botella de la Sincronización y la Inseguridad en la PersistenciaEl desarrollo de aplicaciones de productividad móvil a menudo se enfrenta a un dilema crítico: la dependencia de APIs en la nube versus la resiliencia del almacenamiento local. La mayoría de los gestores de tareas comerciales sufren caídas de rendimiento catastróficas o congelamientos de la interfaz de usuario (UI Freezing) debido a arquitecturas mal diseñadas que realizan operaciones de lectura/escritura síncronas en el hilo principal (Main Thread).A esto se le suman dos retos técnicos de gran complejidad que motivaron la creación de Aura:Vulnerabilidad de los Datos Locales: Guardar el itinerario, las ideas y los datos privados del usuario en bases de datos SQLite planas y sin protección es un riesgo de seguridad masivo en dispositivos comprometidos o con acceso root.Degradación del Rendimiento por Mutación de Estados: Filtrar colecciones de datos multidimensionales (por tags de colores, fechas de vencimiento y texto en tiempo real de forma simultánea) suele saturar el procesador del dispositivo móvil, provocando pérdida de fotogramas (jank) al renderizar listas extensas de tareas.Arquitectura de Solución: El Paradigma Cosmic Twilight y Datos CifradosPara erradicar estos problemas, diseñé Aura bajo una estricta arquitectura offline-first impulsada por reactividad asíncrona avanzada. El stack tecnológico fue seleccionado meticulosamente para blindar la privacidad y garantizar una fluidez premium de 60 FPS en todo el ecosistema de la interfaz gráfica:Clean Architecture + MVVM: Separé la lógica de negocio en capas puras. El estado de la UI es inmutable y se expone a las vistas mediante StateFlow, el cual es recolectado de forma segura respetando el ciclo de vida de Android a través de collectAsStateWithLifecycle(). Esto evita fugas de memoria (Memory Leaks) si el usuario rota la pantalla o minimiza la app.Jetpack Compose con Diseño Adaptativo: Implementé una interfaz completamente declarativa bajo la especificación Material Design 3. El panel de métricas colapsable y el selector dinámico de layouts (Tarjetas vs. Listas Compactas) aprovechan la recomposición inteligente de Compose, redibujando únicamente los componentes que sufrieron cambios en sus propiedades.Room Database Cifrada: Utilicé Room como abstracción de SQLite para garantizar el almacenamiento en caché local. Toda la base de datos se encuentra bajo un esquema relacional optimizado con índices específicos en las columnas de fechas y estados para acelerar las consultas recursivas de filtrado.Mecanismo de Backup en JSON: Para resolver la portabilidad de datos sin depender de servidores externos, diseñé un sistema de serialización/deserialización asíncrona de objetos Kotlin a cadenas JSON cifradas, permitiendo exportar e importar el historial completo de tareas de forma local y segura.Retos de Implementación: El Obstáculo más Difícil (Filtrado Reactivo Multidimensional)El reto de ingeniería más complejo en Aura fue procesar en tiempo real múltiples filtros concurrentes (búsqueda por texto, filtrado por categorías coloreadas, estados de completado y ventanas de tiempo como "Hoy" o "Vencidas") sin causar latencia en la escritura del usuario y garantizando que la base de datos no sufriera bloqueos por sobreconsulta.La solución convencional de realizar un query a Room por cada letra presionada es costosa e ineficiente. Para solucionarlo de forma elegante, combiné múltiples flujos de datos (StateFlow) provenientes de los inputs de la interfaz y los fusioné en la capa de negocio (ViewModel) usando el operador combine de Kotlin Coroutines. De este modo, la consulta a la base de datos local se reactiva de forma limpia y asíncrona solo cuando algún parámetro cambia real y efectivamente.A continuación, muestro la implementación del core arquitectónico encargado de orquestar este filtrado multidimensional sin saturar el hilo principal:Kotlinclass TaskViewModel( private val taskRepository: TaskRepository ) : ViewModel() { // 1. Inputs de la UI transformados en flujos de estado reactivos e independientes val searchQuery = MutableStateFlow("") val selectedCategory = MutableStateFlow<TaskCategory?>(null) val selectedStatus = MutableStateFlow<TaskStatus>(TaskStatus.PENDING) val timeFilter = MutableStateFlow<TimeFilter>(TimeFilter.ALL) // 2. El motor central: Combinación reactiva y asíncrona de filtros en el hilo de Entrada/Salida @OptIn(ExperimentalCoroutinesApi::class) val uiState: StateFlow<TaskUiState> = combine( searchQuery, selectedCategory, selectedStatus, timeFilter ) { query, category, status, time -> // Agrupamos los parámetros en un objeto de consulta de arquitectura limpia TaskFilterQuery(query, category, status, time) }.flatMapLatest { filterQuery -> // Ejecutamos la consulta en Room mapeando el resultado a flujos vivos de datos taskRepository.getFilteredTasks(filterQuery) }.map { tasks -> TaskUiState.Success(tasks) }.flowOn(Dispatchers.IO) // Garantiza que todo el procesamiento pesado ocurra fuera del Main Thread .stateIn( scope = viewModelScope, started = SharingStarted.WhileSubscribed(5000), initialValue = TaskUiState.Loading ) } Resultados de Rendimiento: Transiciones Fluidas y Consultas OptimizadasGracias a este esquema de hilos asíncronos y reactividad controlada, Aura ofrece métricas de rendimiento sobresalientes:Recomposición Eficiente en Compose: El panel colapsable reduce el uso de CPU en un 25% al pasar a estado contraído, ya que el compilador de Compose omite por completo el cálculo del layout de los gráficos y filtros rápidos cuando no están visibles en el viewport.Búsquedas en Tiempo Real en <5ms: Al delegar la unión de flujos a los operadores combine y flatMapLatest sobre Dispatchers.IO, las búsquedas recursivas por texto dentro de un universo de más de 1,000 tareas registradas se resuelven en menos de 5 milisegundos, eliminando cualquier rastro de latencia en el teclado numérico o táctil.Persistencia Segura y Testeabilidad: La arquitectura desacoplada permitió la integración de pruebas unitarias y de integración robustas utilizando Robolectric y Roborazzi. Las pruebas de la base de datos Room verifican la integridad estructural de los triggers de alarmas gestionados por WorkManager en microsegundos, asegurando que las notificaciones de alta precisión despierten al dispositivo en el segundo exacto sin fugas de batería.Impacto de Arquitectura Senior: Aura demuestra que una aplicación de productividad no necesita recolectar datos en la nube para ser inteligente y útil. La combinación de persistencia local relacional, cifrado simétrico y reactividad multidimensional mediante Kotlin Flows establece un estándar de diseño robusto, ideal para entornos empresariales donde la privacidad de la información es un requerimiento innegociable.

AI Powered
Portada de FridgeBoss: Gestión de Inventario Inteligente y Gamificación contra el Desperdicio de Alimentos

FridgeBoss: Gestión de Inventario Inteligente y Gamificación contra el Desperdicio de Alimentos

Problema Inicial: El Desafío del Desperdicio Colectivo y la Inconsistencia de DatosEl desperdicio de alimentos en los hogares no es solo un problema ético y ambiental de gran escala; es un reflejo directo de la falta de herramientas tecnológicas eficientes para la gestión de inventarios domésticos. Los usuarios se enfrentan a un problema triple en su rutina diaria: la fricción de registrar manualmente cada ingrediente que compran, la incapacidad de recordar qué alimentos están próximos a vencer sin abrir físicamente la nevera, y la falta de ideas gastronómicas creativas para aprovechar los ingredientes sobrantes en estado crítico.Desde una perspectiva puramente de ingeniería de software, las pocas aplicaciones que intentaban resolver esto sufrían de tres fallas de arquitectura críticas:Fricción en la Entrada de Datos: Obligar al usuario a escribir el nombre, precio y cantidad de 30 productos comprados en un supermercado destruye la retención de la aplicación en los primeros tres días.Dependencia Absoluta de Conexión: Las aplicaciones basadas 100% en la nube quedaban inutilizadas dentro de cocinas con mala cobertura de red o sótanos de supermercados.Amnesia de Segundo Plano: La falta de persistencia en tareas del sistema operativo provocaba que las alertas de vencimiento se perdieran si el usuario cerraba la aplicación de forma forzada o reiniciaba el dispositivo.Arquitectura de Solución: Un Enfoque Local-First y Guiado por IAPara resolver estas limitaciones de forma definitiva, diseñé la arquitectura de FridgeBoss bajo el paradigma Local-First, asegurando que el núcleo de la aplicación funcione al 100% sin conexión a internet, delegando las tareas pesadas de inteligencia computacional a microservicios asíncronos y desacoplados.Elegí rigurosamente cada componente del stack tecnológico basándome en principios de escalabilidad, rendimiento y mantenibilidad:Clean Architecture y MVVM: Separé la aplicación en tres capas independientes (Data, Domain, Presentation). La capa de presentación no sabe cómo se guardan los datos, y la capa de dominio solo contiene las reglas de negocio puras escritas en Kotlin. Esto permite que el sistema sea testeable mediante pruebas unitarias modulares.Jetpack Compose y Material Design 3: Toda la interfaz de usuario se renderiza de forma declarativa mediante Compose, eliminando por completo los antiguos layouts en archivos XML. Esto reduce las líneas de código de UI en un 40% y garantiza animaciones fluidas impulsadas directamente por la aceleración de hardware del dispositivo móvil.Room Database y SQLite: Actúa como la "Única Fuente de la Verdad" (Single Source of Truth). Almacena de manera relacional el inventario completo, los metadatos de los comercios locales y el historial. Al exponer los datos mediante flujos reactivos de Kotlin (Flow), la UI se actualiza de forma automática e inmediata en el instante exacto en que la base de datos local sufre una modificación.Google Gen AI SDK (Gemini): Integré los modelos Gemini 1.5 Flash y Pro directamente en el cliente mediante inyección en tiempo de compilación. Para el OCR de tickets, en lugar de recibir texto plano caótico, forcé al modelo a responder bajo un JSON Schema estructurado y estricto. Esto garantiza que el backend de la app siempre reciba un objeto predecible con tipos de datos limpios (Strings, Integers, Floats).Jetpack DataStore Preferences: Reemplacé el antiguo e inseguro SharedPreferences por DataStore para gestionar el bucle de hábito de la gamificación (Rachas y Dinero Salvado). Al correr de forma asíncrona sobre Corrutinas de Kotlin, se evitan por completo los bloqueos de lectura/escritura en el hilo principal de la aplicación, anulando el riesgo de congelamiento de pantalla.Retos de Implementación: El Obstáculo más DifícilEl desafío técnico más complejo de la ingeniería del proyecto fue sincronizar de forma persistente y resiliente las notificaciones del sistema operativo con el estado cambiante de la base de datos local de Room sin drenar la batería del usuario ni violar las políticas estrictas de optimización de memoria de las versiones modernas de Android (Android Oreo a Android 14).La solución tradicional de usar un Service persistente en primer plano consumiría recursos excesivos. Para resolverlo, implementé una arquitectura reactiva desacoplada utilizando WorkManager, asegurando la ejecución de una tarea en segundo plano programada de forma diaria a las 9:00 AM, la cual despierta el hilo de ejecución por breves segundos, consulta la base de datos local y construye canales de notificación con prioridades del sistema adecuadas.A continuación, muestro una simplificación de la lógica central del Worker encargado de auditar la base de datos en segundo plano sin interrumpir la experiencia del usuario:class InventoryNotificationWorker( context: Context, workerParams: WorkerParameters, private val ingredientRepository: IngredientRepository // Inyectado mediante Clean Architecture ) : CoroutineWorker(context, workerParams) { override suspend fun doWork(): Result = withContext(Dispatchers.IO) { try { // 1. Consultamos de forma asíncrona en el hilo de Entrada/Salida (I/O) val criticalIngredients = ingredientRepository.getIngredientsNextToExpire(daysThreshold = 2) if (criticalIngredients.isNotEmpty()) { // 2. Si existen ingredientes críticos, disparamos el canal de alerta nativo triggerSystemNotification(criticalIngredients) } Result.success() } catch (e: Exception) { Log.error("API_WORKER_FAILURE", "Fallo al escanear inventario local", e) Result.retry() // Si la consulta falla por bloqueo, WorkManager reintenta con Backoff elástico } } private fun triggerSystemNotification(ingredients: List<Ingredient>) { val notificationManager = applicationContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager // Configuración de Canales de Notificación de alta prioridad requerida para Android Oreo en adelante if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val channel = NotificationChannel( "FRIDGE_BOSS_ALERT_CHANNEL", "Alertas Críticas de Inventario", NotificationManager.IMPORTANCE_HIGH ) notificationManager.createNotificationChannel(channel) } val message = "¡Atención! Tienes ${ingredients.size} alimentos próximos a vencer. Abre el Chef IA para rescatarlos." val notification = NotificationCompat.Builder(applicationContext, "FRIDGE_BOSS_ALERT_CHANNEL") .setSmallIcon(R.drawable.ic_notification_leaf) .setContentTitle("🛡️ Rescate de Comida Requerido") .setContentText(message) .setPriority(NotificationCompat.PRIORITY_HIGH) .setAutoCancel(true) .build() notificationManager.notify(1001, notification) } } Resultados de Rendimiento: Optimizaciones y Métricas de ImpactoGracias a las decisiones de diseño arquitectónico tomadas, FridgeBoss no solo es una aplicación visualmente atractiva, sino una pieza de software altamente eficiente:Procesamiento Asíncrono a 0ms en Main Thread: Al canalizar absolutamente todas las consultas de Room y las escrituras de DataStore a través de Kotlin Coroutines utilizando estrictamente Dispatchers.IO, logré que la aplicación mantenga una tasa de refresco fluida de 60 FPS estables, sin registrar un solo error de ANR (Application Not Responding) en las pruebas de estrés de la interfaz.Eficiencia en el Procesamiento de Imagen por OCR: Al forzar salidas estructuradas JSON directamente en el SDK de Gemini, el tiempo de parseo en el cliente se redujo de segundos de procesamiento de texto sucio a milisegundos de asignación de variables directas. El backend móvil puede leer e instanciar un ticket de compra con 20 productos en menos de 1.5 segundos promedio una vez recibida la respuesta del modelo Flash.Persistencia de Estado Robusta y Gamificación: El ciclo de vida de la racha es completamente inmune a fallos del sistema o cierres repentinos de la app. Si un usuario deja vencer un alimento, la penalización se calcula de forma atómica en Room y altera el DataStore de manera reactiva, manteniendo la sincronización entre la base de datos SQLite y la memoria caché de la UI con un impacto de memoria RAM despreciable en el dispositivo del usuario.Impacto Arquitectónico Final: FridgeBoss demuestra que es perfectamente viable construir aplicaciones móviles modernas que aprovechen las capacidades avanzadas de modelos de Inteligencia Artificial generativa manteniendo una huella de carbono y de consumo de recursos local mínima, respetando el ciclo de vida del sistema operativo y garantizando una experiencia de usuario sedosa, fluida y con propósito ambiental.

Portada de TitanHome CaliFit: Ecosistema Dinámico de Entrenamiento y Calistenia

TitanHome CaliFit: Ecosistema Dinámico de Entrenamiento y Calistenia

La Evolución del Fitness a través del Código TitanHome CaliFit no es solo una aplicación de seguimiento de ejercicios; es un ecosistema digital diseñado para adaptar el entrenamiento de calistenia al nivel físico específico del usuario. El objetivo principal de este proyecto fue traducir la complejidad del entrenamiento corporal en una lógica de software estructurada, fluida y escalable.El Desafío Técnico El desarrollo de aplicaciones de fitness presenta un reto único: el manejo del estado en tiempo real durante una rutina. Se requería un sistema capaz de gestionar temporizadores precisos, transiciones entre ejercicios y retroalimentación visual, todo sin comprometer el rendimiento en el dispositivo del usuario.Soluciones Arquitectónicas Implementadas:Lógica de Rutinas Iterativa: Se desarrolló un motor central que gestiona los ciclos de entrenamiento (series, repeticiones y descansos), permitiendo un flujo continuo y adaptativo según el progreso del usuario.Sistema de Animaciones Coreografiadas: Para guiar al usuario, se implementó un motor visual ligero utilizando transiciones CSS3 avanzadas y manipulación del DOM, garantizando que las demostraciones de los ejercicios se rendericen a 60fps sin sobrecargar el procesador.Soporte Bilingüe Nativo (i18n): Diseñado con una visión global desde el día uno. La arquitectura de internacionalización separa completamente la capa de presentación de los diccionarios de datos, permitiendo cambiar el idioma de toda la interfaz y las rutinas sin necesidad de recargar la aplicación.El Resultado Una plataforma de coaching personalizado que demuestra cómo una arquitectura de frontend bien pensada puede entregar experiencias ricas, dinámicas y de alto rendimiento. TitanHome CaliFit es la prueba de que el código limpio y la ingeniería de interfaces pueden potenciar la disciplina física.

Portada de Nexo Studio: Generador de Bio-Links Offline & Privacidad Pro

Nexo Studio: Generador de Bio-Links Offline & Privacidad Pro

Nexo Studio redefine la presencia digital de los creadores de contenido, ofreciendo una alternativa de alto rendimiento a plataformas centralizadas como Linktree. Este ecosistema permite diseñar micro-sitios Bio-Link ultra-estéticos con una ventaja competitiva radical: la propiedad absoluta de los datos.A diferencia de los modelos SaaS tradicionales, Nexo utiliza un motor de exportación autónomo que genera un archivo HTML único y portable. Este archivo incluye toda la lógica, activos y estilos embebidos mediante procesamiento de imágenes en Base64, permitiendo un despliegue instantáneo en cualquier CDN, servidor o hosting estático sin dependencias de bases de datos externas para el usuario final.🛠️ Pilares Tecnológicos de Alto Nivel:Arquitectura Resiliente y Optimizada: Desarrollado para operar bajo alta demanda en infraestructuras limitadas. Implementa un patrón Singleton para Prisma ORM que gestiona un pool estricto de 3 conexiones simultáneas, garantizando estabilidad total y prevención de fugas de memoria o bloqueos de red (Error P2037 mitigado).Blindaje Perimetral (Security First): El panel administrativo integra una capa de seguridad de grado bancario mediante Autenticación de Dos Pasos (2FA) basada en TOTP. Utiliza un sistema de "Escudo de Sesión" con pendingUserId para interceptar accesos no autorizados antes de otorgar privilegios al dashboard.Experiencia Visual Ultra-Premium: Interfaz de usuario (UI) construida bajo la estética Glassmorphism, optimizada con CSS Grid y Flexbox para ofrecer layouts dinámicos y adaptables a monitores de alta resolución y televisores 4K.Smart Icon Detection: Motor inteligente que procesa URLs en tiempo real para asignar automáticamente el branding oficial de plataformas como Instagram, TikTok, YouTube o LinkedIn.

Portada de Qreative Studio - Generador de QR Premium & Branding Engine

Qreative Studio - Generador de QR Premium & Branding Engine

Qreative Studio es una plataforma de software de nivel profesional diseñada para transformar los códigos QR tradicionales en poderosas herramientas de identidad visual. Este proyecto nace de la necesidad de ofrecer a empresas y creativos una solución que combine estética de vanguardia con una fiabilidad técnica absoluta.🛠️ Arquitectura y Desarrollo: El "Cómo" se CreóEl proyecto fue construido bajo un enfoque de arquitectura limpia utilizando Node.js y Express. A diferencia de otros generadores que dependen totalmente del cliente, Qreative Studio utiliza un sistema híbrido:Frontend de Alto Rendimiento: Utiliza Vanilla JavaScript y Módulos ES para gestionar la personalización en tiempo real (gradientes lineales/radiales, estilos de módulos y branding de logotipos) con una respuesta visual instantánea.Backend de Fiabilidad (Download Proxy): Implementé un motor de descarga personalizado en el servidor para interceptar las peticiones de exportación. Esto garantiza que archivos complejos como SVG vectoriales y PDFs de alta fidelidad se descarguen con los encabezados Content-Disposition correctos, eliminando errores de compatibilidad en navegadores basados en Chromium.✨ Características de Ingeniería: ¿Qué hace?Micro-Estilizado en Tiempo Real: Permite modificar patrones de puntos (cuadrados, puntos, elegantes) y ojos del QR, adaptándose a cualquier manual de marca.Motor de Validación Visual: El sistema incluye una lógica de verificación de contraste y puntuación de escaneo en vivo, asegurando que el diseño nunca comprometa la funcionalidad.Gestión de Exportación Multiformato: Generación nativa de archivos PNG (pixel-perfect), SVG (vectorial para impresión de gran formato) y PDF.Sistema de Diseño Personalizado: Desarrollado con CSS3 puro utilizando variables dinámicas para una interfaz oscura, fluida y responsiva de grado industrial.🚀 Impacto TécnicoQreative Studio demuestra el dominio de la manipulación de datos en Base64, la gestión de activos estáticos en Express y la creación de herramientas de utilidad que resuelven problemas reales de branding digital con una experiencia de usuario (UX) excepcional.

Portada de Media Harvester: Plataforma Premium de Extracción y Scraping Multimedia

Media Harvester: Plataforma Premium de Extracción y Scraping Multimedia

Ingeniería de Extracción Multimedia de Alto RendimientoMedia Harvester es una solución de vanguardia diseñada para la recuperación instantánea de activos visuales y auditivos de cualquier sitio web. A diferencia de las herramientas de scraping convencionales, este sistema utiliza un motor de extracción optimizado que analiza el DOM y estructuras de datos internas (como JSON de Next.js) sin comprometer el rendimiento del navegador o el servidor.🧠 Capacidades del Motor de ExtracciónComo desarrollador del proyecto, implementé algoritmos específicos para garantizar una recolección exhaustiva y segura:Detección Inteligente de Recursos: El sistema identifica medios incluso en atributos de carga perezosa (lazy-load) y dentro de scripts de datos internos, superando las limitaciones del scraping básico.Procesamiento en Tiempo Real: Utiliza una arquitectura sin almacenamiento persistente; las URLs y archivos se procesan al vuelo para garantizar la privacidad total del usuario.Compresión Dinámica: Integración de un motor de empaquetado que permite la descarga masiva de múltiples archivos en un único contenedor ZIP de forma asíncrona.🛠️ Stack Tecnológico de Última GeneraciónNext.js 15 (App Router): Aprovechamiento de Server Components y optimización de rutas para un rendimiento ultra rápido.TypeScript & Robustez: Desarrollo 100% tipado para asegurar la integridad de los datos extraídos y facilitar el mantenimiento del código.Diseño con Glassmorphism: Interfaz moderna y minimalista construida con Tailwind CSS y ShadCN UI, ofreciendo una experiencia visual premium con modo oscuro nativo.Motor de Scraping: Implementación de Cheerio para el parseo de HTML en el servidor, permitiendo devolver resultados en milisegundos al ignorar recursos pesados innecesarios.🛰️ Soporte Universal y RendimientoLa plataforma es totalmente compatible con formatos de imagen (JPG, PNG, WebP), video (MP4, WebM) y audio (MP3, WAV), convirtiéndola en una herramienta universal para creadores de contenido y desarrolladores que necesitan recolectar activos de forma masiva y segura.

Portada de Servicol JSYS: Ecosistema Digital de Beneficios y Gestión de Convenios

Servicol JSYS: Ecosistema Digital de Beneficios y Gestión de Convenios

Plataforma de Fidelización y Servicios CorporativosServicol JSYS es una solución web integral diseñada para la administración de beneficios, convenios y servicios de bienestar. El sistema actúa como un puente entre la empresa y sus afiliados, permitiendo una gestión fluida de solicitudes, perfiles y catálogos de servicios.🧠 Ingeniería de Frontend y Experiencia de UsuarioEl proyecto destaca por una interfaz dinámica construida bajo un modelo de Single Page Application (SPA) simplificado para el panel administrativo, optimizando la velocidad de navegación:Arquitectura de Controladores JS: Implementación de una estructura modular de JavaScript basada en controladores específicos (ej. adminChartController, themeController) para desacoplar la lógica de la interfaz.Dashboard Analítico: Integración de gráficos interactivos para la visualización en tiempo real del crecimiento de afiliados y uso de convenios.Sistema de Tematización: Motor de cambio de tema (Light/Dark mode) persistente para mejorar la accesibilidad del usuario.🛠️ Capacidades de Backend y GestiónMotor de Convenios Dinámico: Desarrollo de un sistema de gestión de convenios que incluye geolocalización de puntos de atención y visualización de promociones temporales.Gestión de Identidad Digital: Automatización para la generación de carnés de beneficios digitales con previsualización en tiempo real.Tareas Automatizadas (Cron Jobs): Implementación de scripts programados para la actualización automática de estados de afiliaciones y promociones.Seguridad de Acceso: Sistema robusto de autenticación y recuperación de contraseñas para proteger la información sensible de los afiliados.💼 Impacto en el NegocioEsta plataforma permite a la organización centralizar su oferta de servicios en una sola ventana, facilitando la autogestión del usuario y reduciendo la carga operativa mediante la carga masiva de datos y exportación de reportes administrativos.Nota de Privacidad: Proyecto corporativo presentado como parte de mis competencias en desarrollo web full-stack y automatización de procesos empresariales. El código fuente y el repositorio son privados.

Portada de ORMOQ: Sistema Integral de Gestión Financiera y Cartera Cooperativa

ORMOQ: Sistema Integral de Gestión Financiera y Cartera Cooperativa

Arquitectura de Gestión de Crédito y Cartera MultiactivaORMOQ V2 es una plataforma empresarial robusta diseñada para automatizar el ciclo de vida completo de productos financieros cooperativos. El sistema centraliza la operación gestionando desde la solicitud inicial de crédito hasta el recaudo por libranza y la gestión de cartera en mora.🧠 Ingeniería de Procesos y AutomatizaciónComo desarrollador principal, implementé una arquitectura MVC (Modelo-Vista-Controlador) sólida sobre PHP 8.3, garantizando modularidad y escalabilidad:Arquitectura de Software: Uso de un enrutador moderno (bramus/router) y gestión de dependencias profesional con Composer.Motor de Créditos: Flujos dinámicos para aprobación de solicitudes y validaciones de seguridad en tiempo real.Gestión de Cartera: Módulos para carga masiva de datos y conciliación bancaria automatizada.🛠️ Interfaz y Capacidades TécnicasDiseño UI con CSS Nativo: Desarrollo de una interfaz personalizada y responsiva utilizando CSS3 puro, estructurado de forma modular (admin.css, global.css, y estilos específicos por página) para un rendimiento óptimo sin dependencias de frameworks externos.Documentación Legal: Automatización de certificados de deuda y paz y salvos mediante la integración de dompdf y phpword.Control de Acceso (RBAC): Sistema avanzado de permisos para roles como Jefe de Créditos, Jurídica, Gerente y Asesor.Notificaciones: Integración de phpmailer para comunicación oficial con los asociados.Nota de Privacidad: Este proyecto es propiedad exclusiva de la entidad financiera. Se presenta como demostración de competencias en arquitectura PHP, manejo de lógica empresarial compleja y diseño UI nativo. El código fuente y el repositorio son privados.

AI Powered
Portada de PixelSphere: Motor de Ingesta Masiva y Streaming de Alta Disponibilidad

PixelSphere: Motor de Ingesta Masiva y Streaming de Alta Disponibilidad

Ingeniería de Carga Masiva y ConcurrentePixelSphere nació como un reto técnico: ¿Cómo gestionar Terabytes de datos y archivos de hasta 26GB sin que el servidor colapse por falta de RAM? La respuesta fue construir un ecosistema basado 100% en el manejo de flujos de datos (Streams) y protocolos de fragmentación.🧠 Arquitectura del Motor (Deep Dive)A diferencia de las arquitecturas tradicionales que cargan archivos en memoria antes de procesarlos, PixelSphere utiliza un Protocolo de Ensamblaje Binario:Frontend (Chunking): Los archivos se fragmentan en el navegador usando Blob.slice() en bloques de 10MB. Esto permite que el usuario suba archivos masivos sin congelar la pestaña del navegador.Backend (Write Streams): Node.js recibe cada fragmento y lo inyecta directamente al disco duro mediante fs.createWriteStream. Esto garantiza un consumo de RAM constante de solo 10MB, sin importar si el video pesa 100MB o 20GB.Concurrencia Aislada: El sistema genera un fileID único por subida, permitiendo múltiples flujos independientes sin colisiones de datos.📸 Motores de Medios e IAMotor de Imagen: Implementa un flujo híbrido. Para imágenes ligeras, utiliza operaciones atómicas en Node.js; para archivos de alta densidad, aplica subidas fragmentadas para asegurar la integridad binaria.Motor de Video: Soporta Streaming por Rango (HTTP Range), lo que permite al usuario saltar a cualquier punto del video instantáneamente sin haberlo descargado por completo. Además, genera thumbnails dinámicos mediante técnicas de Client-Side Seeking.🔒 Persistencia y Seguridad ProBase de Datos Desacoplada: El sistema utiliza archivos JSON Maestros gestionados por el módulo fs nativo, garantizando atomicidad en las escrituras y facilidad de backup mediante empaquetado dinámico en ZIP.Cifrado de Bóveda: Los datos sensibles se protegen mediante el algoritmo PBKDF2 con 100,000 iteraciones y salting único de 16 bytes generado vía randomBytes.Seguridad de Acceso: Integración de 2FA (TOTP RFC 6238) y biometría nativa vía WebAuthn, elevando el estándar de identidad del proyecto.Nota Técnica: Este proyecto demuestra que con Node.js puro y una arquitectura bien diseñada, es posible gestionar volúmenes de datos empresariales de forma eficiente y segura sin depender de bases de datos externas pesadas para un prototipado rápido.

AI Powered
Portada de CLARIPIXAI - Super Resolución de Imágenes con IA

CLARIPIXAI - Super Resolución de Imágenes con IA

🚀 ClaripixAI: Potenciando la Calidad Visual con Deep LearningClaripix AI es una plataforma de procesamiento de imágenes de alto rendimiento que utiliza modelos de Super-Resolución (Swin2SR) y Restauración Facial (GFPGAN) para transformar imágenes de baja calidad en resultados nítidos y profesionales.✨ Características PrincipalesUpscaling 4x Inteligente: Mejora el tamaño de las imágenes manteniendo texturas realistas mediante el modelo Swin2SR.Restauración Facial: Algoritmos especializados para reconstruir detalles en rostros borrosos o antiguos.Arquitectura Híbrida: Backend en Node.js para la gestión de archivos y API, conectado a un motor de inferencia en Python de alta eficiencia.Procesamiento Asíncrono: Manejo optimizado de tareas pesadas de IA para no bloquear el flujo del servidor.🛠️ Desafío Técnico: La "Contenerización" El mayor reto de este proyecto fue la creación del Dockerfile. Se logró unificar un entorno de Node.js 20 con las dependencias pesadas de Python y librerías gráficas como libgl1 y PyTorch CPU. Esto permite que la IA corra en cualquier servidor Linux sin importar las dependencias locales, optimizando el tamaño de la imagen mediante capas de caché de Docker.📦 InfraestructuraDocker: Orquestación de dependencias de sistema y modelos pre-entrenados.Python Engine: Script de inferencia optimizado para procesamiento headless.Upload Logic: Sistema seguro de gestión de archivos temporales con permisos controlados.

Portada de Lumina

Lumina

🌑 Lumina: Rastreo Lunar y Meteorológico AvanzadoLumina es una aplicación web interactiva diseñada para conectar a los usuarios con su entorno astronómico. La plataforma permite localizar la posición exacta de la luna en el cielo, evaluar las condiciones meteorológicas en tiempo real y determinar la visibilidad lunar, todo esto utilizando tecnologías web nativas.✨ Características PrincipalesPosicionamiento Inmersivo: Utiliza la API de Sensores del dispositivo móvil (giroscopio y magnetómetro) para guiar al usuario visualmente hacia la ubicación actual de la luna en la bóveda celeste.Análisis Meteorológico en Vivo: Cruza los datos de ubicación con APIs del clima para determinar la nubosidad y calcular si la luna es visible a simple vista desde la posición del usuario.Privacidad por Diseño (Privacy-First): La plataforma fue construida con una arquitectura de datos efímera. Los datos de geolocalización y telemetría del usuario se procesan estrictamente en la memoria del dispositivo (Client-side) y nunca son almacenados, enviados a bases de datos ni recopilados.🛠️ Arquitectura y TecnologíasEl proyecto prescinde de frameworks pesados en el frontend para maximizar el rendimiento y la velocidad de carga, utilizando un stack eficiente:Backend (Node.js & Express): Servidor robusto para el enrutamiento seguro y la comunicación con APIs de terceros (clima y astronomía) ocultando las llaves de acceso (API Keys).Frontend (EJS): Motor de plantillas dinámico para renderizar la interfaz desde el servidor de forma rápida.Estilos (CSS3 Puro): Diseño inmersivo, animaciones fluidas y Modo Oscuro nativo sin depender de librerías externas.Lógica Core (Vanilla JS): Manejo asíncrono de la Geolocation API y DeviceOrientation API directamente desde el DOM.🚀 Instalación y Ejecución localPara correr este proyecto en tu entorno local, clona el repositorio y ejecuta:# 1. Instalar dependencias npm install # 2. Configurar variables de entorno (Crear archivo .env) # Añadir las API Keys correspondientes del clima # 3. Iniciar el servidor npm start Nota: Para probar las funcionalidades de sensores móviles en desarrollo local, es posible que necesites exponer tu localhost a través de HTTPS (ej. usando ngrok), ya que los navegadores modernos exigen contextos seguros para acceder a la ubicación y al giroscopio.

Ver todos los proyectos

Artículos Recientes

Más allá de HTTP: Arquitectura Event-Driven en Tiempo Real con Node.js y Redis

Más allá de HTTP: Arquitectura Event-Driven en Tiempo Real con Node.js y Redis

Descubre cómo romper las limitaciones del modelo solicitud-respuesta tradicional. Una guía profunda sobre la implementación de WebSockets (Socket.io), escalabilidad horizontal con Redis Pub/Sub y optimización de memoria en el backend.

La Revolución Agéntica de Google I/O: El Nuevo Paradigma del Desarrollo de Software

La Revolución Agéntica de Google I/O: El Nuevo Paradigma del Desarrollo de Software

Análisis técnico exhaustivo de los anuncios de Google I/O. Desde el motor de agentes Google Antigravity y Gemini 3.5 Flash, hasta la mutación asombrosa de Android Studio y el ecosistema Firebase Agent-Native.

La Crisis de la Cadena de Suministro: IA, GitHub y el Colapso de la Confianza Implícita

La Crisis de la Cadena de Suministro: IA, GitHub y el Colapso de la Confianza Implícita

Análisis profundo sobre la reciente ola de vulnerabilidades en GitHub, entornos CI/CD y el ecosistema npm. Descubre cómo los agentes de Inteligencia Artificial están automatizando exploits de día cero y por qué la arquitectura Zero Trust es tu única defensa.

La Muerte del JWT Tradicional: Arquitectura Zero Trust en Node.js

La Muerte del JWT Tradicional: Arquitectura Zero Trust en Node.js

Descubre por qué la validación pasiva de tokens está obsoleta. Una guía arquitectónica sobre cómo implementar el modelo Zero Trust, Rate Limiting táctico y blindaje de cabeceras en ecosistemas Express y Prisma.

Micro-servicios de Utilidad: El Arte de Monetizar Herramientas con Google AdSense

Micro-servicios de Utilidad: El Arte de Monetizar Herramientas con Google AdSense

Cómo diseñar una red de herramientas web (Compresores, Trackers, Generadores) optimizadas para el rastreo de Google. Estrategias de arquitectura desacoplada para maximizar ingresos publicitarios sin sacrificar la velocidad de carga.

Ingeniería de Ejecución Remota: Cómo construí una Terminal Real en el Navegador

Ingeniería de Ejecución Remota: Cómo construí una Terminal Real en el Navegador

Un análisis profundo sobre la arquitectura detrás de un Playground de código seguro. Descubre cómo conectar Xterm.js con Worker Threads de Node.js mediante WebSockets para ejecutar scripts en tiempo real sin comprometer la seguridad del servidor.

Más allá del CRUD: Cómo el Business Intelligence transforma el Desarrollo Full-Stack

Más allá del CRUD: Cómo el Business Intelligence transforma el Desarrollo Full-Stack

Construir la base de datos es solo el inicio. Analizamos cómo el dominio de procesos ETL y el modelado de datos en estrella permiten a los desarrolladores crear herramientas que no solo almacenan registros, sino que predicen el futuro del negocio.

El Escudo Invisible: Ciberseguridad y Arquitectura 'Zero Trust' en el Desarrollo Full-Stack

El Escudo Invisible: Ciberseguridad y Arquitectura 'Zero Trust' en el Desarrollo Full-Stack

La seguridad ya no es un parche de último minuto. Analizamos la filosofía Zero Trust, el manejo avanzado de sesiones y cómo proteger la integridad de tus datos en un ecosistema digital cada vez más hostil.

Ver todos los artículos

Fragmentos de Código

Zero Trust Session Interceptor

Lógica de interceptación que consulta la base de datos en cada petición para asegurar que las sesiones cerradas desde otros dispositivos sean expulsadas de inmediato. Perfecto para la sección de Ciberseguridad Proactiva.

Neon Glassmorphism Card Effect

Un componente interactivo que demuestra el uso de backdrop-filter y transiciones de neón. Es ideal para validar que el iframe sandboxed procesa correctamente los estilos y scripts locales.

Prisma Safe Transaction Wrapper — Gestión Eficiente de Conexiones

Este snippet proporciona un patrón de diseño para envolver consultas de base de datos, garantizando que la conexión se cierre inmediatamente después de su ejecución. Es una solución crítica para aplicaciones desplegadas en infraestructuras con límites de concurrencia, como el pool de 3 conexiones de Seenode, previniendo errores de saturación y mejorando la estabilidad del backend.

Ver todos los snippets