Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
1231568
hola mundo
Maye85 Jun 18, 2024
a478a98
hola mundo beta
Maye85 Jun 18, 2024
8114266
Merge pull request #1 from Maye85/prueba
lisettevirginia Jun 18, 2024
d608777
esqueleto del HTML
Maye85 Jun 20, 2024
ab63a1d
modificación del html
Maye85 Jun 21, 2024
669aef2
primera version del dataset
lisettevirginia Jun 21, 2024
27fd7a7
segunda version del dataset
lisettevirginia Jun 21, 2024
bfebaf1
Merge pull request #5 from lisettevirginia/feature-dataset
Maye85 Jun 21, 2024
35c0853
arreglo del dataset y agregado de URL de imagenes
Maye85 Jun 22, 2024
5b92880
prueba beta
Maye85 Jun 22, 2024
b0be6d3
Merge pull request #6 from Maye85/primerhito
Maye85 Jun 22, 2024
0e834fd
metodo reactor hito 2
Maye85 Jun 25, 2024
9a19f8d
Merge pull request #7 from Maye85/primerhito
lisettevirginia Jun 25, 2024
85cc04d
nuestra primera versión del código
lisettevirginia Jun 26, 2024
b850da6
prueba dos
lisettevirginia Jun 26, 2024
a2a3c7a
Merge pull request #8 from lisettevirginia/SegundoHitoLis
lisettevirginia Jun 26, 2024
4d5d984
correccion de errores en el view.js y se agregaron algunos comentarios
Maye85 Jun 26, 2024
39d1285
segundo intento, correciones del view.js y se agregaron comentarios f…
Maye85 Jun 26, 2024
2022f16
Merge pull request #9 from Maye85/segundohitomaye
Maye85 Jun 26, 2024
5e78ebd
comienzo de botones
Maye85 Jun 28, 2024
e5dcead
Merge branch 'prueba' of github.com:Maye85/DEV015-dataverse into segu…
Maye85 Jun 28, 2024
03b93b4
comienzo de funcionalidades de botones
Maye85 Jun 28, 2024
a1b7971
se agrego el select, se corrigió la muestra de la información, se cam…
lisettevirginia Jun 29, 2024
c408d0b
Merge pull request #11 from lisettevirginia/cambiolis2806
Maye85 Jun 29, 2024
eaa9f00
correcciones de errores del test OAS-HTML
Maye85 Jun 30, 2024
02b74b3
correcciones del test OAS-HTML y comentario
Maye85 Jun 30, 2024
c566254
tercer intento
Maye85 Jun 30, 2024
e1be615
Merge pull request #12 from Maye85/segundohitomaye
lisettevirginia Jul 1, 2024
1f75493
mejorando el código para poder implementar los filtros necesarios, ag…
lisettevirginia Jul 1, 2024
d842a10
Merge pull request #13 from lisettevirginia/segundohitomaye
Maye85 Jul 1, 2024
3523547
primera versión de las funciones de filtrado y ordenado
Maye85 Jul 1, 2024
fa3a72e
Merge pull request #14 from Maye85/segundohitomaye
lisettevirginia Jul 1, 2024
778ebe1
errores del main, HTML y dataFunction arreglados
Maye85 Jul 3, 2024
82590b1
filtro que si filtra, ordenador q ordena de a-z pero no de z-a y boto…
lisettevirginia Jul 3, 2024
ac47ea7
Merge pull request #15 from lisettevirginia/segundohitomaye
Maye85 Jul 3, 2024
03912fb
comentarios de linea de código
Maye85 Jul 8, 2024
949b8b2
segundo intento
Maye85 Jul 9, 2024
8ea4bf4
cuarto intento
Maye85 Jul 9, 2024
4cb92fd
Merge pull request #16 from Maye85/segundohitomaye
Maye85 Jul 9, 2024
477ce6c
Merge branch 'prueba' of https://github.com/Maye85/DEV015-dataverse i…
lisettevirginia Jul 9, 2024
3d8b8ad
subiebdo por 5ta vez
Maye85 Jul 9, 2024
a3ca69d
Merge branch 'segundohitomaye' of https://github.com/Maye85/DEV015-da…
lisettevirginia Jul 9, 2024
443a1a5
se mejoró el CSS y se agregaron imagenes
Maye85 Jul 10, 2024
423483f
Merge branch 'segundohitomaye' of https://github.com/Maye85/DEV015-da…
lisettevirginia Jul 10, 2024
4fba9e8
corrección de errores del test de html
lisettevirginia Jul 12, 2024
b43779c
cambios en el css para poder ver las tarjetas segun pantalla, elimina…
lisettevirginia Jul 20, 2024
6444e1e
Merge pull request #19 from Maye85/segundohitomaye
Maye85 Jul 21, 2024
e0083ea
comienzo del calculo de estadistica y terminado del CSS
Maye85 Jul 23, 2024
9edc04b
Merge pull request #20 from Maye85/segundohitomaye
Maye85 Jul 23, 2024
91f05d7
se agrego los filtros correspondientes y anidados, se estuvo moviendo…
lisettevirginia Jul 25, 2024
2004e09
se creó el boton en el HTML, el DOM y el manejador de enventos en el …
Maye85 Jul 26, 2024
cff60d5
Merge pull request #21 from Maye85/tercerhitolisette
Maye85 Jul 26, 2024
ec2a9b2
calculo de estadisticas creado, se agregó un select para el mismo, ad…
Maye85 Jul 27, 2024
33fcd5e
arreglo del test JS con el cambio al metodo map y reduce, agregamos e…
Maye85 Jul 30, 2024
9203c3e
Merge pull request #22 from Maye85/cuartohitolismay
Maye85 Jul 30, 2024
66c1a91
Update style.css
Maye85 Aug 1, 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,120 changes: 92 additions & 1,028 deletions README.md

Large diffs are not rendered by default.

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

Large diffs are not rendered by default.

Binary file added src/Bridgerton_título.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
505 changes: 270 additions & 235 deletions src/data/dataset.js

Large diffs are not rendered by default.

79 changes: 72 additions & 7 deletions src/dataFunctions.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,74 @@
// Estas funciones son ejemplos, aquí puedes desarrollar tus propias funciones.
import { characters } from './data/dataset.js';

export const example = () => {
return 'example';
};
export function filterCharactersByFamily(family) {
return characters.filter(character => character.facts.familia.toLowerCase() === family.toLowerCase());
//crea un nuevo array que contiene solo los personajes que cumplen con una
//condición específica
}

export const anotherExample = () => {
return [];
};
export function sortCharactersByName(data, sortBy, sortOrder) {
// exportamos la función para ordenar personajes por nombre
//data:array de objeto(personajes),sortBy:campo del objeto,sortOrder: asc-des
const sortedCharacters = [...data];
//crea un nuevo array(copia)que contiene todos los elementos del array
return sortedCharacters.sort((a, b) => {
//compara cada par de elementos y luego retorna el array ordenado.
if (sortOrder === 'asc') {
//si es excatamente igual se ordena de forma ascendente
return a[sortBy].localeCompare(b[sortBy]);
//método de las cadenas de texto en JS que compara dos cadenas de texto
} else if (sortOrder === 'des') {
//ademas si ...
return b[sortBy].localeCompare(a[sortBy]);
//comparacion a la inversa (desendente)

}
});
}


export function filterAndSortCharacters(family, order) {
// Función combinada para filtrar y ordenar personajes
let filteredCharacters = family ? filterCharactersByFamily(family) : characters;
//expresión ternaria, forma abreviada de un if-else en una sola línea
if (order) {
//verifica si order tiene un valor que se considera verdadero
filteredCharacters = sortCharactersByName(filteredCharacters, 'name', order);
//si hay un valor en order, se ordenan los personajes filtrados
}
return filteredCharacters;
//devuelve el arreglo final, después de aplicar cualquier filtro y ordenación
}


export function getCharacters() {
// Devuelve el estado actual del arreglo de personajes
return characters;
}

export function calcularEstadisticas(data) {

return data.reduce((estadisticas, character) => {
// Función para calcular estadísticas usando reduce
const sitSentimental = character.facts.sitSentimental.toLowerCase();
//accede a la propiedad sitSentimental de un objeto character
//y almacena el resultado en la constante sitSentimental

if (sitSentimental.includes("casad")) {
estadisticas.casados++;
} else if (sitSentimental.includes("solter")) {
estadisticas.solteros++;
} else if (sitSentimental.includes("viud")) {
estadisticas.viudos++;
} else if (sitSentimental.includes("amante")) {
estadisticas.amantes++;
}
return estadisticas;
}, {
casados: 0,
solteros: 0,
viudos: 0,
amantes: 0
//contador con el que inicializan los contadores
});
}
Binary file added src/fondo_abejas.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/fondo_canva.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 62 additions & 8 deletions src/index.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,65 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<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>
<script src="main.js" type="module"></script>
</body>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<img src="lady_whistledown-sin fondo.png">
<h1>Los Bridgerton</h1>
<h2>¡Descubre sus más escandalosos secretos!</h2>
</header>
<main>
<section>
<form id="filter-form">
<label for="family-filter" id="famFilter">Filtrar por:</label>
<select id="family-filter" data-testid="select-filter" name="familyFilter">
<option value=""> </option>
<option value="bridgerton">Bridgerton</option>
<option value="featherington">Featherington</option>
<option value="basset">Basset</option>
<option value="danbury">Danbury</option>
<option value="real">Realeza</option>
<option value="No Tiene">No tiene</option>
<option value="mondrich">Mondrich</option>
<option value="crane">Crane</option>
<option value="cowper">Cowper</option>
<option value="granville">Granville</option>
</select>
<label for="alfabetico" id="alfabe">Ordenar por:</label>
<select id="alfabetico" data-testid="select-sort" name="alfabetico">
<option value=""> </option>
<option value="asc">Ordenar A-Z</option>
<option value="des">Ordenar Z-A</option>
</select>
<button type="button" data-testid="button-clear">Despejar</button>
</form>

</section>

<div class="flex-container">
<!--con root creamos el contenido dinamico del js-->
<section id="root">
<ul id="character-list" class="listaDeCarac">
<!-- Aquí se insertarán los elementos renderizados -->
</ul>
</section>
</div>
</main>
<!--exportacion e inportacion-->
<script type="module" src="./main.js"></script>

<section id="resultado-estadisticas-container">
<button id="calcularEstadisticas">Situacion Sentimental</button>
<div id="resultado-estadisticas"></div>
</section>

</body>
<footer>
<p class="piepagina">Dev 13</p>
<p class="piepagina">Lisette Piña - Mayerling Hernandez</p>
</footer>
</html>
Binary file added src/lady_whistledown-sin fondo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
74 changes: 71 additions & 3 deletions src/main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,74 @@
import { example } from './dataFunctions.js';
import {characters} from './data/dataset.js';
import { renderItems } from './view.js';
import { calcularEstadisticas, getCharacters, filterCharactersByFamily, sortCharactersByName } from './dataFunctions.js';
//se agrega calcularEstadicticas en el import de dataFuntion

import data from './data/dataset.js';
function init() {
//se encarga de inicializar la aplicación,se configuran los manejadores de eventos y se realizan acciones iniciales
const familyFilter = document.querySelector('#family-filter');
const sortFilter = document.querySelector('#alfabetico');
const clearButton = document.querySelector('[data-testid="button-clear"]');
const botonCalcularEstadisticas = document.querySelector('#calcularEstadisticas');
const resultadoEstadisticas = document.querySelector('#resultado-estadisticas');

console.log(example, renderItems(data), data);
resultadoEstadisticas.style.display = 'none';
// inicialmente oculta el contenedor de resultados estadisticos
renderItems(getCharacters());
// trae los personajes y el renderItems crea una lista para mostrar

familyFilter.addEventListener('change', () => {
//(escucha el change)se espera el cambio de familia para comenzar la funcion
const filteredCharacters = filterCharactersByFamily(familyFilter.value);
//se selecciona la familia
renderItems(filteredCharacters);
//renderizamos filteredCharacters y generamos elementos HTML dinámicamente
});

//ordemanos dentro del filtro
sortFilter.addEventListener('change', () => {
//(escucha el change)se espera el cambio para comenzar la funcion
const filteredCharacters = filterCharactersByFamily(familyFilter.value);
//se selecciona la familia
let datafilter;
//prepara la variable para almacenar un valor
if (familyFilter.value=== ""){
//si no se selecciona ninguna familia solo se ordena por nombre

datafilter = sortCharactersByName(characters, "name", sortFilter.value);
//ordenamos los datos para prepararlos para el uso del DOM
}
else{
datafilter = sortCharactersByName(filteredCharacters, "name", sortFilter.value);
} //ordena solo los personajes que ya han pasado por el filtro de familia.
renderItems(datafilter)
//toma la lista de personajes y actualiza la interfaz de usuario
//para ser mostrada en la interfaz de usuario
});

clearButton.addEventListener('click', () => {
// Restablecer el filtrado y ordenado
familyFilter.value = '';
sortFilter.value = '';

renderItems(getCharacters());
// Renderizar todos los personajes nuevamente sin aplicar filtros adicionales
});

botonCalcularEstadisticas.addEventListener('click', () => {
//creamos el metodo addEventListener y el manejador de evento click
const stats = calcularEstadisticas(getCharacters());
//traemos los personajes, para calcular la estadisticas y para luego guardarlos en stats
resultadoEstadisticas.innerHTML = `
<p>Casados: ${stats.casados}</p>
<p>Solteros: ${stats.solteros}</p>
<p>Viudos: ${stats.viudos}</p>
<p>Amantes: ${stats.amantes}</p>
`;
// Mostrar el contenedor de resultados
resultadoEstadisticas.style.display = 'flex';
// Mostrar el contenedor
});
}

document.addEventListener('DOMContentLoaded', init);
//nos aseguramos que init inicie una vez cargue el HTML para eviar errores
Binary file added src/prompt inicial.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prompt pregunta 2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prompt respuesta 1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prompt respuesta 2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prompt respuesta 3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prompt respuesta 4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prompt respuesta 5.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prompt respuesta 6.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prompt respuesta 7.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prototipo movil.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/prototipo pc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading