Skip to content
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

project(data-lovers): Actualizar set de datos y agregar researchs de usuarios #943

Merged
merged 16 commits into from
Mar 11, 2020
Merged
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
130 changes: 55 additions & 75 deletions projects/02-data-lovers/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@

Según [Forbes](https://www.forbes.com/sites/bernardmarr/2018/05/21/how-much-data-do-we-create-every-day-the-mind-blowing-stats-everyone-should-read),
el 90% de la data que existe hoy ha sido creada durante los últimos dos años.
Cada día generamos 2.5 millones de terabytes de datos, una cifra sin precedentes.
Cada día generamos 2.5 millones de terabytes de datos, una cifra sin
precedentes.

No obstante, los datos por sí mismos son de poca utilidad. Para que esas
grandes cantidades de datos se conviertan en **información** fácil de leer para
Expand Down Expand Up @@ -54,29 +55,21 @@ le ayude a interactuar y entender mejor esos datos.

Estos son datos que te proponemos:

* [Indicadores de desarrollo del Banco Mundial](src/data/worldbank/worldbank.json)
de algunos países (Brasil, Chile, México y Perú). Estos datos incluyen
indicadores demográficos, económicos y comerciales.
* [Pokémon](src/data/pokemon/pokemon.json):
En este set encontrarás una lista con los 151 Pokémon de la región de Kanto,
junto con sus respectivas estadísticas usadas en el juego [Pokémon GO](http://pokemongolive.com).
* [Steam noticias](src/data/steam/steam.json):
Lista noticias relacionadas a los videojuegos presentes en la
plataforma de [Steam](https://store.steampowered.com/).
En este set encontrarás una lista con los 251 Pokémon de la región de Kanto
y Johto, junto con sus respectivas estadísticas usadas en el juego
[Pokémon GO](http://pokemongolive.com).
- [Investigación con jugadores de Pokémon Go](/src/data/pokemon/README.md)

* [League of Legends - Challenger leaderboard](src/data/lol/lol.json):
Este set de datos muestra la lista de jugadores en una liga del
juego League of Legends (LoL), puedes revisar la documentación de su API en
este [link](https://developer.riotgames.com/api-methods/).
* [Personas heridas por medio de transporte en EEUU](src/data/injuries/injuries.json).
Este set nos muestra el número de personas heridas en accidentes de
transporte, con data anual desde 1960 y categorizada por tipo de transporte
(aire, barco, automóvil, moto, bicicleta, ...).
Este set de datos muestra la lista de campeones en una liga del
juego League of Legends (LoL).
- [Investigación con jugadores de LoL](/src/data/lol/README.md)

* [Rick and Morty](src/data/rickandmorty/rickandmorty.json).
Este set nos proporciona la lista de los personajes de la serie Rick and
Morty. Puedes revisar la documentación de su API en este [link](https://rickandmortyapi.com).
* [Pacientes en EEUU](src/data/patient/patient.json).
Este set nos proporciona una lista de pacientes de EEUU. Puedes revisar la
documentación de su API en este [link](https://r2.smarthealthit.org/Patient).
Morty. [API Rick and Morty](https://rickandmortyapi.com).
- [Investigación con seguidores de Rick and Morty](/src/data/rickandmorty/README.md)

<!---
¡Too much information para comenzar (Diego)!
Expand All @@ -99,8 +92,8 @@ Dicho en palabras sencillas, aprenderás a:
* Escribir y trabajar con **historias de usuario**, sus definiciones de
terminado (_definition of done_) y Criterios de Aceptación como herramienta
central de la organización y planificación de tu trabajo.
* Definir qué data y de qué forma mostrarla en el producto, basándote en
tu **entendimiento del usuario**.
* Definir la data y la forma de mostrarla en el producto, basándote en
el **entendimiento que tienes del usuario**.
* Crear productos que sigan los **principios básicos de diseño visual** y
las **heurísticas de usabilidad**.
* Iterar el diseño del producto, basándote en los resultados de los
Expand All @@ -117,7 +110,7 @@ Dicho en palabras sencillas, aprenderás a:
* Este proyecto se debe resolver en duplas.
* El proyecto será entregado subiendo tu código a GitHub (commit/push) y la
interfaz será desplegada usando [GitHub Pages](https://pages.github.com/).
* Tiempo para completarlo: Toma como referencia 3 semanas.
* Tiempo para completarlo: Toma como referencia 4 semanas.

## 5. Criterios de aceptación mínimos del proyecto

Expand Down Expand Up @@ -146,9 +139,9 @@ a la siguiente (Cumple con Definición de Terminado + Criterios de Aceptación).

#### Prototipo de baja fidelidad

Durante tu trabajo deberás haber hecho e iterado sketches (bocetos) de tu
Durante tu trabajo deberás haber hecho e iterado bocetos (_sketches_) de tu
solución usando papel y lápiz. Te recomendamos tomar fotos de todas las
iteraciones que hagas, las subas a tu repositorio, y las menciones en tu
iteraciones que hagas, que las subas a tu repositorio y las menciones en tu
`README.md`.

#### Prototipo de alta fidelidad
Expand All @@ -158,48 +151,39 @@ _User Interface_). Para eso debes aprender a utilizar alguna herramienta de
diseño visual. Nosotros te recomendamos [Figma](https://www.figma.com/) que es
una herramienta que funciona en el navegador y, además, puedes crear una cuenta
gratis. Sin embargo, eres libre de utilizar otros editores gráficos como
Illustrator, Photoshop, PowerPoint, Keynote, etc. Recuerda utilizar la identidad
gráfica correspondiente a cada set de datos que elijas.
Illustrator, Photoshop, PowerPoint, Keynote, etc.

El diseño debe representar el _ideal_ de tu solución. Digamos que es lo que
desearías implementar si tuvieras tiempo ilimitado para hackear. Además, tu
diseño debe seguir los fundamentos de _visual design_. También, deberás exportar
tu diseño a [Zeplin](https://zeplin.io/) y utilizar las especificaciones de
estilo que te dé Zeplin al momento de implementar tus diseños en código.
desearías implementar si tuvieras tiempo ilimitado para trabajar. Además, tu
diseño debe seguir los fundamentos de _visual design_.

#### Testeos de usabilidad

Durante el reto deberás realizar tests de usabilidad con distintos usuarios, y
en base a los resultados de esos tests, deberás iterar tus diseños. Cuéntanos
qué problemas de usabilidad detectaste a través de los tests y cómo los
Durante el reto deberás hacer _tests_ de usabilidad con distintos usuarios, y
en base a los resultados, deberás iterar tus diseños. Cuéntanos
qué problemas de usabilidad detectaste a través de los _tests_ y cómo los
mejoraste en tu propuesta final.

### Implementación de la Interfaz de Usuario (HTML/CSS/JS)

Luego de diseñar tu interfaz de usuario deberás trabajar en su implementación.
Como mencionamos, **no** es necesario que construyas la interfaz exactamente
como la diseñaste. Tendrás un tiempo limitado para hackear, así es que deberás
priorizar.
**No** es necesario que construyas la interfaz exactamente como la diseñaste.
Tu tiempo de hacking es escaso, así que deberás priorizar

Como mínimo, tu implementación debe:

1. Mostrar la data en una interfaz: puede ser un card, una tabla, una lista, etc.
2. Permitir al usuario filtrar y ordenar la data.
3. Calcular estadísticas de la colección (o subcolección) como media aritmética,
máximo y/o mínimo de algún atributo numérico, o contar cuántas veces aparece
un determinado valor, por ejemplo.
4. Ser _responsive_, es decir, debe visualizarse sin problemas desde distintos
1. Mostrar la data en una interfaz: puede ser un card, una tabla, una lista,
etc.
2. Permitir al usuario interactuar para obtener la infomación que necesita.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

¿Por qué estaríamos dejando de indicar que el usuario puede filtrar y ordenar la data? y ¿por qué está comentado líneas abajo? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Creímos que era redundante, pero revisándolo ahora no está demás recordar los métodos que deben utilizar.

3. Ser _responsive_, es decir, debe visualizarse sin problemas desde distintos
betsyvies marked this conversation as resolved.
Show resolved Hide resolved
tamaños de pantallas: móviles, tablets y desktops.

Es importante que tu interfaz, a pesar de ser una versión mínima de tu ideal,
siga los fundamentos de _visual design_.
4. Que la interfaz siga los fundamentos de _visual design_.

### Pruebas unitarias

El _boilerplate_ de este proyecto no incluye Pruebas Unitarias (tests), así es
que tendrás que escribir tu propias pruebas unitarias para las funciones
encargadas de _procesar_, _filtrar_ y _ordenar_ la data, así como _calcular_
estadísticas.
El _boilerplate_ de este proyecto no incluye Pruebas Unitarias (_tests_), así es
que tendrás que escribirlas tú para las funciones encargadas de _procesar_,
_filtrar_ y _ordenar_ la data, así como _calcular_ estadísticas.

Tus _pruebas unitarias_ deben dar una cobertura del 70% de _statements_
(_sentencias_), _functions_ (_funciones_), _lines_ (_líneas_), y _branches_
Expand All @@ -219,7 +203,8 @@ Features/características extra sugeridas:
`fetch`. La carpeta `src/data` contiene una versión `.js` y una `.json` de
de cada set datos.
* Agregarle a tu interfaz de usuario implementada visualizaciones gráficas. Para
ello te recomendamos explorar librerías de gráficas como [Chart.js](https://www.chartjs.org/)
ello te recomendamos explorar librerías de gráficas como
[Chart.js](https://www.chartjs.org/)
o [Google Charts](https://developers.google.com/chart/).
* 100% Coverage

Expand All @@ -243,35 +228,26 @@ como toda la configuración de dependencias:
├── package.json
├── src
| ├── data (según con qué data trabajes)
| | ├── injuries
| | | ├── injuries.js
| | | └── injuries.json
| | ├── lol
| | | ├── lol.js
| | | └── lol.json
| | ├── patient
| | | ├── patient.js
| | | └── patient.json
| | | ├── lol.json
| | | └── README.md
| | ├── pokemon
| | | ├── pokemon.js
| | | └── pokemon.json
| | ├── rickandmorty
| | | ├── rickandmorty.js
| | | └── rickandmorty.json
| | ├── steam
| | | ├── steam.js
| | | └── steam.json
| | └── worldbank
| | ├── worldbank.js
| | └── worldbank.json
| | | ├── pokemon.json
| | | └── README.md
| | └── rickandmorty
| | ├── rickandmorty.js
| | └── rickandmorty.json
| | └── README.md
| ├── data.js
| ├── index.html
| ├── main.js
| └── style.css
└── test
└── data.spec.js

directory: 10 file: 22
directory: 6 file: 17
```

### `src/index.html`
Expand Down Expand Up @@ -313,8 +289,8 @@ Y ahora tendríamos la variable `data` disponible en el script `src/main.js`.
El corazón de este proyecto es la manipulación de datos a través de arreglos
y objetos.

Te reomendamos que este archivo contenga toda la funcionalidad que corresponda
a obtener, procesar y manipular datos (tus funciones):
Te recomendamos que este archivo contenga toda la funcionalidad que corresponda
a obtener, procesar y manipular datos (tus funciones). Por ejemplo:

* `filterData(data, condition)`: esta función `filter` o filtrar recibiría la
data, y nos retornaría aquellos datos que sí cumplan con la condición.
Expand Down Expand Up @@ -354,8 +330,6 @@ asíncrona con [`fetch()`](https://developer.mozilla.org/es/docs/Web/API/Fetch_A
Tendrás también que completar las pruebas unitarias de las funciones
implementadas en el archivo `data.js`.

***

## 8. Pistas, tips y lecturas complementarias

### Primeros pasos
Expand All @@ -380,8 +354,9 @@ Cuando ya estés lista para codear, te sugerimos empezar de esta manera:
[fork](https://help.github.com/articles/fork-a-repo/) del repo de tu cohort,
tus _coaches_ te compartirán un _link_ a un repo y te darán acceso de lectura
en ese repo. La otra integrante del equipo deber hacer un fork **del
repositorio de su compañera** y [configurar](https://gist.github.com/BCasal/026e4c7f5c71418485c1)
un `remote` hacia el mismo.
repositorio de su compañera** y
[configurar](https://gist.github.com/BCasal/026e4c7f5c71418485c1) un `remote`
hacia el mismo.
2. :arrow_down: [Clona](https://help.github.com/articles/cloning-a-repository/)
tu _fork_ a tu computadora (copia local).
3. 📦 Instala las dependencias del proyecto con el comando `npm install`. Esto
Expand Down Expand Up @@ -467,6 +442,11 @@ compañera:
* [Object.entries en MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/entries)
* [Fetch API en MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)
* [json.org](https://json.org/json-es.html)
* [expressions-vs-statements](https://2ality.com/2012/09/expressions-vs-statements.html)
* [expresión vs sentencia](https://openclassrooms.com/en/courses/4309531-descubre-las-funciones-en-javascript/5108986-diferencia-entre-expresion-y-sentencia)
* [datos atómicos vs datos estructurados](https://www.todojs.com/tipos-datos-javascript-es6/)
* [Modulos: Export](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/export)
* [Modulos: Import](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/import)

#### Herramientas

Expand Down
2 changes: 0 additions & 2 deletions projects/02-data-lovers/src/data/injuries/injuries.js

This file was deleted.

1 change: 0 additions & 1 deletion projects/02-data-lovers/src/data/injuries/injuries.json

This file was deleted.

46 changes: 46 additions & 0 deletions projects/02-data-lovers/src/data/lol/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# League of Legends (LoL)

League of Legends es un juego de estrategia que se juega en línea y que es
multijugador. Tiene millones de jugadores en todo el mundo y, por ahora es uno
de los _esports_ de referencia y que más público atraen.
Durante el juego, los equipos trabajan juntos para lograr una
condición de victoria que sucede al destruir la estructura central en la base
del equipo enemigo.

En todos los modos de juego, los jugadores controlan
personajes llamados **campeones**, que son elegidos o asignados en cada partida,
y que tienen un conjunto de habilidades únicas. Es con esos campeones con los
que se juega toda la partida. Para entender un poco más del juego puedes entrar
a este [link](https://www.redbull.com/es-es/5-consejos-empezar-jugar-league-of-legends#targetText=Lo%20primero%20que%20tienes%20que,donde%20lucha%20cinco%20contra%20cinco).

## Hallazgos

* Para poder elegir a los campeones que van a combatir en una partida, es
importante para el jugador de LoL poder saber cuál es el rol de cada campeón.
* Adicionalmente al rol, cada campeón tiene distintos niveles de ataque, por
ejemplo dentro de los _tanques_ hay campeones con distintos niveles de ataque,
defensa, velocidad o poder. Es importante para el jugador de LoL poder saber
quiénes son los más poderosos o lo más defensivos, para poder elegir al mejor
grupo de campeones para una partida.estarán
en tu equipo y que lucharán contra el enemigo.
* Los campeones tienen distintos tipos de habilidades, algunas inherentes
(básicas/principales) a ellos y otras (pasivas/secundarias) que pueden ser
adquiridas. En ambos casos, estas habilidades pueden ir desarrollándose hasta
alcanzar su máximo nivel.
* Los campeones tienen distintos roles en los que se desempeñan:

- Luchador: Especializado en combate cercano. Combinnan objetos de daño con
objetos de aguante. También se los conoce como _offtanks_.
- Tirador: Especializado en ataque a distancia. Popularmente conocido como
_AD Carry_ del inglés _attack damage carry_ o carreador de daño de ataque.
betsyvies marked this conversation as resolved.
Show resolved Hide resolved
- Mago o Hechicero: Especializado en habilidades y daño mágico. Popularmente
conocido como _AP Carry_ del inglés _ability power carry_ o carreador de
poder de habilidad.
- Asesino: Especializado en emboscar al enemigo, atacando por sorpresa y
retirándose rápidamente. Su misión es eliminar al jugador más importante del
equipo enemigo (generalmente el tirador) aunque ello suponga morir él
también.
- Tanque: Especializado en resistencia. Su misión es absorber la mayor
cantidad de daño posible e iniciar las peleas.
- Apoyo o Soporte: Especializado en apoyar a su equipo y aportar visión en el
mapa mediante guardianes de visión (_wards_).
Loading