Mi camino empezó con cables, routers y computadores, y terminó llevándome al mundo del desarrollo de software. Desde entonces, he pasado de entender cómo funcionan las cosas a construirlas yo mismo.
He desarrollado soluciones reales para clientes, adaptando sistemas y creando nuevas funcionalidades según sus necesidades.
Me gusta tanto el backend como el frontend, porque disfruto ver una idea completa: desde la lógica hasta cómo se ve.
Siempre estoy buscando mejorar, aprender y construir cosas nuevas, este espacio es una muestra de lo que soy capaz de construir.
Estoy mejorando constantemente este portafolio y cada proyecto. Explora los cambios, mejoras y nuevas funcionalidades que he ido construyendo paso a paso.
Ver historial de cambios →Proyectos simples de gestión de datos (crear, leer, actualizar, borrar).
Actualmente no hay proyectos registrados en esta categoría 🚀
Aplicaciones orientadas a la gestión empresarial.
Actualmente no hay proyectos registrados en esta categoría 🚀
Chats, notificaciones y conexión en tiempo real.
Actualmente no hay proyectos registrados en esta categoría 🚀
Roles, autenticación y lógica avanzada.
Actualmente no hay proyectos registrados en esta categoría 🚀
Integraciones y servicios reutilizables.
Actualmente no hay proyectos registrados en esta categoría 🚀
Paneles y sistemas de control.
Actualmente no hay proyectos registrados en esta categoría 🚀
Aún no he desarrollado proyectos con esta tecnología 👨💻
Conoce más sobre mi experiencia, habilidades y proyectos reales desarrollados.
Ver mi CVEstos son algunos de los recursos, herramientas y sitios de referencia que utilizo en mis proyectos de programación.
Cada registro de cambio está categorizado visualmente mediante un emoji y una paleta de colores que facilitan la identificación del tipo de actualización realizada:
No hay registros de cambios en esta categoría actualmente.
Se corrigieron detalles de navegación, tamaños y comportamiento en resoluciones pequeñas para mantener consistencia entre las tres interfaces.
Se ajustaron enlaces y redirecciones internas para evitar rutas inválidas al entrar y salir del proyecto.
Se agregó al administrador un bloque para consultar recursos básicos del servidor y ejecutar una limpieza rápida de archivos temporales.
Se corrigió la distribución de productos y totales para que el resumen del pedido funcionara mejor en pantallas pequeñas.
Se añadieron filtros por tipo de cambio y controles de orden para facilitar la consulta del historial general.
Se corrigió la distribución de destinatarios y archivos adjuntos cuando el detalle se abre desde celular.
Se mejoró el tamaño de los controles de audio y la adaptación del chat en resoluciones pequeñas.
Se ajustó el bloque inferior para que no cubriera contenido importante en pantallas pequeñas.
Se corrigieron campos vacíos y tamaños de los editores para mejorar las pruebas desde diferentes resoluciones.
Se corrigió el comportamiento del carrusel y de las miniaturas en pantallas pequeñas.
Se mejoró el desplazamiento y la lectura de la tabla de horarios desde dispositivos pequeños.
Se corrigieron tamaños, textos largos y comportamiento del panel de notificaciones en pantallas pequeñas.
Se mejoró la distribución de imagen, ingredientes y pasos para que la receta completa se leyera mejor desde celular.
Se corrigió la distribución de formularios y roles para que la administración funcionara mejor desde pantallas pequeñas.
Se ajustaron proporciones para que el marco del celular no se desbordara al abrir la aplicación desde otro celular.
Se ajustó el ancho del textarea y de los botones para evitar desbordes desde celular.
Se mejoró la ubicación de la imagen, las estrellas y el comentario para mantener una lectura cómoda desde celular.
Se relacionaron los registros de cambios con cada proyecto para que desde su ficha se pudiera consultar únicamente su propia evolución.
Se renovó la presentación para consultar las notificaciones desde un panel lateral sin abandonar la pantalla actual.
Se creó la sección de registros de cambios para documentar nuevas funcionalidades, correcciones, mejoras visuales y ajustes internos del portafolio.
Se ajustaron encabezados, espacios y estados para facilitar la lectura de horarios con varios días configurados.
Se incorporó el control de usuarios online y offline para mostrar actividad reciente tanto en la zona de usuario como en el administrador.
Se ajustaron estados, columnas y acciones para que las tres bandejas administrativas conservaran el mismo formato.
Se separó la lógica de construcción, ejecución y presentación de respuestas para mantener el backend más ordenado.
Se mejoraron espacios y distribución general de la vista sin cambiar el alcance privado del proyecto.
Se solucionó un salto de posición que podía ocurrir cuando llegaban mensajes nuevos mientras se revisaba el historial.
Se agregaron tarjetas con totales de proyectos, credenciales, mensajes y notificaciones para consultar el estado general desde la pantalla inicial.
Se reforzó el bloqueo para cerrar el acceso cuando una cuenta pasa a estado inactivo después de haber iniciado sesión.
Se reorganizaron métodos, URL, JSON y respuesta para que el flujo de prueba fuera más fácil de seguir.
Se reorganizaron las consultas y operaciones de cantidad para evitar repetir validaciones en diferentes acciones.
Se ajustaron campos, botones y área del mensaje para acercar la experiencia a la de un cliente de correo tradicional.
Se reorganizó el backend para usar el mismo flujo al preparar notificaciones individuales o masivas.
Se reorganizó la conversación dentro de un marco tipo celular y se ajustaron burbujas, cabecera y área de escritura.
Se centralizó la lógica usada para listar pedidos pendientes, aprobados y rechazados y así reducir código repetido.
Se ajustaron espacios, bordes, tamaños y jerarquías visuales para que las interfaces pública, de usuario y de administrador mantuvieran un estilo más uniforme.
Se reorganizaron archivos y rutas del proyecto para dejar una estructura más clara antes de continuar agregando funcionalidades.
Se mejoraron etiquetas, estados y espacios para diferenciar con mayor claridad las preguntas pendientes y respondidas.
Se reforzaron las validaciones para impedir el acceso a páginas privadas cuando la sesión no corresponde al tipo de usuario esperado.
Se solucionó un problema que podía dejar registros antiguos de headers o parámetros después de actualizar un servicio.
Se separaron estilos y validaciones repetidas para mantener más simple la vista principal de la agenda.
Se ajustaron tamaños de imágenes, textos y estados de stock para que el catálogo mantuviera una distribución más uniforme.
Se reorganizó la consulta para cargar únicamente las opiniones asociadas al producto que se está visualizando.
Se ajustaron botones, estados seleccionados y mensajes para que la elección de permisos fuera más clara.
Se centralizó la carga de turnos por usuario para simplificar el código de la malla y de la edición.
Se agregó un bloque para mostrar directamente la respuesta obtenida después de ejecutar la petición.
Se reorganizó la preparación y validación de adjuntos para reducir código repetido antes de enviar el mensaje.
Se ajustó la configuración del proyecto para mantener su acceso restringido desde el portafolio.
Se centralizaron las validaciones de extensiones y rutas antes de guardar archivos enviados por el chat.
Se incorporó la construcción automática de la estructura JSON usando los parámetros definidos para cada servicio.
Se amplió el formulario de creación de proyectos para seleccionar una estructura inicial de carpetas y archivos desde el administrador.
Se reorganizaron las consultas del administrador para mantener más simple la separación entre pendientes y respondidas.
Se creó la base del proyecto y sus primeras rutas para comenzar a separar la lógica de la aplicación.
Se mejoró la consulta desde administración para revisar avisos enviados y su información relacionada.
Se creó una vista donde el usuario puede seleccionar un servicio previamente configurado y preparar una prueba.
Se reforzó la comprobación de datos obligatorios para evitar pedidos incompletos en la base de datos.
Se reorganizaron varias rutas y consultas para mantener más clara la diferencia entre la gestión de recetas y su visualización pública.
Se mejoró la actualización para cargar URL, método, headers, parámetros y respuestas existentes en un mismo formulario.
Se reorganizaron las consultas para cargar la información del producto y su galería con menos lógica repetida.
Se ajustó el cálculo para actualizar el valor general cada vez que cambia una cantidad o se elimina un producto.
Se reorganizó la validación de roles y estado del usuario para evitar repetir la misma lógica en varias páginas.
Se añadió una estructura independiente para documentar los datos que puede devolver cada servicio.
Se añadieron filtros por lenguaje y categoría en la zona privada para encontrar los proyectos de forma más rápida.
Se solucionó un problema que podía omitir archivos cuando se seleccionaban varios adjuntos en el mismo correo.
Se incorporó la gestión de parámetros asociados a cada Web Service desde tablas relacionadas.
Se solucionó un caso que permitía seleccionar una hora de salida anterior a la hora de entrada.
Se ajustó la carga de imágenes grandes para evitar que deformaran la conversación o ocuparan demasiado espacio.
Se solucionó una diferencia entre el número mostrado en el icono y las notificaciones realmente pendientes.
Se agregó una sección dinámica para definir encabezados personalizados en cada servicio.
Se agregaron indicadores para mostrar mensajes, chats y notificaciones pendientes sin necesidad de entrar primero a cada sección.
Se corrigió el formulario para impedir envíos donde no se hubiera seleccionado una calificación ni escrito un comentario.
Se amplió el formulario para definir el método HTTP que utilizará cada Web Service registrado.
Se ajustó la edición para conservar correctamente la imagen predeterminada cuando no se selecciona un archivo nuevo.
Se creó la administración inicial para guardar nombre, URL y método HTTP de un servicio.
Se ajustó el cálculo para mantener el valor correcto cuando un mismo pedido contiene varias cantidades de diferentes productos.
Se organizaron los mensajes por día para que conversaciones largas fueran más fáciles de recorrer.
Se solucionó un caso donde una sesión anterior podía mantener acceso al cambiar de interfaz.
Se incorporaron acciones para modificar cantidades, eliminar productos, vaciar el carrito o continuar comprando.
Se incorporó una conversación directa entre usuarios registrados y el administrador, manteniendo el historial de mensajes de cada persona.
Se mejoró la vista para consultar la pregunta completa junto con la respuesta enviada desde administración.
Se separó una interfaz de solo lectura para que cada usuario consultara únicamente su propio horario.
Se incorporó la consulta automática de nuevas notificaciones para actualizar el contador mientras el usuario permanece conectado.
Se creó una tabla para consultar los mensajes enviados y abrir el detalle de destinatarios, contenido y adjuntos.
Se organizó una sección administrativa para consultar los mensajes enviados desde el portafolio y diferenciar los que todavía no se habían revisado.
Se ajustó la actualización en tiempo real para evitar que un mensaje recién cargado apareciera dos veces en la conversación.
Se amplió el formulario de actualización para agregar o retirar permisos sin recrear el usuario.
Se solucionó un problema que podía perder la referencia de algunas imágenes al editar los datos del producto.
Se agregó la opción de enviar avisos desde el administrador a un usuario específico o a todos los usuarios de la plataforma.
Se organizó una vista administrativa con la información del comprador, productos, cantidades, pago y estado actual.
Se agregó una animación propia para mostrar un estado más amigable cuando todavía no hay productos seleccionados.
Se ajustó la lógica para marcar una notificación como leída al abrir su detalle.
Se añadió el envío y reproducción de audios dentro de los mensajes.
Se agregó una comprobación para evitar guardar turnos que entren en conflicto con los horarios ya asignados.
Se mejoró el cuerpo del correo para conservar saltos de línea, negrillas y otros elementos básicos de formato.
Se corrigió el comportamiento de las recetas sin una imagen válida para evitar espacios vacíos en la vista.
Se mejoró el manejo de imágenes y archivos asociados a los proyectos para facilitar su actualización desde el administrador.
Se ajustó la interacción para resaltar las estrellas antes de confirmar la puntuación seleccionada.
Se mejoraron los mensajes mostrados cuando un usuario intenta ingresar a un rol que no tiene asignado.
Se corrigió la lógica para impedir que una pregunta respondida pudiera contestarse nuevamente por error.
Se agregaron acciones para aprobar o rechazar pedidos y moverlos automáticamente a la sección correspondiente.
Se agregó una señal verde o roja y se desactiva la compra cuando el producto tiene el stock en cero.
Se permitió visualizar archivos de video directamente en la conversación sin abrir otra página.
Se separaron las notificaciones no vistas de las ya consultadas para facilitar su organización.
Se creó una sección inferior para mostrar productos, cantidades y total sin ocultar la información dentro de un menú desplegable.
Se agregaron controles visuales en la parte inferior para reforzar la simulación de un teléfono.
Se incorporaron opciones para crear, consultar y eliminar proyectos desde el administrador sin tener que modificar la información directamente en la base de datos.
Se creó la primera bandeja administrativa para consultar los pedidos recién generados.
Se incorporó la carga de documentos, imágenes y otros archivos para enviarlos junto con el mensaje.
Se agregó una sección para crear credenciales y controlar el acceso de nuevos usuarios directamente desde el panel administrador.
Se permitió relacionar una notificación con un proyecto para dirigir al usuario hacia su información desde el mismo aviso.
Se amplió la malla para permitir horarios en cualquier día de la semana, incluidos domingos y festivos.
Se organizó una interfaz separada para que los usuarios registrados pudieran consultar los proyectos y funcionalidades disponibles.
Se agregó una presentación diferente para imágenes, documentos y archivos descargables para que el historial fuera más fácil de leer.
Se agregó el formulario para contestar una pregunta y cambiar automáticamente su estado a respondida.
Se amplió la actualización para permitir cambiar imagen, ingredientes, pasos, nombre y nota desde un mismo formulario.
Se añadió la elección del medio de pago antes de registrar definitivamente el pedido.
Se desactiva la opción de añadir al carrito cuando el producto seleccionado ya no tiene unidades disponibles.
Se creó el flujo donde la persona elige una interfaz y el sistema valida si sus credenciales tienen permiso para entrar.
Se incorporaron listas para definir hora de entrada y salida usando franjas de treinta minutos.
Se amplió el chat para adjuntar imágenes, PDF, Word, Excel y otros archivos desde el mismo campo de conversación.
Se implementó la generación de una contraseña temporal y su envío automático al correo utilizado durante el registro.
Se diseñó un marco tipo teléfono con barra superior e iconos para que la agenda se sintiera como una aplicación móvil.
Se agregó la posibilidad de escribir varios correos separados por comas y enviarlos en una misma acción.
Se agregó el acceso para usuarios registrados con validación de correo y contraseña antes de entrar a la zona privada.
Se incorporó una alerta para evitar que el mismo producto se agregara varias veces como registros separados.
Se creó la estructura inicial del administrador para empezar a manejar el contenido del portafolio desde una interfaz separada.
Se incorporó un estado para bloquear el inicio de sesión de un usuario sin tener que eliminar su cuenta.
Se creó la interfaz con asunto, destinatarios y cuerpo del mensaje para preparar nuevos envíos.
Se permitió eliminar imágenes existentes y agregar nuevas durante la edición de un producto.
Se agregó la selección de uno o varios roles por usuario y su almacenamiento para validar accesos posteriores.
Se incorporó la opción de generar el mismo aviso para todos los usuarios registrados.
Se creó una galería con imagen principal y miniaturas para recorrer las fotografías de cada producto.
Se agregaron botones para cambiar la cantidad de un producto antes de enviarlo al carrito.
Se agregó la selección de un destinatario para enviar notificaciones individuales desde el administrador.
Se agregó una fotografía genérica cuando el usuario guarda un contacto sin subir una imagen.
Se creó la lógica inicial para guardar temporalmente los productos seleccionados y la cantidad escogida.
Se incorporaron los datos personales y de entrega necesarios para completar el proceso de compra.
Se creó la funcionalidad para agregar, editar y eliminar contactos con nombre, número y fotografía.
Se agregaron estados para identificar el avance de cada mensaje dentro de la conversación.
Se incorporó el aviso de “escribiendo…” para mostrar actividad mientras la otra persona prepara un mensaje.
Se agregó una tabla para visualizar los días y horas asignados a cada usuario.
Se creó la administración de usuarios con la información necesaria para relacionarlos con sus turnos de trabajo.
Se permitió publicar una opinión usando solo estrellas, solo comentario o ambos campos al mismo tiempo.
Se integró PHPMailer y se realizaron las primeras pruebas de envío desde el servidor.
Se creó una vista administrativa para separar las consultas pendientes de las que ya tenían respuesta.
Se agregó el componente de estrellas con selección visual para guardar una calificación del producto.
Se cambió la presentación del usuario para mostrar las recetas en tarjetas con imagen y acceso al detalle completo.
Se creó la administración básica para registrar, consultar, editar y eliminar usuarios.
Se ajustaron los enlaces internos del menú para llegar más rápido a proyectos, perfil, referencias, preguntas frecuentes y contacto.
Se creó la estructura para guardar mensajes, usuario destinatario, proyecto relacionado y estado de lectura.
Se agregó una vista con productos, cantidades, valores y total antes de confirmar el pedido.
Se creó la vista para enviar una opinión desde el detalle de un producto.
Se incorporó un botón para agregar más campos de archivo sin tener que recargar el formulario.
Se crearon las tablas principales para guardar la información general del pedido y los productos asociados a cada compra.
Se organizó la base de datos para identificar a qué producto pertenece cada pregunta enviada.
Se agregó la posibilidad de cargar varias imágenes y relacionarlas con un mismo producto.
Se agregó la consulta periódica de mensajes para mostrar nuevas respuestas sin recargar toda la página.
Se agregó una sección para que cualquier persona pudiera dejar preguntas sobre un producto sin registrarse.
Se agregó una presentación por tarjetas para separar los proyectos y mostrar de forma más clara su categoría, nivel y acceso.
Se creó la base del chat para guardar y mostrar mensajes entre dos usuarios desde interfaces separadas.
Se corrigió la distribución del menú y de los bloques principales para que la página se adaptara mejor a pantallas pequeñas.
Se creó el CRUD base para guardar nombre, precio, stock, descripción e imagen del producto.
Se implementó la numeración automática de los pasos para que la preparación quedara más organizada al escribirla.
Se organizó la página principal con las secciones base para presentar los proyectos, la información personal y los datos de contacto.
Se agregó una ayuda en JavaScript para convertir cada nueva línea de ingredientes en una lista con viñetas.
Se creó el formulario inicial para guardar nombre, ingredientes, preparación, nota e imagen de cada receta.
¡Hola! 🙋♂️ Soy Santiago, desarrollador web apasionado por crear herramientas prácticas, eficientes y visualmente atractivas. Me dedico principalmente al desarrollo con tecnologías como:
⭐ PHP
⭐ JavaScript
⭐ MySQL
⭐ HTML / CSS
⭐ Integración de APIs, automatización y servicios web 🔗
Cuando no estoy programando, disfruto de mis hobbies:
🎮 Videojuegos
🎵 Música
📚 Aprender nuevas tecnologías
💡 Crear proyectos personales
También incluyo una foto mía 👇 y una descripción breve dentro del blog para que puedas conocer un poco más sobre mí de manera más cercana y auténtica 😊.
Si quieres conocer más sobre mí, ver mi perfil completo, mi experiencia y algunos detalles adicionales dentro del blog 👇
Explorar ahora: Ir al perfil completo
En el blog encontrarás una sección completa de FAQ dividida en diferentes categorías:
📌 Blog general
Preguntas sobre cómo funciona, navegación, contenido, etc.
🔐 Registro & Inicio de Sesión
Cómo registrarse, recuperar contraseña, activar cuenta.
🧰 Proyectos
Cómo verlos, cuáles son privados, niveles de dificultad, lenguajes usados.
💬 Chat
Cómo funciona SanBot, cómo interactuar y qué puede responder.
📨 Contacto
Cómo comunicarte conmigo, formularios y enlaces externos.
Además, cada pregunta tiene un formato desplegable: 👉 *al hacer click, se abre mostrando su respuesta detallada.*
Si quieres ver todas las preguntas con sus respuestas completas y navegar por cada categoría de forma interactiva 👇
Explorar sección: Ver preguntas frecuentes
En el blog podrás explorar mis proyectos organizados por categorías:
⚙️ Aplicaciones básicas
📊 Negocios y productividad
💬 Comunicación e interacción
🛡️ Seguridad y multiusuario
🌐 Servicios Web y APIs
Cada card contiene:
🔸 Título del proyecto
🔸 Lenguajes usados (PHP, JS, SQL, etc.)
🔸 Nivel: 🟢 Principiante – 🟡 Intermedio – 🔴 Avanzado
🔸 Tipo: Público o Privado 🔒
Algunos proyectos incluyen documentación, vistas previas, capturas y futuros registros de cambios que detallan mejoras, actualizaciones y correcciones.
Puedes explorar todos los proyectos, ver sus detalles, tecnologías utilizadas y acceder a más información directamente desde el blog 👇
Ver todos los proyectos: Explorar proyectos →
Estas son algunas de las herramientas que uso en el blog y mis proyectos:
🔹 PHP - Backend y APIs
🔹 JavaScript - Interacción y lógica del cliente
🔹 MySQL - Bases de datos
🔹 HTML / CSS - Estructura y diseño
🔹 AJAX - Comunicación asíncrona
Algunas de las librerías, frameworks y plataformas usadas:
📘 Bootstrap
🎨 FontAwesome
🎯 jQuery
🔗 APIs externas
💾 GitHub para repositorios
Si quieres conocer en detalle todas las tecnologías, herramientas y recursos que utilizo en mis proyectos 👇
Ver tecnologías: Ir a tecnologías →
Esta sección muestra todos los cambios realizados tanto en el blog como en los proyectos. Aquí podrás ver:
🚀 Nuevas funcionalidades (amarillo)
🐞 Correcciones de errores (rojo)
⚡ Mejoras / Optimización (verde)
🎨 Cambios visuales / UI (lila)
⚙️ Refactor interno / Backend (azul)
Cada entrada del changelog contiene:
🔸 Nombre del proyecto
🔸 Título del cambio
🔸 Descripción detallada
🔸 Fecha de implementación 📅
🔸 Horas invertidas ⏱️
🔸 Color según categoría
También habrá un botón en el index que redirecciona a la página con la lista completa de cambios para una consulta más detallada.
Puedes revisar el historial completo de cambios, mejoras y actualizaciones de cada proyecto directamente en el blog 👇
Explorar cambios: Ver todos los cambios
👋 ¡Gracias por usar SanBot ! Si necesitas más ayuda, vuelve a buscarme.