Sobre este portafolio
Este portafolio es una aplicación web informativa que incluye algunos proyectos tipo demo para demostrar mis habilidades técnicas en desarrollo y programación. Entre los proyectos:
- To-Do List: Permite registrar actividades a lo largo de la semana con selección de días y horas, implementando funcionalidad de drag and drop.
- Detector de IA: Implementación de un modelo en Python simple que identifica el uso de inteligencia artificial en textos.
- Resumen de Diplomado: Presenta los contenidos aprendidos en un diplomado de ciberseguridad realizado en la Universidad Autónoma.
Tecnologías utilizadas
Este proyecto hace uso de múltiples tecnologías modernas para frontend, backend y análisis de datos:
- Next.js y React: para el desarrollo del frontend.
- NestJS: backend en TypeScript.
- TailwindCSS: para estilizar la interfaz de manera rápida y responsiva.
- Python + FastAPI: para el modelo predictivo de detección de IA.
- PostgreSQL: base de datos relacional con uso de ORM.
Infraestructura
La infraestructura donde corre esta aplicación fue diseñada, configurada y administrada completamente por mí, con un enfoque práctico orientado a disponibilidad, control y aprendizaje.
- Servidor Linux configurado desde cero, gestionando servicios, procesos y recursos del sistema.
- Compra de dominio y configuración de DNS, certificados SSL, etc
- Uso de VPS y túneles SSH para exponer servicios internos a Internet.
- Administración de servicios web y backend asegurando ejecución continua y recuperación ante fallos básicos.
Herramientas
Para el despliegue y operación del sistema se utilizaron herramientas comunes en entornos productivos, priorizando simplicidad, control y estabilidad.
- Nginx: utilizado como servidor web y reverse proxy para enrutar tráfico hacia los distintos servicios backend.
- PM2: gestión de procesos para aplicaciones Node.js, permitiendo ejecución continua, reinicios automáticos y monitoreo básico.
- Certificados SSL / HTTPS: configuración de certificados para asegurar la comunicación entre cliente y servidor.
- Cloudflare: utilizado como proxy DNS y para mejorar seguridad básica, manejo de tráfico y protección frente a accesos no deseados.
Esta arquitectura permite separar responsabilidades, mantener los servicios internos controlados y exponer únicamente los puntos necesarios hacia Internet.
Consideraciones técnicas
Dado el carácter demostrativo del proyecto, no se implementaron pruebas unitarias ni pruebas de carga. Sin embargo, se priorizaron otros aspectos técnicos relevantes:
- Manejo explícito de errores y depuración durante el desarrollo.
- Código legible, estructurado y documentado, incluyendo documentación de APIs mediante Swagger.
- Separación clara entre frontend, backend y servicios auxiliares.
El sistema fue diseñado considerando principios básicos de seguridad, entendiendo que cualquier aplicación expuesta a Internet presenta una superficie de ataque inherente. El enfoque estuvo en minimizar riesgos comunes y mantener una arquitectura controlada y comprensible.