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

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.

Mi-Saldo-TransMi

🚀 Mi Saldo TransMi (Node.js + EJS Port)Esta es una reescritura completa de la aplicación original Angular utilizando Node.js, Express, EJS, TailwindCSS y Vanilla JS.📋 Pre-requisitosNode.js instalado en tu sistema.Una cuenta de Firebase (con Firestore y Authentication habilitados).⚙️ InstalaciónAbre una terminal en la raíz de la carpeta del proyecto y ejecuta:npm install ⚠️ Configuración ObligatoriaDebes configurar tus credenciales de Firebase para que la aplicación logre conectarse a la base de datos:Abre el archivo public/js/main.js.Busca la constante firebaseConfig al inicio del documento.Reemplaza los valores de API_KEY_AQUI, PROJECT_ID, etc., con los datos proporcionados por tu consola de Firebase.▶️ EjecuciónPara arrancar el servidor localmente, simplemente ejecuta:npm start La aplicación estará disponible inmediatamente en: http://localhost:3000📁 Estructura Principalapp.js: Servidor backend principal utilizando Express.views/index.ejs: Plantilla HTML renderizada con motor EJS y TailwindCSS.public/js/main.js: Lógica central de la aplicación (Interacciones UI, Auth y Firestore).public/css/styles.css: Estilos CSS personalizados (animaciones fluidas y scrollbars).

Ver todos los proyectos

Artículos Recientes

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.

¿El Gigante tiene Pies de Barro? Análisis de la Inestabilidad de GitHub y el Éxodo hacia la Descentralización

¿El Gigante tiene Pies de Barro? Análisis de la Inestabilidad de GitHub y el Éxodo hacia la Descentralización

Incidentes de seguridad, pérdida de datos en Merge Queues y una caída real del uptime al 84%. Analizamos por qué la apuesta total de Microsoft por la IA está comprometiendo la estabilidad del hogar del código abierto.

El Cuello de Botella Invisible: Estrategias de Escalabilidad para Bases de Datos en Aplicaciones de Alto Tráfico

El Cuello de Botella Invisible: Estrategias de Escalabilidad para Bases de Datos en Aplicaciones de Alto Tráfico

No dejes que tu base de datos detenga tu crecimiento. Analizamos cómo optimizar el pool de conexiones, implementar réplicas de lectura y técnicas de caching para mantener tu aplicación volando mientras el tráfico se multiplica.

Guerra de Arquitecturas: Sistemas Centralizados vs. Descentralizados. ¿Cuál es el motor ideal para tu proyecto?

Guerra de Arquitecturas: Sistemas Centralizados vs. Descentralizados. ¿Cuál es el motor ideal para tu proyecto?

La elección de la estructura de datos define la escalabilidad y la propiedad de tu aplicación. Analizamos las diferencias clave y cómo decidir entre la eficiencia de la nube centralizada y la resiliencia de la descentralización.

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