Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7cb767b
Ingreso de Data, Paso Test
Mireilys Mar 15, 2024
f316eca
registro data
viveth17 Mar 15, 2024
87403f9
ajustes a la data
viveth17 Mar 15, 2024
8c031ac
Merge branch 'main' of https://github.com/viveth17/DEV014-Dataverse
Mireilys Mar 16, 2024
01fdbd4
implementacion de datos number a data
viveth17 Mar 16, 2024
7f3e58e
Merge branch 'main' of https://github.com/viveth17/DEV014-Dataverse
viveth17 Mar 16, 2024
b5c84a5
correción dataset
viveth17 Mar 16, 2024
44f4456
remove package-look.json
viveth17 Mar 16, 2024
f10943a
Modificacion de Imagenes
Mireilys Mar 16, 2024
327b75d
Se modifican url a jpg para corregir error en test, ahora pasa test s…
Mireilys Mar 18, 2024
304ca3e
Selector del DOM e invocacion renderItems.
viveth17 Mar 22, 2024
d03cb15
Función renderItems e invocación.
viveth17 Mar 22, 2024
0908e82
test
viveth17 Mar 22, 2024
c711eb8
Finalizacion de Hito 2, visualizacion y estilos
Mireilys Mar 22, 2024
6a16f96
Funcionalidad filterData
viveth17 Mar 26, 2024
6ec4842
Funcion Filtrar y estilos filtro y ordenado
Mireilys Apr 1, 2024
7865a20
Test unitario funcion filtro y ordenar
Mireilys Apr 1, 2024
d339ed0
Finalizacion funcion ordenar
Mireilys Apr 2, 2024
edd39f3
styles cards and footer
viveth17 Apr 3, 2024
5c9f784
funcionamiento boton reset, arreglos test ordenar
Mireilys Apr 3, 2024
7866bf0
Calculo promedio array longevidades
viveth17 Apr 3, 2024
d2a0e78
Se culmino computeStast y pruebas calculo.
viveth17 Apr 4, 2024
8d640b8
correccion prueba test:oas-web-api, pasa test:oas
Mireilys Apr 4, 2024
fbbb3c6
added attribute itemprop in view and mobile styles
viveth17 Apr 5, 2024
f1b2c62
Avance Readme
Mireilys Apr 5, 2024
c5502f0
Added images in Readme
viveth17 Apr 5, 2024
b667fff
image prompting
viveth17 Apr 5, 2024
33261ec
image prompting 2
viveth17 Apr 5, 2024
4cf721d
titule in readme
viveth17 Apr 5, 2024
72e7add
comment removal
viveth17 Apr 5, 2024
c4bba7c
styles in readme
viveth17 Apr 5, 2024
f2cfd34
style en readme
viveth17 Apr 5, 2024
cb8fe63
syles in readme
viveth17 Apr 5, 2024
de7fa5a
modification button clear
viveth17 Apr 5, 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,086 changes: 60 additions & 1,026 deletions README.md

Large diffs are not rendered by default.

8,004 changes: 8,004 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"eslint": "^8.3.0",
"gh-pages": "^3.1.0",
"htmlhint": "^1.0.0",
"jest": "^27.0.1",
"jest": "^27.5.1",
"jsdom": "^22.1.0",
"opener": "^1.5.1",
"serve": "^14.2.1"
Expand All @@ -49,4 +49,4 @@
"jest": {
"testEnvironment": "jsdom"
}
}
}
690 changes: 337 additions & 353 deletions src/data/dataset.js

Large diffs are not rendered by default.

49 changes: 44 additions & 5 deletions src/dataFunctions.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,48 @@
// Estas funciones son ejemplos, aquí puedes desarrollar tus propias funciones.
export const filterData = (data, filterBy, value) => {

export const example = () => {
return 'example';
const filteredData = data.filter(item => {
const filterParts = filterBy.split('.');
let obj = item;
for (let i = 0; i < filterParts.length; i++) {
obj = obj[filterParts[i]];
}
return obj === value;
});

return filteredData;
};

export const anotherExample = () => {
return [];

export const sortBySharkSize = (data, sortBy, sortOrder) => {

const sortedData = data.sort((a, b) => {
let sizeA, sizeB;

if (sortBy) {
sizeA = a[sortBy];
sizeB = b[sortBy];
} else {
sizeA = a.maximumSizeMtr;
sizeB = b.maximumSizeMtr;
}

const compareValue = sortOrder === 'desc' ? -1 : 1;

if (sizeA < sizeB) {
return -1 * compareValue;
}
if (sizeA > sizeB) {
return 1 * compareValue;
}
return 0;
});

return sortedData;
};

export const computeStats = (data) => {
const longevity = data.map(item => item.facts.approximateLongevity);
const totalLongevity = longevity.reduce((acc,cur) => acc + cur, 0);
const averageLongevity = (totalLongevity/longevity.length).toFixed(2);
return averageLongevity;
}
53 changes: 43 additions & 10 deletions src/index.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,44 @@
<!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>
<html lang="es">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dataverse</title>
<link rel="stylesheet" href="style.css" />
</head>

<body>
<header>
<h1>SharkInfo</h1>
<h2>Sumérgete en el mundo de los tiburones</h2>
</header>
<main>
<section>
<label for="locationOfTheSpecie"> Hábitat:</label>
<select id="locationOfTheSpecie" name="locationOfTheSpecie" data-testid="select-filter">
<option value="Todas">Todas</option>
<option value="Aguas profundas">Aguas profundas</option>
<option value="Aguas tropicales y subtropicales">Aguas tropicales y subtropicales</option>
<option value="Océano Atlántico">Océano Atlántico</option>
<option value="Océano Pacífico">Océano Pacífico</option>
<option value="Océanos en todo el mundo">Océanos en todo el mundo</option>
</select>
<label for="maximumSizeMtr">Tamaño:</label>
<select id="maximumSizeMtr" name="maximumSizeMtr" data-testid="select-sort">
<option value="asc">0 - 15</option>
<option value="desc">15 - 0</option>
</select>
<p id="longevityText">Longevidad promedio:</p>
<button id="longevityProm">Calcular</button>
<button id="clearFilter" data-testid="button-clear">Limpiar filtros</button>
</section>
<div id="root"></div>
</main>
<footer>
<p class="p">
Hecho por Mireilys e Iveth</p>
</footer>
<script src="main.js" type="module"></script>
</body>
</html>
55 changes: 52 additions & 3 deletions src/main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,55 @@
import { example } from './dataFunctions.js';
import { filterData } from './dataFunctions.js';
import { sortBySharkSize } from './dataFunctions.js';
import { renderItems } from './view.js';

import data from './data/dataset.js';
import { computeStats } from './dataFunctions.js';


const htmlElement = document.querySelector('html');
let statusData = data;
htmlElement.getElementsByTagName('body')[0].getElementsByTagName('div')[0].appendChild(renderItems(statusData));

const selectElement = document.getElementsByName("locationOfTheSpecie")[0];
selectElement.addEventListener('change', function () {
const selectedValue = selectElement.value;
if (selectedValue === 'Todas') {
htmlElement.getElementsByTagName('body')[0].getElementsByTagName('div')[0].replaceChildren(renderItems(data));
} else {
const filteredData = filterData(data, 'facts.locationOfTheSpecie', selectedValue);
statusData = filteredData;
htmlElement.getElementsByTagName('body')[0].getElementsByTagName('div')[0].replaceChildren(renderItems(statusData));
}
});

const sortElement = document.getElementsByName("maximumSizeMtr")[0];
sortElement.addEventListener("change", function (event) {
const sortValue = event.target.value;

let sortedData;
if (sortValue === 'asc') {
sortedData = sortBySharkSize(statusData, 'maximumSizeMtr', 'asc');
} else if (sortValue === 'desc') {
sortedData = sortBySharkSize(statusData, 'maximumSizeMtr', 'desc');
} else {
sortedData = statusData;
}
statusData = sortedData
htmlElement.getElementsByTagName('body')[0].getElementsByTagName('div')[0].replaceChildren(renderItems(statusData));
});

const buttonClear = document.getElementById('clearFilter');
buttonClear.addEventListener("click", () => {
statusData = data;
htmlElement.getElementsByTagName('body')[0].getElementsByTagName('div')[0].replaceChildren(renderItems(statusData));
document.querySelector('#locationOfTheSpecie').value = 'Todas';
document.querySelector('#longevityText').innerHTML = 'Longevidad promedio:';
})

const longevityAverage = document.querySelector('#longevityProm');
const longevityText = document.querySelector('#longevityText');
longevityAverage.addEventListener("click", () => {
longevityText.innerHTML = 'Longevidad promedio: ' + computeStats(statusData) + ' años';

})

console.log(example, renderItems(data), data);
renderItems(data);
Loading