- Ingeniería de software, sus principios y objetivos
- Metodologías en Espiral, Iterativa y Ágiles
- Prácticas ágiles
- Métodos ágiles
- Evolución de las metodologías ágiles
- Metodologías ágiles frente a metodologías pesadas
- Principios de las metodologías ágiles
- Agile Manifesto
- User History
- La iteracción como alternativa a la planificación lineal
- La comunicación y la motivación
- Características del liderazgo participativo
- Pensamiento disruptivo y desarrollo de la idea
- Prueba y error, learning by doing
- Definición y características de Extreme Programming
- Fases y reglas de XP
- La implementación y el diseño
- Los valores de XP
- Equipo y cliente de XP
- La teoría Scrum: framework
- El equipo
- Sprint Planning
- Cómo poner en marcha un Scrum
- Introducción al método Kanban
- Consejos para poner en marcha kanban
- Equipo
- Business Model Canvas o lienzo del modelo de negocio
- Scrumban
- Introducción al Lean Thinking
- Lean Startup
- Agile Inception Deck
- Design Thinking
- DevOps
- Dynamic Systems Development Method (DSDM)
- Crystal Methodologies
- Adaptative Software Development (ASD)
- Feature Driven Development (FDD)
- Agile Unified Process
- Conceptualización de Full Stack Developer
- Características del desarrollador full stack
- Ventajas y desventajas de full stack
- Capas de full stack
- Introducción
- La usabilidad
- Qué es UI vs UX - interfaz de usuario vs Experiencia de usuario
- Atributos
- Complejidad e importancia de la usabilidad
- Pirámide de prioridades de la usabilidad
- Mejoras de la usabilidad al producto final
- Procesos y herramientas
- Definición de Experiencia de Usuario
- Principios de la Experiencia de Usuario
- El papel del diseñador UX en el proceso de creación
- Etapas del diseño UX
- Técnicas para el diseño UX
- Herramientas UX
- ¿Qué es el Diseño Centrado en el Usuario?
- ¿Para que sirve el Diseño Centrado en el Usuario?
- Las metodologías del Diseño Centrado en el Usuario
- El marketing centrado en el usuario
- Aplicación del Diseño Centrado en el Usuario
- Ejemplos del Diseño Centrado en el Usuario
- Introducción
- Un proceso multidisciplinar
- La usabilidad aplicada
- El ciclo diseño-investigación
- Definición de Interfaz de Usuario - UI
- Elementos de la interfaz de Usuario
- Optimización de las interfaces de Usuario
- Herramientas para el diseño UI
- Diseño basado en las percepciones
- Fundamentos del diseño de interacción
- Moodboards
- Qué es el IxD
- Proceso de negocio
- User persona
- Screen flow
- Wireframes
- Diseño Alta Fidelidad
- Prototipado
- Feedback y entrega
- Principios del diseño aplicados al UI
- Principios de claridad
- Reglas Heurísticas de usabilidad
- Elementos de una interfaz de usuario
- Patrones y consistencias del diseño UI
- UI kits
- Atomic Design
- Icon Design
- Los sistemas de diseño
- Principios del Motion
- Microinteracciones
- ¿Qué es el control de versiones?
- ¿Qué es GIT?
- ¿Por qué GIT?
- Instalación de GIT
- GitHub y su relación con GIT
- Flujo de trabajo en GIT (Workflow)
- Principales comandos Git Bash
- Crear un repositorio
- Cambios de archivos
- Deshacer cambios
- Sincronizar repositorios
- Reescribir historial
- Usar ramas en GIT
- Cambiar ramas (Git checkout)
- Ramas remotas (Remote Branches)
- Flujo de trabajo (Workflow)
- Integración de ramas
- Borrado de ramas
- Etiquetas (Tags)
- Solicitudes de extracción (Pull requests)
- Comandos GIT en Git Bash
- Comandos GIT para configurar y crear repositorios
- Comandos GIT para preparar y confirmar cambios
- Comandos GIT para trabajar con repositorios remotos (como GitHub)
- Comandos GIT para deshacer cambios y etiquetas
- Trabajar con GIT
- Confirma con regularidad (commit)
- Escriba mensajes de confirmación útiles
- Utilice ramas (Branch)
- Actualice su repositorio antes de enviar cambios (Pull y Push)
- Divide el trabajo en repositorios
- Introducción CSS
- Soporte de CSS en navegadores
- Especificación oficial
- Funcionamiento básico de CSS
- ¿Cómo incluir CSS en la Web?
- Estilo básico
- Medios CSS
- Comentarios
- Sintaxis de la definición
- Selectores CSS
- Unidades de medida
- Colores
- Pseudoclases
- Pseudo-elementos
- Otras pseudoclases y pseudoelementos
- Modelo de cajas
- Propiedades de las cajas
- Margen, relleno, bordes y modelo de cajas
- Posicionamiento y visualización
- Posicionamiento
- Visualización
- En qué cosiste
- Visualización: Display
- Contenedores flexibles: flex e inline-flex
- Orientación: flex-box, flex-direction y flex-wrap
- La propiedad order
- Alineación de los elementos flexibles
- Soporte de los navegadores
- Crear y vincular hojas de estilos
- Estructura
- Propiedades CSS
- Selectores
- Posición y tamaño
- Texto
- Imágenes
- Listas, tablas, formularios
- Introducción
- Definición de Diseño Web Responsive
- ¿En qué consiste el diseño responsive?
- Ventajas del diseño responsive
- SEO y diseño responsive
- Introducción a Bootstrap 5
- Diferencias entre Bootstrap 4 y Bootstrap 5
- Generalidades de Bootstrap 5
- Descarga e instalación de Bootstrap 5
- Uso de container y Media Queries (Responsive breakpoints)
- Utilidades dentro de nuestro layout: flexbox, margin, padding and visibility
- Estructura básica del Grid
- Posibilidades de personalización del Grid
- Tablas
- Jumbotron
- Alertas
- Barras de progreso
- Paginación
- Listas de grupos
- Desplegables
- Barras de navegación
- Formularios
- Carruseles
- Modales
- Tipografía
- Colores
- Imágenes
- Botones
- Formularios personalizados
- Bordes: color, posición y radio
- Uso de Clearfix
- Colores de fondo con grado de intensidad
- Uso del atributo Display
- Uso del sistema Flex
- Fijación de elementos mediante posiciones
- Modificaciones avanzadas del texto
- Ejemplos combinados del uso de Bootstrap en nuestra página
- Introducción
- Instalación
- Creando un proyecto
- Introducción
- Estructura
- Editar el código
- Crear una aplicación
- Introducción
- Propiedades y datos
- Métodos y objetos
- Clases
- Introducción
- Tipos de directivas
- Crear una directiva
- Utilizar la directiva
- Introducción
- Tipos de pipes
- Usando pipes
- Pipes personalizados
- Introducción
- Configuración
- Componentes
- Router links
- Router outlet
- Introducción
- Implementar
- Obtener datos
- Peticiones
- Introducción
- Creación
- Validación
- Estados
- Introducción
- Instalación
- Iconos
- Componentes
- Navegación
- Formulario
- Layout
- Introducción a las Progressive Web Apps (PWA)
- Características clave de las PWA
- Arquitectura básica de una PWA
- Preparación del entorno de desarrollo para PWA
- Uso de HTTPS y seguridad en PWA
- Conceptos fundamentales de Service Workers
- Registro y ciclo de vida de un Service Worker
- Instalación y activación de un Service Worker
- Estrategias de caché con Service Workers
- Notificaciones push en PWA con Service Workers
- Sincronización de datos en segundo plano con SyncManager
- Manejo de actualizaciones de Service Workers
- Depuración y herramientas para Service Workers
- Introducción al Web App Manifest
- Estructura y propiedades del Web App Manifest
- Iconos y recursos para diferentes dispositivos
- Configuración de la pantalla de inicio en dispositivos móviles
- Temas de color y estilo de la aplicación
- Personalización de la barra de navegación y notificaciones
- Enlace del Web App Manifest en el documento HTML
- Verificación y prueba del Web App Manifest
- ¿Qué es NodeJS?
- Historia de NodeJS
- Ventajas y desventajas
- Ecosistema de NodeJS
- Frameworks y herramientas de NodeJS
- Descarga e instalación de NodeJS
- Uso del gestor de paquetes NPM
- Configuración de entornos de desarrollo
- Uso de versiones de NodeJS con NVM
- Configuración de variables de entorno
- MódulosVariables globales
- Tipos de datos
- Funciones
- Funciones asíncronas
- Promises
- Acceso a archivos y directorios
- Creación y eliminación de archivos y directorios
- Manejo de rutas
- Operaciones asíncronas
- Lectura y escritura de archivos de texto y binarios
- Compresión y descompresión de archivos
- Creación de un servidor web con NodeJS
- Manejo de solicitudes HTTP
- Enrutamiento de solicitudes
- Uso de middleware
- Uso de plantillas de vistas
- Manejo de errores en NodeJS
- Introducción a bases de datos con NodeJS
- Uso de MongoDB con NodeJS
- Uso de MySQL con NodeJS
- ORM (Object-Relational Mapping)
- Manejo de transacciones en bases de datos
- ¿Qué es ExpressJS?
- Creación de aplicaciones web con ExpressJS
- Manejo de rutas en ExpressJS
- Uso de middleware en ExpressJS
- Uso de cookies y sesiones en ExpressJS
- Validación de datos en ExpressJS
- Introducción a la autenticación y autorización
- Implementación de autenticación con Passport
- Uso de JSON Web Tokens (JWT) para autorización
- Manejo de sesiones de usuario
- Implementación de autenticación con OAuth
- ¿Qué son los websockets?
- Implementación de websockets con Socket.IO
- Comunicación en tiempo real con websockets
- Uso de websockets para notificaciones push
- Escalabilidad y rendimiento de aplicaciones con websockets
- Preparación de una aplicación
- Uso de PM2 para gestionar procesos de NodeJS
- Configuración de servidores de producción
- Despliegue de aplicaciones en plataformas de hosting
- Monitoreo y análisis de rendimiento de aplicaciones en producción
- Importancia del testing en NodeJS
- Uso de frameworks de testing
- Tipos de pruebas
- Automatización de pruebas
- Estrategias de pruebas
- Introducción a las aplicaciones en tiempo real
- Implementación de aplicaciones en tiempo real con Socket.IO
- Uso de WebRTC para comunicación en tiempo real
- Escalabilidad y rendimiento de aplicaciones
- Casos de uso de aplicaciones en tiempo real
- ¿Qué es la seguridad web?
- Amenazas para un sitio web
- Consejos para mantener un sitio web seguro
- Otros consejos de seguridad web
- Proveedores de alojamiento web seguros
- ¿Qué es OWASP? ¿Y OWASP Development?
- ¿Qué es ASVS?
- Uso del ASVS
- Requisitos de arquitectura, diseño y modelado de amenazas
- Requisitos de verificación de autenticación
- Requisitos de verificación de gestión de sesión
- Requisitos de verificación de control de acceso
- Requisitos de validación, desinfección y verificación de la codificación
- Requisitos de verificación de criptografía almacenados
- Requisitos de manejo de verificaciones y registro de errores
- Requisitos de verificación de protección de datos
- Requisitos de verificación de comunicaciones
- Requisitos de verificación de código malicioso
- Requisitos de verificación de lógica de negocios
- Requisitos de verificación de archivos y recursos
- Requisitos de verificación de API y servicio web
- Requisitos de verificación de configuración
- Requisitos de verificación de Internet de las Cosas
- Glosario de términos
- Aspectos introductorios
- La Guía de Pruebas de OWASP
- El framework de pruebas de OWASP
- Pruebas de seguridad de aplicaciones web
- Reportes de las pruebas
- Aspectos introductorios
- Revisión de código seguro
- Metodología
- Broken Access Control - Control de acceso roto (A01:2021)
- Cryptographic Failures - Fallos criptográficos (A02:2021)
- Injection - Inyección (A03:2021)
- Insecure Design - Diseño Inseguro (A04:2021)
- Security Misconfiguration - Configuración incorrecta de seguridad (A05:2021)
- Vulnerable and Outdated Components - Componentes vulnerables y obsoletos (A06:2021)
- Identification and Authentication Failures - Fallos de Identificación y Autenticación (A07:2021)
- Software and Data Integrity Failures - Fallos de integridad de software y datos (A08:2021)
- Security Logging and Monitoring Failures - Registro de seguridad y fallos de monitoreo (A09:2021)
- Server-Side Request Forgery (SSRF) - Falsificación de solicitud del lado del servidor (A10:2021)