Giter Club home page Giter Club logo

lim015-data-lovers's Introduction

Data Lovers - Proyecto Pokémon

Índice


1. Preámbulo

Según Forbes, 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.

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 los usuarios, necesitamos entender y procesar estos datos. Una manera simple de hacerlo es creando interfaces y visualizaciones.

En la siguiente imagen, podrás ver cómo con la data que que se ve en la parte izquierda se puede construir una interfaz amigable y entendible por el usuario al lado derecho.

json-interfaz

2. Resumen del proyecto

Este proyecto consta de la creción de una página web para visualizar un conjunto (set) de datos de 251 pokemones, personajes de la conocida serie y juego Pokémon GO!

Esta página web otorgará a los usuarios una interfaz de facil acceso donde puedan visualizar la data de los pokemones,filtrarla, ordenarla y conocer el top 10 de pokemones más altos y pesados; con el objetivo de dar un soporte en sus necesidades a aquellos usuarios del juego mundialmente conocido:Pokémon GO.

3. Objetivos de aprendizaje

En la construcción de este proyecto se cumplieron ciertos requisitos para dar al usuario un producto correctamente definido entendiendo lo necesita.

HTML y CSS

DOM y Web APIs

JavaScript

Testing

Estructura del código y guía de estilo

Git y GitHub

UX

  • Diseñar la aplicación pensando y entendiendo al usuario.
  • Crear prototipos para obtener feedback e iterar.
  • Aplicar los principios de diseño visual (contraste, alineación, jerarquía)
  • Planear y ejecutar tests de usabilidad.

4. Criterios que cumple el proyecto

Los criterios del proyecto son:

Definición del producto

El proyecto fue diseñado con la visión de que sea un soporte y/o una herramienta funcional para usuarios del juego digital Pokémon GO; este juego incita al usuario a atrapar la mayor cantidad y mejor calidad de pokémon para que posteriormente estos personajes se batan a duelo con los pokémon de otros usuarios; para que los usuarios puedan ganar esas batallas, necesitan conocer las características de los pokemón y elegir bien a sus personajes. Este aplicativo web ayuda a estos usuarios a obtener de manera casi instantánea y sencilla las diferentes características de cada uno de los 251 pokémon que ellos necesitan.

El proyecto cumple con las siguientes características:

  • Permite acceder a la lista de los 251 pokemones en órden, mostrando el número, el nombre y la imagen del pokémon.
  • Permite tener acceso a las características más específicas de cada pokémon.
  • Permite ordenar numérica y alfabéticamente la información de los pokémon (asc. y descendente).
  • Permite filtrar los pokémon de acuerdo a su tipo.
  • Otorga información sobre los 10 pokémon más altos y más pesados.

Historias de usuario

Realizamos 3 historias de usuario:

En la primera historia de Usuario definimos como usuario a aquel jugador aficionado de Pokémon GO! :

H1

En la segunda historia de usuario definimos al jugador junior de Pokémon GO! como usuario final, donde tendrá acceso a las características de cada pokémon:

H2

En la tercera historia de usuario el jugador intermedio de Pokémon GO! es el usuario final, donde contará con la herramienta de filtrado por tipos y podrá ordenarlos de acuerdo a diferentes opciones:

H3

Diseño de la Interfaz de Usuario

Prototipo de baja fidelidad

Realizamos un boceto inicial para aterrizar la idea del proyecto:

image

image

image

Prototipo de alta fidelidad y testeos de usabilidad

Posteriormente desarrollamos los prototipos de alta fidelidad para cada una de las pantallas a mostrar:

En esta imagen visualizamos la pantalla de bienvenida con la lista de los 251 pokemones:

Prototipo1

En la siguiente imagen se puede observar las caracteristicas del pokémon elegido:

Prototipo2

Esta imagen muestra la lista desplegable que habíamos diseñado inicialmente:

Prototipo3

Posteriormente a través de los diferentes testeos de usabilidad que se realizaron, descubrimos que era necesario que las opciones de filtrado debían ser separadas y los links importantes debian ser incluídos en un menu responsive: Prototipo-mejorado

Problemas que reconocimos tras los test de usabilidad:

  • Cuando las opciones de filtrado permanecían juntas, hacía que el usuario no pueda visulizar a primera vista la cantidad de opciones que el aplicativo web ofrecía.
  • Sin un menú responsive se hacía muy desordenado la lista de links importantes, específicamente para dispositivos móbiles.
  • Falta de cuadro de búsqueda para que la información requerida por el usuario sea encontrada fácilmente.

Pruebas unitarias

Las pruebas unitarias para las funciones encargadas de procesar, filtrar y ordenar la data, así como calcular estadísticas nos dan como resultado lo siguiente:

 PASS  test/data.spec.js (7.031 s)
  filterData
    √ is a function (13 ms)
    √ should return an array with elements (5 ms)
    √ should return an array with three elements (8 ms)
    √ should return an object with information about pokemon `water` type (6 ms)
  sortData
    √ is a function (2 ms)
    √ should be an object (3 ms)
    √ should sort alphabetically from A to Z (3 ms)
    √ should sort alphabetically from Z to A (2 ms)
    √ should sort descending from 221 to 217 (3 ms)
  greaterHeight
    √ is a function (1 ms)
    √ should return an object with 3 elements (4 ms)
    √ should return an object with the first greater height value (2 ms)
    √ should return an object sort by `size:heigth` (4 ms)
  greaterWeight
    √ is a function (1 ms)
    √ should return an array list with pokemons in order by weight  (4 ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files |     100 |    95.45 |     100 |     100 |                  
 data.js  |     100 |    95.45 |     100 |     100 | 26               
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests:       15 passed, 15 total
Snapshots:   0 total
Time:        13.156 s, estimated 15 s
Ran all test suites.

5. Checklist

  • Usa VanillaJS.
  • No hace uso de this.
  • Pasa linter (npm run pretest)
  • Pasa tests (npm test)
  • Pruebas unitarias cubren un mínimo del 70% de statements, functions y lines y branches.
  • Incluye un plan de acción de tus objetivos de aprendizaje prioritizado en README.md (o otro archivo).
  • Incluye Definición del producto clara e informativa en README.md.
  • Incluye historias de usuario en README.md.
  • Incluye sketch de la solución (prototipo de baja fidelidad) en README.md.
  • Incluye Diseño de la Interfaz de Usuario (prototipo de alta fidelidad) en README.md.
  • Incluye link a Figma en README.md.
  • Incluye el listado de problemas que detectaste a través de tests de usabilidad en el README.md.
  • UI: Muestra lista y/o tabla con datos y/o indicadores.
  • UI: Permite ordenar data por uno o más campos (asc y desc).
  • UI: Permite filtrar data en base a una condición.
  • UI: Es responsive.

5. Autoras

-Paola Vitalia Taboada Alanoca.

-Dafne Corali Aquino Manyari.

lim015-data-lovers's People

Contributors

paolataboada avatar dafneaquino avatar betsyvies avatar fakel avatar unjust avatar santiaguf avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.