react-eth-challenge icon indicating copy to clipboard operation
react-eth-challenge copied to clipboard

React Eth Challenge Solved - albbeltran

Open albbeltran opened this issue 2 years ago • 0 comments

DESCRIPTION

Solución al reto: react-eth-callenge

Nombre: Alberto Beltrán Usuario Platzi: albertobeltran

Deploy: https://react-eth-challenge-albbeltran.netlify.app/

Reto:

  • [x] Primer problema
  • [x] Segundo problema
  • [x] Tercer problema
  • [x] Cuarto Problema
  • [x] Quinto Problema
  • [x] Sexto Problema
  • [x] Septimo Problema

DOCUMENTACION

Estructura

La estructura original (directorios) se conservó, agregando únicamente un directorio para los componentes src/components/, así como un directorio correspondiente para los estilos src/styles/components/

📦src ┣ 📂components ┃ ┣ 📜About.jsx ┃ ┣ 📜Academic.jsx ┃ ┣ 📜Experience.jsx ┃ ┣ 📜Header.jsx ┃ ┣ 📜Interest.jsx ┃ ┣ 📜Languages.jsx ┃ ┣ 📜Profile.jsx ┃ ┗ 📜Skills.jsx ┣ 📂containers ┃ ┗ 📜App.jsx ┣ 📂styles ┃ ┗ 📂components ┃ ┃ ┣ 📜App.css ┃ ┃ ┣ 📜Container.js ┃ ┃ ┗ 📜Heading.js ┣ 📂utils ┃ ┗ 📜getData.js ┣ 📂__mocks__ ┃ ┗ 📜styleMock.js ┣ 📂__test__ ┃ ┣ 📂components ┃ ┃ ┣ 📜About.test.js ┃ ┃ ┣ 📜Academic.test.js ┃ ┃ ┣ 📜Experience.test.js ┃ ┃ ┣ 📜Header.test.js ┃ ┃ ┣ 📜Interest.test.js ┃ ┃ ┣ 📜Languages.test.js ┃ ┃ ┣ 📜Profile.test.js ┃ ┃ ┗ 📜Skills.test.js ┃ ┣ 📂Utils ┃ ┃ ┗ 📜AgetData.test.js ┃ ┗ 📜setupTest.js ┗ 📜index.js

Componentes

Los componentes fueron realizados dentro del directorio src/, cumpliendo con los solicitados para el proyecto.

Estilos

Los estilos fueron agregados utilizando Bootstrap 5, mediante CDN, y con el paquete de Styled Components, además de implementar también estilos css puros. Mediante el uso de Styled Components se logró la reutilización de código, mediante el uso de los componentes Heading y Container.

Todos los estilos fueron ubicados dentro del directorio src/styles/

Hooks

Se implementó useState y useEffect para el manejo de estados, los cuales gestionan la información obtenida por la API, para posteriormente pasarla como props a los componentes correspondientes. No se implementaron estados globales dado que el paso de props es gestionado adecuadamente, evitando el prop drilling.

Consumo de API (getData.js)

La API se consumió mediante .then y .catch, en la función getData, dentro de src/utils/getData.js, la cual se exporta por default, y es utilizada en el archivo App.jsx para obtener la información y gestionarla mediante el uso de hooks. La función getData retorna la información en formato JSON.

Deploy

El deploy se realizó en Netlify, ejecutando previamente el comando npm run build que configura la aplicación para realizar el deploy.

albbeltran avatar Jul 11 '22 20:07 albbeltran