Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
f7ead16
feat: data added
fe-ercg Jun 6, 2024
33c844f
dataset pasa los test
Angiers18 Jun 6, 2024
16ca177
test
fe-ercg Jun 6, 2024
93151e5
Merge branch 'develop' into develop-angie
Angiers18 Jun 6, 2024
96415a3
Merge pull request #1 from fe-ercg/develop-angie
fe-ercg Jun 6, 2024
8172115
solve errors
fe-ercg Jun 6, 2024
a669d1f
fix: HTML basics
fe-ercg Jun 6, 2024
e985942
Merge pull request #2 from fe-ercg/develop-fer
fe-ercg Jun 6, 2024
842488e
Error dataset
Angiers18 Jun 6, 2024
77bd162
Merge branch 'develop' of https://github.com/fe-ercg/DEV015-dataverse…
Angiers18 Jun 6, 2024
fda37e3
fix: modified view Function
fe-ercg Jun 6, 2024
62c60b0
Merge pull request #3 from fe-ercg/develop-fer
fe-ercg Jun 6, 2024
8729c71
Error merging
Angiers18 Jun 6, 2024
c71d878
feat: showin data in HTML
fe-ercg Jun 10, 2024
e291d5c
Merge pull request #4 from fe-ercg/develop-fer
fe-ercg Jun 10, 2024
ab0b520
Merge branch 'develop' of https://github.com/fe-ercg/DEV015-dataverse…
Angiers18 Jun 10, 2024
63da4a8
feat: Corregir los errores del test HTML, agregar los select, button …
Angiers18 Jun 10, 2024
f2d1465
Merge pull request #5 from fe-ercg/develop-angie
Angiers18 Jun 10, 2024
92adc6d
feat: add styles
fe-ercg Jun 11, 2024
1ff2e05
Merge pull request #6 from fe-ercg/develop-fer
fe-ercg Jun 11, 2024
8771448
fix: style errors
fe-ercg Jun 12, 2024
85f5c44
Merge pull request #7 from fe-ercg/develop-fer
fe-ercg Jun 12, 2024
75c10b4
Error CSS y dataset
Angiers18 Jun 12, 2024
0c08e95
Merge pull request #8 from fe-ercg/develop
Angiers18 Jun 12, 2024
8bfb551
Resueltos conflictos en css y dataset
Angiers18 Jun 12, 2024
99acab4
feat: CSS flexbox responsive and nav bar
Angiers18 Jun 12, 2024
5110ad7
Conflictos
Angiers18 Jun 12, 2024
c5cfdac
Merge pull request #9 from fe-ercg/develop-angie
Angiers18 Jun 12, 2024
e214278
feat: add filter function
fe-ercg Jun 13, 2024
aa3f941
Merge pull request #10 from fe-ercg/develop-fer
fe-ercg Jun 13, 2024
f60399b
feat: Filter Function ya funciona correctamente
Angiers18 Jun 14, 2024
0287e8a
Merge pull request #11 from fe-ercg/develop-angie
Angiers18 Jun 14, 2024
94e501b
fix: filter functios problems
fe-ercg Jun 14, 2024
8c58ad4
fix: filter functions merge
fe-ercg Jun 14, 2024
22185a1
feat: sort function and reset button
fe-ercg Jun 18, 2024
82e5ab4
Merge pull request #12 from fe-ercg/develop-fer
fe-ercg Jun 18, 2024
d9d1a80
feat: test of dataFunctions
Angiers18 Jun 18, 2024
072314f
Merge pull request #13 from fe-ercg/develop-angie
fe-ercg Jun 18, 2024
d0150db
fix: error index in datatest and imgs in dataset
Angiers18 Jun 19, 2024
03f82c3
Merge pull request #15 from fe-ercg/develop-angie
fe-ercg Jun 19, 2024
ccb1bd1
fix: for in HTML, center content in CSS, delete console logs
fe-ercg Jun 19, 2024
e5e63a9
Merge branch 'develop' into develop-fer
fe-ercg Jun 19, 2024
d00aa66
Merge pull request #16 from fe-ercg/develop-fer
fe-ercg Jun 19, 2024
a1c8c4d
fix: test e2e
Angiers18 Jun 19, 2024
98c27ad
Merge pull request #17 from fe-ercg/develop-angie
fe-ercg Jun 19, 2024
bbc2295
feat: test unitarios terminados
fe-ercg Jun 19, 2024
2fb4053
feat: computeStats function in console
fe-ercg Jun 19, 2024
3db02c8
Merge pull request #18 from fe-ercg/develop-fer
fe-ercg Jun 19, 2024
e7dbfbc
feat: Modified CSS styles and view.js
Angiers18 Jun 21, 2024
c28abbe
Merge pull request #19 from fe-ercg/develop-angie
fe-ercg Jun 21, 2024
076366f
fix: comentarios main.js
fe-ercg Jun 24, 2024
792ea23
merge with develop
fe-ercg Jun 24, 2024
45ebb00
feat: styles CSS an view.js modified
fe-ercg Jun 24, 2024
859874f
Merge pull request #20 from fe-ercg/develop-fer
fe-ercg Jun 24, 2024
f51050e
feat computeStat and averageStats functions, and test
Angiers18 Jun 25, 2024
2180b06
feat: CSS styles, Show in HTML ComputeStats and AverageStats Functions
Angiers18 Jun 25, 2024
0583af3
Merge pull request #21 from fe-ercg/develop-angie
fe-ercg Jun 25, 2024
2d02000
fix: change styles select
Angiers18 Jun 26, 2024
0f0ca0e
fix: change styles buttomStats
Angiers18 Jun 26, 2024
6eed1b9
Merge pull request #22 from fe-ercg/develop-angie
fe-ercg Jun 26, 2024
38ccfd8
fix: styles MediaQueries
fe-ercg Jun 26, 2024
e64999d
Merge pull request #23 from fe-ercg/develop-fer
fe-ercg Jun 26, 2024
4d8229e
feat: button for phone size and fix errors
Angiers18 Jun 27, 2024
bfe1259
Merge pull request #24 from fe-ercg/develop-angie
fe-ercg Jun 27, 2024
f4ed6e8
fix: footer in media querie PC
fe-ercg Jun 27, 2024
f135440
fix: delete google charts
fe-ercg Jun 27, 2024
5f42666
Merge pull request #25 from fe-ercg/develop-fer
fe-ercg Jun 27, 2024
31ae7ae
fix: buttons burguer in phone size screen
fe-ercg Jun 27, 2024
40ae73b
fix: select in phone view
fe-ercg Jun 27, 2024
30f8a5f
Merge pull request #26 from fe-ercg/develop-fer
fe-ercg Jun 27, 2024
ec8c874
fix test errors and feat README.md
fe-ercg Jun 27, 2024
4cb1bf9
Merge pull request #27 from fe-ercg/develop-fer
fe-ercg Jun 27, 2024
69828f1
fix: errors according to usability test
fe-ercg Jun 28, 2024
50fb98f
merge
fe-ercg Jun 28, 2024
e21ad60
feat: refactoring filterData() and test
fe-ercg Jul 11, 2024
c90dacc
feat: refactoring sortData()
fe-ercg Jul 12, 2024
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
1,077 changes: 46 additions & 1,031 deletions README.md

Large diffs are not rendered by default.

7,970 changes: 7,970 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

569 changes: 264 additions & 305 deletions src/data/dataset.js

Large diffs are not rendered by default.

31 changes: 26 additions & 5 deletions src/dataFunctions.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,30 @@
// Estas funciones son ejemplos, aquí puedes desarrollar tus propias funciones.
// SORT-----------------------------------------------------------------------------------
export const sortData = (data, sortBy, sortOrder) => {
const copyData = data.map((item) => item);
const dataOrder = copyData.sort((a,b) => a[sortBy].localeCompare(b[sortBy]));
return sortOrder === "asc" ? dataOrder : dataOrder.reverse();
};

// FILTRO---------------------------------------------------------------------------------
export const filterData = (data, filterBy, value) =>{
const resultFilterData = data.filter((item) => {
const factsFilter = String(item.facts[filterBy]).split('');
return factsFilter[0].includes(value);
});
return resultFilterData;
}

export const example = () => {
return 'example';
//STATS PORCENTAJES------------------------------------------------------------------
export const computeStats = (data, dataTotal) => {
const percentage = (data.length / dataTotal.length) * 100;
return percentage.toFixed(2);
};

export const anotherExample = () => {
return [];
//PROMEDIO DE EDAD---------------------------------------------------------------------

export const averageStats = (data) => {
const average = data.reduce((acumulador, item) => {
return acumulador + item.facts["age"];
}, 0);
return (average / data.length).toFixed();
};
98 changes: 89 additions & 9 deletions src/index.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,91 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Dataverse</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<script src="main.js" type="module"></script>
</body>
</html>

<head>
<meta charset="utf-8">
<title>Dataverse</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<!-- TIPOGRAFIA DEL H2 -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Carter+One&display=swap" rel="stylesheet">

</head>

<body>
<header>
<!-- IMAGEN TITULO Y EL H1 NO SE VE -->
<img
src="https://res.cloudinary.com/db3qclbrk/image/upload/v1719354548/Spider-Man_Across_the_Spider-Verse_logo.webp_ebwb10.png"
alt="Spiderverse">
<h1>Spiderverse</h1>

<!-- BARRA NAV CONTIENE LOS BOTONES DE ORDENAR Y FILTRAR Y RESET -->
<nav class="controls" id="nav">

<div class="select-box">
<label for="filter">Filtrar por: </label>
<select data-testid="select-filter" name="gender age" id="filter">
<option value="" disabled selected>Selecciona</option>
<optgroup label="Genero">
<option value="M" class="filter-option">Masculino</option>
<option value="F" class="filter-option">Femenino</option>
</optgroup>
<optgroup label="Edad">
<option value="1" class="filter-option">Jovenes</option>
<option value="2" class="filter-option">Adultos jovenes</option>
<option value="3" class="filter-option">Adultos</option>
</optgroup>
</select>
</div>

<div class="select-box">
<label for="sort-order">Ordenar por:</label>
<select data-testid="select-sort" id="sort-order" name="name">
<option value="" disabled selected>Selecciona</option>
<optgroup label="Por nombre">
<option value="asc">Ascendente</option>
<option value="desc">Descendente</option>
</optgroup>
</select>
</div>

<button data-testid="button-clear">Limpiar</button>
</nav>

<!-- DIV CONTIENE EL BOTON DE HAMBURGESA Y EL DE LAS ESTADISTICAS-->
<div class="computeStats" id="boxButtoms">
<div class="burger-container">
<button id="burger">
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</button>
</div>
<button id="buttonStats">Datos Curiosos</button>
</div>
<div id="showStats">
</div>
</header>

<main>
<h2>
CONOCE A LOS PERSONAJES
</h2>
<!-- DIV QUE MUESTRA LAS TARJETAS-->
<div id="root" class="box-characters">
</div>
</main>


<footer>
<p class="footer"> &copy; Made by Fernanda y Anyerlin</p>
<p class="footer">Laboratoria DEV015</p>
</footer>

<script src="main.js" type="module"></script>

</body>

</html>
134 changes: 130 additions & 4 deletions src/main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,132 @@
import { example } from './dataFunctions.js';
import { renderItems } from './view.js';
import {
filterData,
sortData,
computeStats,
averageStats,
} from "./dataFunctions.js";
import { renderItems } from "./view.js";

import data from './data/dataset.js';
import data from "./data/dataset.js";

console.log(example, renderItems(data), data);
// Trae la info de la funcion render items-----------------------------------------------------------------
const render = document.querySelector("#root");
render.appendChild(renderItems(data));

//FILTRO----------------------------------------------------------------------------------------------------
const filter = document.querySelector("#filter");
let newFilterData;

filter.addEventListener("change", (event) => {
const filterValue = event.target.value;

if (filterValue === "M" || filterValue === "F") {
newFilterData = filterData(data, "gender", filterValue);
}
if (filterValue === "1" || filterValue === "2") {
newFilterData = filterData(data, "age", filterValue);
}
if (filterValue === "3") {
newFilterData = filterData(data, "age", "3").concat(
filterData(data, "age", "4")
);
}

sort.value = "";
render.innerHTML = "";
render.appendChild(renderItems(newFilterData));
});

//SORT----------------------------------------------------------------------------------------------------
const sort = document.querySelector("#sort-order");

sort.addEventListener("change", (event) => {
const sortValue = event.target.value;
let orderData;

if (newFilterData) {
orderData = sortData(newFilterData, "name", sortValue);
} else {
orderData = sortData(data, "name", sortValue);
}

render.innerHTML = "";
render.appendChild(renderItems(orderData));
});

// BOTON RESET---------------------------------------------------------------------------------------
const buttonReset = document.querySelector(
"button[data-testid='button-clear']"
);

buttonReset.addEventListener("click", function () {
render.innerHTML = "";
filter.value = "";
sort.value = "";
newFilterData = "";

render.appendChild(renderItems(data));
});

//STATS
const buttonStats = document.querySelector("#buttonStats");
const showStats = document.querySelector("#showStats");

buttonStats.addEventListener("click", function () {
//ESTADISTICAS DE GENERO----------------------------------------------------------------------------
const dataFemenino = filterData(data, "gender", "F");

const divGender = document.createElement("div");
divGender.classList.add("stats");
divGender.innerHTML =
"<p>El <span>" +
computeStats(dataFemenino, data) +
"%</span> son del genero Femenino</p>";
showStats.appendChild(divGender);

//ESTADISTICAS DE CITY----------------------------------------------------------------------------
const ny = filterData(data, "city", "N");

const divCity = document.createElement("div");
divCity.classList.add("stats");
divCity.innerHTML =
"<p>El <span>" +
computeStats(ny, data) +
"%" +
"</span> viven en la ciudad de Nueva York</p>";
showStats.appendChild(divCity);

//ESTADISTICAS DE EDAD----------------------------------------------------------------------------
const age = averageStats(data);

const divAge = document.createElement("div");
divAge.classList.add("stats");
divAge.innerHTML =
"<p>La edad promedio de los Spider Man es <span>" +
age +
"</span> años </p>";
showStats.appendChild(divAge);

//MUESTRA LAS ESTADISTICAS ----------------------------------------------------------------------------
if (showStats.style.display === "flex") {
showStats.style.display = "none";
showStats.innerHTML = "";
} else {
showStats.style.display = "flex";
}
});

//FUNCIONALIDAD DE BOTON HAMBURGUESA----------------------------------------------------------------------

const burger = document.querySelector("#burger");
const nav = document.querySelector("#nav");
const boxButtoms = document.querySelector("#boxButtoms");

burger.addEventListener("click", function () {
if (nav.style.display === "flex") {
nav.style.display = "none";
} else {
nav.style.display = "flex";
}

boxButtoms.parentNode.insertBefore(nav, boxButtoms.nextSibling);
});
Loading