Full Stack Open
En este repositorio, se encuentran mis respuestas a los ejercicios del curso Full Stack Open, dictado por la Universidad de Helsinki en colaboracion con Houston Inc.
Desarrollador :
- Desarrollador: Matias Di Risio
- GitHub: DiriARG
Contenidos del curso :
- Parte 0: Fundamentos de las aplicaciones web
- Parte 1: Introduccion a React
- Parte 2: Comunicandose con el servidor
- Parte 3: Programando un servidor con NodeJS y Express
- Parte 4: Probando servidores Express, administracion de usuarios
- Parte 5: Probando aplicaciones React
- Parte 6: Gestion avanzada del estado
- Parte 7: React router, custom hooks, estilando la aplicacion con CSS y webpack
- Parte 8: GraphQL
- Parte 9: TypeScript
- Parte 10: React Native
- Parte 12: Contenedores
- Parte 13: Utilizando bases de datos relacionales
- Certificados del curso
Parte 0: Fundamentos de las aplicaciones web:
En esta parte, nos familiarizaremos con los aspectos practicos de realizar el curso. Despues de eso, tendremos una descripcion general de los conceptos basicos del desarrollo web y tambien hablaremos sobre los avances en el desarrollo de aplicaciones web durante las ultimas decadas.
Parte 1: Introduccion a React:
En esta parte, nos familiarizaremos con la libreria React, que usaremos para escribir el codigo que se ejecuta en el navegador. Tambien veremos algunas caracteristicas de JavaScript que son importantes para comprender React.
Parte 2: Comunicandose con el servidor:
Continuemos nuestra introduccion a React. Primero, veremos como representar una coleccion de datos, como una lista de nombres, en la pantalla. Despues de esto, inspeccionaremos como un usuario puede enviar datos a una aplicacion React utilizando formularios HTML. A continuacion, nuestro enfoque se centra en ver como el codigo JavaScript en el navegador puede obtener y manejar los datos almacenados en un servidor backend remoto. Por ultimo, echaremos un vistazo rapido a algunas formas sencillas de agregar estilos CSS a nuestras aplicaciones React.
Parte 3: Programando un servidor con NodeJS y Express:
En esta parte, nuestro enfoque se desplaza hacia el backend, es decir, hacia la implementacion de la funcionalidad en el lado del servidor. Implementaremos una API REST simple en Node.js utilizando la libreria Express, y los datos de la aplicacion se almacenaran en una base de datos MongoDB. Al final de esta parte, desplegaremos nuestra aplicacion en Internet.
Parte 4: Probando servidores Express, administracion de usuarios:
En esta parte, continuaremos nuestro trabajo en el backend. Nuestro primer tema principal sera escribir pruebas de unidad e integracion para el backend. Una vez que hayamos cubierto las pruebas, analizaremos la implementacion de la autenticacion y autorizacion de usuario.
Parte 5: Probando aplicaciones React:
En esta parte volvemos al frontend, primero mirando a diferentes posibilidades para probar el codigo React. Tambien implementaremos la autenticacion basada en tokens que permitira a los usuarios iniciar sesion en nuestra aplicacion.
Parte 6: Gestion avanzada del estado:
Hasta ahora, hemos colocado el estado de la aplicacion y la logica de estado directamente dentro de los componentes de React. Cuando las aplicaciones crecen, la administracion del estado debe trasladarse fuera de los componentes de React. En esta parte, presentaremos la libreria Redux, que actualmente es la solucion mas popular para administrar el estado de las aplicaciones React.
Aprenderemos sobre la version ligera de Redux compatible directamente con React, es decir el contexto de React y el hook useRedux, tambien sobre la libreria React Query que simplifica la gestion de estados de la aplicacion.
Parte 7: React router, custom hooks, estilando la aplicacion con CSS y webpack:
La septima parte del curso aborda varios temas diferentes. Primero, nos familiarizaremos con React Router. React Router nos ayuda a dividir la aplicacion en diferentes vistas que se muestran segun la URL en la barra de direcciones del navegador. Despues de esto, veremos algunas formas mas de agregar estilos CSS a las aplicaciones React. Durante todo el curso hemos utilizado Vite para construir nuestras aplicaciones. Tambien es posible configurar todas las herramientas uno mismo, y en esta parte veremos como se puede hacer esto con una herramienta llamada Webpack. Tambien echaremos un vistazo a las funciones hook y a como definir un hook personalizado.
Parte 8: GraphQL:
Esta parte del curso trata sobre GraphQL, la alternativa de Facebook a REST para la comunicacion entre navegador y servidor.
Parte 9: TypeScript:
Esta parte trata sobre TypeScript: un superconjunto de JavaScript de codigo abierto desarrollado por Microsoft que se compila en JavaScript simple.
En esta parte, utilizaremos las herramientas introducidas anteriormente para anadir funcionalidades end-to-end a un ecosistema existente, con linters predefinidos y una base de codigo existente, mientras escribimos TypeScript. Despues de hacer esta parte, deberias poder comprender, desarrollar y configurar proyectos utilizando TypeScript.
Esta parte fue creada por Tuomo Torppa, Tuukka Peuraniemi y Jani Rapo, los increibles desarrolladores de Terveystalo, el proveedor de servicios de salud privado mas grande de Finlandia. La red nacional de Terveystalo cubre 300 ubicaciones en Finlandia. La red de clinicas se complementa con servicios digitales 24/7.
Parte 10: React Native:
En esta parte, aprenderemos como compilar Android nativo y aplicaciones moviles iOS con JavaScript y React usando el marco React Native. Nos sumergiremos en el ecosistema React Native desarrollando una aplicacion movil completa desde cero. En el camino, aprenderemos conceptos tales como como renderizar componentes de interfaz de usuario nativos con React Native, como crear hermosas interfaces de usuario, como comunicarse con un servidor y como probar una aplicacion React Native.
Important
La parte 11 del curso no fue realizada porque, al momento de redactar este README, no se encontraba disponible en espanol, unicamente en ingles.
Parte 12: Contenedores:
En esta parte, aprenderemos como empaquetar el codigo en unidades de software estandarizadas llamadas contenedores. Estos contenedores pueden ayudarnos a desarrollar software mas rapido y facil que antes. Durante el camino exploraremos un punto de vista completamente nuevo del desarrollo web, alejado de los ya familiares Node.js y React.
Utilizaremos contenedores para crear entornos de ejecucion inmutables para nuestros proyectos de Node.js y React. Los contenedores tambien simplifican la inclusion de multiples servicios en nuestros proyectos. Con su flexibilidad, exploraremos y experimentaremos con muchas herramientas populares al utilizar los contenedores.
Esta seccion ha sido creada por Jami Kousa en colaboracion con el equipo Services Fundation de Unity radicado en Helsinki. El equipo Services Fundation trabaja como proveedor de plataformas para el resto de los equipos de Unity en su mision de construir excelentes servicios para sus clientes. El equipo esta enfocado en mejorar la experiencia de los desarrolladores de Unity y trabaja en herramientas como el Unity Dashboard, el Unity Editor y Unity.com.
Parte 13: Utilizando bases de datos relacionales:
En las secciones anteriores del curso, usamos MongoDB para almacenar datos. MongoDB es una base de datos llamada NoSQL. Las bases de datos NoSQL se volvieron muy comunes hace poco mas de 10 anos, cuando el crecimiento de Internet comenzo a producir problemas para las bases de datos relacionales que utilizaban el lenguaje de consulta SQL antiguo.
Las bases de datos relacionales han experimentado desde entonces un nuevo comienzo. Los problemas de escalabilidad se han resuelto parcialmente y tambien han adoptado algunas de las caracteristicas de las bases de datos NoSQL. En esta seccion exploramos diferentes aplicaciones de NodeJS que usan bases de datos relacionales, nos enfocaremos en usar la base de datos PostgreSQL que es la numero uno en el mundo de codigo abierto.