Skip to content

Solución de retos #108

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -209,13 +209,7 @@
"no-unneeded-ternary": 2,
"no-unreachable": 2,
"no-unused-expressions": 0,
"no-unused-vars": [
2,
{
"vars": "all",
"args": "none"
}
],
"no-unused-vars": "off",
"no-var": 2,
"no-void": 0,
"no-warning-comments": 0,
Expand Down Expand Up @@ -277,7 +271,14 @@
"react/no-did-mount-set-state": 2,
"react/no-did-update-set-state": 2,
"react/no-multi-comp": 0,
"react/no-unknown-property": 2,
"react/no-unknown-property": [
"error",
{
"ignore": [
"css"
]
}
],
"react/prop-types": 0,
"react/forbid-prop-types": 0,
"react/prefer-stateless-function": 0,
Expand Down
61 changes: 20 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,33 @@
# frontend
# Documentación

## React Curriculum vitae
## Retos
1. [Crear los componentes del proyecto](https://github.com/platzimaster/frontend/issues/1) ✔️
2. [Añadir estilos](https://github.com/platzimaster/frontend/issues/2) ✔️
3. [Crear función getData.js](https://github.com/platzimaster/frontend/issues/3) ✔️
4. [Integrar API](https://github.com/platzimaster/frontend/issues/4) ✔️
5. [Personalizar API](https://github.com/platzimaster/frontend/issues/5) ✔️
6. [Documentar](https://github.com/platzimaster/frontend/issues/6) ✔️

Crear tu curriculum vitae en React, analiza la estructura propuesta e inspirate para mostrar tu información.

![react-cv](https://github.com/PlatziMaster/frontend/blob/main/screenshot.png?raw=true)
## Solución

### Retos
1. [Crear los componentes del proyecto](https://github.com/platzimaster/frontend/issues/1)
2. [Añadir estilos](https://github.com/platzimaster/frontend/issues/2)
3. [Crear función getData.js](https://github.com/platzimaster/frontend/issues/3)
4. [Integrar API](https://github.com/platzimaster/frontend/issues/4)
5. [Personalizar API](https://github.com/platzimaster/frontend/issues/5)
6. [Documentar](https://github.com/platzimaster/frontend/issues/6)
El primer paso que realicé fue instalar las dependencias necesarias para poder integrar Bootstrap. Luego de hacer esto procedí a colocar el link del css y los scripts en el body para que funcionara correctamente.

### Instalación
```
npm install
```
Luego instalé emotion ya que me gusta usar styled components y ademas tambien suelo usar global y css para los estilos.

### Ejecución
```
npm run start
```
Al tener intaladas las dependencias necesarias para aplicar el css como suelo hacerlo procedí a crear un componente llamado Layout donde usé global para aplicar los estilos base.

### Server
```
npm run server
```
Despues comencé a crear los componentes, realmente no estoy 100% seguro de si tenia que seguir la estructura que estaba en la imagen o podia crear una, pero al final decidí en crear una nueva y espero que no afecte en la decisión de elegirme. Mientras iba haciendo cada uno de los componentes iba aplicando los estilos con los styled components y tambien aplicando algunos estilos lineales con la función css de @emotion/react. Cabe destacar que tambien me gusta ir dejando los componentes listos para que reciban la data de la API que proximamente iba a estructurar y lo que hacia era crear una variable con la estructura individual de cada componente.

### Compilar
```
npm run build
```
Luego de tener los componentes listos comencé a crear la función getData que no me llevó mucho tiempo.

### Pruebas Unitarias
```
npm run test
```
Teniendo la función getData lista lo que hice fue usar el useEffect en el componente App para poder pasar la data a sus hijos, pude haberlo llamado en cada uno de los componentes, pero creo que como lo hice es la mejor opción.

### ESlint
```
npm run lint
```
Para finalizar estructuré la API y terminé de pasar la data que necesitan cada uno de los componentes para mostrar la información correctamente.

### Enviar solución de reto
Debes de crear un "Fork" de este proyecto, revolver los problemas y crear un Pull Request hacia tu repositorio.
## NOTAS

### Contribuir
Si alguien quiere agregar o mejorar algo, lo invito a colaborar directamente en este repositorio: [frontend](https://github.com/platzimaster/frontend/)
Para los key usé el paquete uuid ya que me pareció la mejor opción, pensé en colocar los textos como keys, pero no lo vi muy correcto así que al final me fuí por uuid.

Tuve el siguiente error de eslint al hacer commit "error 'React' is defined but never used no-unused-vars". En las nuevas versiones React no necesita esta importación, pero tuve que importarla ya que los test no me pasaban si no lo hacia. Lo solucioné desactivando la regla "no-unused-vars" de eslint.

### Licencia
frontend se lanza bajo la licencia [MIT](https://opensource.org/licenses/MIT).
181 changes: 95 additions & 86 deletions data.json
Original file line number Diff line number Diff line change
@@ -1,110 +1,119 @@
{
"data": {
"name": "Melissa Walsh",
"profession": "FrontEnd Developer",
"address": "Bogotá, Colombia.",
"email": "[email protected]",
"website": "https://example.com",
"phone": "3042034240",
"avatar": "https://arepa.s3.amazonaws.com/melissa.jpg",
"Profile": "Ignore the squirrels, you'll never catch them anyway hack, for floof tum, tickle bum, jellybean footies curly toes climb leg roll over and sun my belly, ",
"certificate": [
"name": "Carlos Pérez",
"role": "Software Engineer",
"address": "Zulia, Venezuela (GMT-4)",
"email": "[email protected]",
"phone": "(+58) 412 1081136",
"links": [
{
"name": "Portfolio",
"url": "https://carlosperez.xyz"
},
{
"date": "Jan 2021",
"description": "Hack up furballs try to jump onto window and fall while scratching at wall. ",
"institution": "Platzi",
"name": "FrontEnd Developer"
"name": "LinkedIn",
"url": "https://www.linkedin.com/in/carlosdp7"
},
{
"date": "Jan 2021",
"description": "Scratch at the door then walk away wack the mini furry mouse",
"institution": "Platzi",
"name": "Backend Developer"
"name": "Github",
"url": "https://github.com/carlosdp7"
}
],
"Academic": [
{
"degree": "Atomic Master",
"description": " I’m so hungry i’m so hungry but ew not for that pelt around the house and up and down stairs chasing phantoms",
"endDate": "Jan 2017",
"institution": "MIT",
"startDate": "Jan 2018"
},
"profile": [
"Software Engineer with more than 3 years of experience developing technological solutions for companies from different industries using technologies such as Node.js, Express.js, MongoDB, and React.js. I focus on developing high-quality, scalable, and maintainable software that meets customer requirements and provides an excellent user experience.",
"I am passionate about technology and how it can transform our world. This is why I am always aware of the latest technological trends and always look for ways to apply them in my work.",
"I have skills in problem-solving, task organization, and time management. I like working in a team and collaborating with other engineers and designers to create innovative and effective solutions. I am proud to say that I have worked on successful projects and helped companies achieve technological goals.",
"I promise to continue learning and improving my technical and professional skills. If you are looking for an experienced and committed Software Engineer, please do not hesitate to contact me."
],
"academic": [
{
"degree": "Space Engineering",
"description": "Meow in empty rooms. Find empty spot in cupboard and sleep all day check cat door for ambush 10 times before coming in for hack. ",
"endDate": "Decenber 2015",
"institution": "Harvard",
"startDate": "Jan 2017"
"school": "Universidad Alonso de Ojeda",
"degree": "Bachelor's degree",
"fieldOfStudy": "Computer Engineering",
"startDate": "Jan 2019",
"endDate": "Mar 2023"
}
],
"experience": [
{
"company": "PugStar",
"title": "Software Engineer",
"companyName": "Aurora Studio",
"location": "Carlifornia, United States",
"startDate": "November 2019",
"endDate": "Present",
"jobDescription": "scratch the furniture. Good now the other hand, too lay on arms while you're using the keyboard.",
"jobTitle": "Frontend",
"startDate": "Jan 2020"
},
{
"company": "CatStore",
"endDate": "Jan 2016",
"jobDescription": "Meow in empty rooms lick left leg for ninety minutes, still dirty.",
"jobTitle": "Backend",
"startDate": "Sept 2019"
"time": "3 yrs 5 mos",
"description": [
"I designed a system capable of exchanging, buying and selling collectible cards implementing the microservices architecture.",
"I developed a real-time chat which increased the communication between the user and the administrator by 100%.",
"I implemented an optimal solution for a credit simulator which is capable of supporting more than 50 thousand vehicles.",
"I managed to successfully integrate different types of third-party APIs (Google Maps, Stripe, Shopify, etc) which increased development time considerably.",
"We managed to finalize a delivery system working as a team, meeting deadlines and obtaining 100% customer satisfaction.",
"I met with clients to understand their needs in order to develop and improve the end user experience.",
"Tech-Stack: Docker, Kubernetes, Redis, Web Scraping, Microservices, Node.js, TypeScript, React.js, Gatsby.js, Next.js, Bootstrap, REST APIs, Git, GitHub, Jest, Playwright, MongoDB, Express.js, Socket.io."
]
}
],
"skills": [
"projects": [
{
"name": "HTML5",
"percentage": "75%"
},
{
"name": "CSS",
"percentage": "25%"
},
{
"name": "JavaScript",
"percentage": "55%"
},
{
"name": "React",
"percentage": "90%"
"title": "Platzi Punks",
"description": [
"Development of a system capable of mint Non Fungible Tokens using the standard ERC721 of Open Zeppelin.",
"Tech-Stack: React.js, Solidity, Hardhat, Metamask, Web3.js, Ethers.js."
]
}
],
"skills": {
"programmingLaguanges": [
"JavaScript",
"TypeScript",
"Solidity"
],
"frameworksAndTools": [
"Docker",
"Kubernetes",
"Redis",
"Web Scraping",
"Microservices",
"Node.js",
"React.js",
"Gatsby.js",
"Next.js",
"Bootstrap",
"HTML",
"HTML5",
"CSS",
"REST APIs",
"JSON",
"Axios",
"Git",
"Github",
"Unit Testing",
"Jest",
"Playwright",
"MongoDB",
"Express.js",
"Web Socket",
"Socket.io"
],
"soft": [
"Resilience",
"Adaptability",
"Teamwork"
],
"agile": [
"SCRUM"
]
},
"interest": [
"javascript",
"develop",
"backend",
"frontend"
"TypeScript",
"JavaScript",
"Backend",
"Microservices",
"Solidity"
],
"languages": [
{
"name": "Spanish",
"percentage": "90%"
},
{
"name": "English",
"percentage": "50%"
}
],
"social": [
{
"name": "facebook",
"url": "https://facebook.com/"
},
{
"name": "twitter",
"url": "https://twitter.com/"
},
{
"name": "github",
"url": "https://github.com/"
},
{
"name": "linkedin",
"url": "https://www.linkedin.com/"
}
"English (Intermediate)",
"Spanish (Native)"
]
}
}
Loading