Hola, soy Sebastián Alonso, te doy la bienvenida al curso y espero que próximamente puedas estar desarrollando tus propias aplicaciones con Angular de Página Única, con todos los conceptos y buenas prácticas que veremos a lo largo del curso. Utilizaremos Angular, que es un framework de Google, que nos permite desarrollar páginas basadas en componentes gráficos y librerías, es decir, que nuestra página será la resultante del trabajo en conjunto de muchos elementos especializados, algunos desarrollados por nosotros mismos y otros, desarrollados por Angular, o su comunidad de código abierto, o bien, incluso, utilizando paquetes de "NPM". "NPM" es un gestor de librerías para el lenguaje "Node JS", que nosotros estaremos utilizando de manera indirecta, ya que utilizaremos "Typescript". "Typescript" es un lenguaje de programación libre y de código abierto, desarrollado y mantenido por Microsoft. Es un súper conjunto de JavaScript que, esencialmente, añade tipado estático y objetos basados en clases. "Typescript" puede ser usado para desarrollar aplicaciones JavaScript que se ejecutarán en el lado del cliente o del servidor donde se lo conoce como "Node JS". "Typescript" extiende la sintaxis de JavaScript, por tanto, cualquier código JavaScript existente debería funcionar sin problemas. En el primer módulo aprenderás a crear un proyecto Angular y usar Typescript. Aprenderás sus principales características y lo importante para tener en cuenta en la definición de tu proyecto. Iremos profundizando temas para que domines a fondo los conceptos técnicos y luego utilizaremos librerías y herramientas. Finalizado el primer módulo, tendrás un conocimiento general de Typescript y buen criterio para estructurar en componentes una aplicación web del lado cliente SPA. En el módulo 2 trabajaremos con formularios y validaciones para aprender a hacer aplicaciones interactivas. Además, aprenderemos los principios de programación reactiva, utilizando librerías como "Redux", para hacer que nuestra página se refresque la interfaz de usuario automáticamente. En el módulo 3 veremos cómo manejar diferentes rutas en una misma SPA, con el fin de mostrar distintas pantallas, pero, sin recargar el navegador. Además, aprenderemos a interactuar con "API" a través de "HTTP" e invocaciones "Rest" utilizando protocolos, como "Json", como representación de la información transmitida. Por último, veremos cómo almacenar información usando tecnologías "HTML5" en base de datos "NoSQL" embebidas en el navegador a través del uso de "indexedDB". En el módulo 4 aprenderemos acerca del ciclo de vida de nuestros componentes. Aprenderemos a realizar nuestras propias directivas. Además, practicaremos el uso de componentes complejos como mapas. Por último, veremos el uso de librerías de pruebas automáticas, para hacer más robusto nuestro sistema. Por eso veremos "Jasmine", para realizar pruebas unitarias y usaremos "Cypress" para realizar pruebas de extremo a extremo. Para finalizar, integraremos nuestro repositorio de "Git" con "CircleCI" para implementar un Ciclo de Integración Continua, que nos garantice la salud de nuestra aplicación a medida que nosotros y, potencialmente, nuestro equipo de trabajo, trabajemos sobre un mismo repositorio. Durante los módulos, programaremos mucho, juntos y por tu cuenta. Al finalizar cada módulo habrá tareas obligatorias requeridas para la aprobación. Harás mucha práctica, así que éxitos y prepárate para aprobar.