- - [ ] Uso de flexbox en sentido `row` y `column`
- - [ ] Uso de flexbox para el elemento que contiene los items
- - [ ] Uso de flexbox para el elemento que contiene los UI inputs
-
-#### Web APIs
-
-* **Uso de selectores del DOM**
-
- - [ ] La aplicación usa [`querySelector`](https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector)
- para buscar los elementos del DOM
-
-* **Manejo de eventos del DOM (listeners, propagación, delegación)**
-
- - [ ] `addEventListener` con callback que tiene parámetro de `event`,
- lo que permite el uso del objeto [`event`](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_objects)
- con `event.target` o `event.currentTarget`
- - [ ] La aplicación registra [Event Listeners](https://developer.mozilla.org/en/docs/Web/API/EventTarget/addEventListener)
- para escuchar `click`, `change`, `keyup` dependiendo del evento que
- se quiere escuchar
-
-* **Manipulación dinámica del DOM**
-
- - [ ] La aplicación actualiza el atributo [`innerHTML`](https://developer.mozilla.org/es/docs/Web/API/Element/innerHTML).
- - [ ] La aplicación usa `createElement` y `appendChild`, o template strings
- para crear elementos
-
-#### JavaScript
-
-* **Variables (declaración, asignación, ámbito)**
-
- - [ ] La aplicación declara variables con [`let`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)
- y [`const`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const)
- en manera adecuada
-
-* **Uso de condicionales (if-else, switch, operador ternario, lógica booleana)**
-
- - [ ] La aplicación usa el statement
- [`if..else`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else)
- para evaluar condiciones
-
-* **Uso de bucles/ciclos (while, for, for..of)**
-
- - [ ] La aplicación usa el statement [`for`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for)
- o método [`forEach`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)
- para iterar
-
-* **Funciones (params, args, return)**
-
- En el archivo `dataFunctions.js` define las siguientes funciones:
- - [ ] una función `sortBy` que tiene 3 parámetros (`data`, `sortBy`, `sortOrder`)
- y devuelve el arreglo ordenado
- - [ ] una función `filterBy` que tiene 3 parámetros (`data`, `filterBy`, `value`)
- y devuelve el arreglo filtrado
- - [ ] una función `computeStats` que tiene al menos un parámetro (`data`)
- y devuelve un valor computado
-
- Más sobre estos puntos en [la sección dataFunctions.js](#src/dataFunctions.js)
-
-* **Arrays (arreglos)**
-
- - [ ] Uso de [Arreglos](https://curriculum.laboratoria.la/es/topics/javascript/04-arrays)
- - [ ] Uso de [Array.prototype.sort() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)
- o [Array.prototype.toSorted - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/toSorted)
- - [ ] Uso de [Array.prototype.forEach() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)
- - [ ] Uso de [Array.prototype.map() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/map)
- - [ ] Uso de [Array.prototype.filter() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
- - [ ] Uso de [Array.prototype.reduce() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)
-
-* **Objetos**
-
- - [ ] Uso de notación de punto para [acceder propiedades](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors)
- - [ ] Uso de notación de brackets para [acceder propiedades](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors)
-
-* **Módulos de ECMAScript (ES Modules)**
-
- - [ ] La aplicación usa [`import`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import)
- y [`export`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export)
- para importar y exportar valores desde un modulo JavaScript.
-
-### Criterios del proyecto
-
-#### Definición del producto
-
-Documenta brevemente tu trabajo en el archivo `README.md` de tu repositorio,
-contándonos cómo fue tu proceso de diseño y cómo crees que el producto resuelve
-el problema (o problemas) que tiene tu usuaria.
-
-#### Historias de usuario
-
-Una vez que entiendas las necesidades de tus usuarias, escribe las [Historias
-de Usuaria](https://es.wikipedia.org/wiki/Historias_de_usuario) que representen
-todo lo que la usuaria necesita hacer/ver. Las **Historias de Usuario** deben
-ser el resultado de tu proceso de investigación o _research_ de tus usuarias.
-
-Asegúrate de incluir la definición de terminado (_definition of done_) y los
-Criterios de Aceptación para cada una.
-
-Usa tus historias de usuario para planificar tus sprints dividiendo
-cada historia en tareas.
-
-En la medida de lo posible, termina una Historia de Usuario antes de pasar
-a la siguiente (cumpliendo con la Definición de Terminado y los Criterios de Aceptación).
-
-#### Generar los datos
-
-La temática será a tu gusto, por ejemplo, pueden ser personajes importantes
-en la historia, personajes inventados, países, películas... etc.
-
-En el próximo proyecto, con la ayuda de la inteligencia artificial, deberás
-hacer que la usuaria pueda chatear con la data generada.
-Por ejemplo, si la data está mostrando un país, la usuaria podría
-preguntarle en que año fue fundado o cual es su capital, etc.
-Tenlo en cuenta a la hora de generar tu dataset.
-
-Esta data la vas a guardar en un archivo javascript. Este archivo,
-debe exportar un arreglo con 24 objetos. Y la estructura de cada objeto
-debe ser la siguiente:
-
-* `id`: Identificador único (no pueden haber dos elementos con el mismo `id`).
- Debe ser un string de no más de 32 characteres, en minúscula, compuesto solo
- por letras, números, underscore (`_`) o guión (`-`). Por ejemplo: `"ada-lovelace"`.
-* `name`: El nombre del personaje, país, película, etc.
-* `shortDescription`: Descripción corta del elemento. Esta descripción deberá
- tener como máximo 20 palabras.
-* `description`: Descripción extendida del elemento. Esta descripción deberá
- tener entre 80 y 100 palabras. Al momento de mostrar este dato en pantalla
- puedes truncarlo para que no ocupe tanto espacio.
-* `imageUrl`: URL de la imagen. Esta imagen será generada a través de alguna
- herramienta basada en inteligencia artifical. Una vez generada la imagen,
- y guardada en tu repo, deberás agregar la URL en este campo.
-* `facts`: Un objeto con al menos **3** "hechos" o "info" sobre este elemento, en
- formato `"nombre": "valor"`, por ejemplo:
-
- ```json
- "facts": {
- "yearOfBirth": 1843,
- "placeOfBirth": "London, England",
- "mainField": "Computer Science",
- }
- ```
-
- Los _nombres de las propiedades_, deben estar en formato _camelCase_.
- Por ejemplo **ninguno** de los siguientes nombres sería válido:
-
- ```json
- "facts": {
- "year_of_birth": 1843,
- "Place of Birth": "London, England",
- "MainField": "Computer Science",
- }
- ```
+ [ChatGPT](https://openai.com/chatgpt),
+para generar un set de datos.
- Los _valores de las propiedades_, sólo pueden ser de tipo `number`, `boolean`
- o un `string` de no más de 64 caracteres (este **no** tiene restricciones sobre
- el tipo de caracteres que puede contener).
+Un ejemplo de las directrices entregadas a la IA de ChatGPT fue la siguiente:
+
- Y por último ten en cuenta 2 cosas:
- - Todos los elementos del dataset deben compartir las mismas propiedades en
- `facts`, es decir, que si un elemento tiene una propiedad `yearOfBirth`,
- el resto de elementos del array también deben tener esa propiedad.
- - No es necesario que los nombres de las propiedades estén en inglés,
- `"lugarDeNacimiento"` es un nombre igual de válido.
-* `extraInfo`: Y por último un campo libre opcional, similar a `facts`. Si lo
- necesitas, aquí puedes poner cualquier otro tipo de información en formato
- donde puedes poner otra info que necesites en formato `"nombre": "valor"`,
- pero sin restricciones sobre el tipo de dato del valor. Por ejemplo:
+Le dimos una seríe de instrucciones tomando en cuanta la estructura que queriamos que tuviera la base de datos.
+La data que nos proporcionó la IA quedó de la siguiente manera:
+C:\Users\saraa\OneDrive\Escritorio\dataset cap.png
- ```json
- "extraInfo": {
- "imagePrompt": "Un texto bien, bien largo...",
- "writings": [
- "Vol. 1",
- "Vol. 2",
- "Vol. 3",
- "Vol. 4"
- ]
- }
- ```
-
-Un ejemplo de data, según los requisitos anteriores podría ser:
-
-```js
-export default [
- {
- "id": "ada-lovelace",
- "name": "Ada Lovelace",
- "shortDescription": "Pionera de la informática, fue la primera programadora.",
- "description": "Una visionaria del siglo XIX ...",
- "imageUrl": "URL_DE_LA_IMAGEN_GENERADA",
- "facts": {
- "yearOfBirth": 1843,
- "placeOfBirth": "London, England",
- "mainField": "Computer Science",
- }
- },
- //... 23 objetos más
-]
-```
-
-La data generada deberás reemplazarla por el contenido de este archivo:
-`./src/data/dataset.js`.
-
-**El tiempo estimado que deberías dedicar a la generación de estos datos
-es de máximo un sprint.** Si transcurrido un sprint, no tienes un
-conjunto de datos generados, deberás
-utilizar los datos de ejemplo ubicados en la ruta:
-`./src/data/dataset.js`.
-
-Las URLs de las imágenes dentro del archivo javascript, deben enlazar
-a las imágenes para cada elemento del array.
-Estas imágenes pueden ser generadas por la inteligencia artificial o imágenes
-que puedas encontrar en la web.
-Para la generación de imágenes te recomendamos usar el
-[generador de imágenes de Bing](https://www.bing.com/create).
-Una vez que tengas la imagen, descárgala u obtiene su URL, para agregársela
-al dataset.
-
-Una vez que tengas el archivo javascript completo, recuerda correr los test con
-`npm run test` para verificar que el archivo esté cumpliendo con lo
-solicitado.
-
-Una vez que hayas delimitado tu campo de interés y generado el archivo
-javascript con la asistencia de la inteligenica artificial, dedica
-tiempo a comprender a fondo a tu usuaria y sus
-necesidades específicas. A partir de esta comprensión, podrás diseñar la
-interfaz que facilite una interacción más efectiva y una comprensión más
-completa de los datos presentados.
-
-#### Prompt utilizado
-
-Dentro del readme que armarás, debe incluir una captura de pantalla
-de tu prompt utilizado para generar los datos. Si utilizaste varios prompts,
-puedes adjuntar todas las capturas que necesites.
-
-#### Diseño de la Interfaz de Usuaria
-
-##### Prototipo de alta fidelidad
-
-Usando los wireframes o bocetos (_sketches_) de tu solución de interfaz
-como base, lo siguiente es diseñar tu Interfaz de Usuaria (UI por sus
-siglas en inglés - _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, 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 trabajar. Además, tu
-diseño debe seguir los fundamentos de _visual design_.
-
-Recuerda pedir feedback de tu prototipo a tus compañeras y/o coaches.
-
-#### Testeos de usabilidad
-
-Durante el reto deberás hacer _tests_ de usabilidad con distintos usuarias,
-y con base en 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 Usuaria (HTML/CSS/JS)
-
-Luego de diseñar tu interfaz de usuaria deberás trabajar en su implementación.
-**No** es necesario que construyas la interfaz exactamente como la diseñaste.
-Tu tiempo de hacking es escaso, así que deberás priorizar.
-
-Revisa [las funcionalidades](#3-funcionalidades) que el proyecto pide del interfaz.
-
-#### Pruebas unitarias
-
-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. Este proyecto usa
-el framework [Jest](https://jestjs.io/) para ejecutar las pruebas unitarias por lo
-que te recomendamos consultar su documentación.
-
-Tus _pruebas unitarias_ deben dar una cobertura del 70% de _statements_
-(_sentencias_), _functions_ (_funciones_), _lines_ (_líneas_), y _branches_
-(_ramas_) del archivo `src/dataFunctions.js` que contenga tus funciones y
-está detallado en la sección de [Consideraciones técnicas](#src/data.js).
-
-## 7. Hacker edition
-
-Las secciones llamadas _Hacker Edition_ son **opcionales**. Si **terminaste**
-con todo lo anterior y te queda tiempo, intenta completarlas. Así podrás
-profundizar y/o ejercitar más sobre los objetivos de aprendizaje del proyecto.
-
-Features/características extra sugeridas:
-
-* Visualizar la estadística calculada mediante un gráfico. Para
- 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
-
-## 8. Objetivos de aprendizaje
-
-
-Reflexiona y luego marca los objetivos que has llegado a entender y aplicar en tu proyecto. Piensa en eso al decidir tu estrategia de trabajo.
-
-### HTML
-
-- [ ] **Uso de HTML semántico**
-
- Links
-
- * [HTML semántico](https://curriculum.laboratoria.la/es/topics/html/02-html5/02-semantic-html)
- * [Semantics - MDN Web Docs Glossary](https://developer.mozilla.org/en-US/docs/Glossary/Semantics#Semantics_in_HTML)
-
-
-### CSS
-
-- [ ] **Uso de selectores de CSS**
-
- Links
-
- * [Intro a CSS](https://curriculum.laboratoria.la/es/topics/css/01-css/01-intro-css)
- * [CSS Selectors - MDN](https://developer.mozilla.org/es/docs/Web/CSS/CSS_Selectors)
-
-
-- [ ] **Modelo de caja (box model): borde, margen, padding**
-
- Links
-
- * [Box Model & Display](https://curriculum.laboratoria.la/es/topics/css/01-css/02-boxmodel-and-display)
- * [The box model - MDN](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model)
- * [Introduction to the CSS box model - MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model)
- * [CSS display - MDN](https://developer.mozilla.org/pt-BR/docs/Web/CSS/display)
- * [display - CSS Tricks](https://css-tricks.com/almanac/properties/d/display/)
-
-
-- [ ] **Uso de flexbox en CSS**
-
- Links
-
- * [A Complete Guide to Flexbox - CSS Tricks](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
- * [Flexbox Froggy](https://flexboxfroggy.com/#es)
- * [Flexbox - MDN](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox)
-
-
-### Web APIs
-
-- [ ] **Uso de selectores del DOM**
-
- Links
-
- * [Manipulación del DOM](https://curriculum.laboratoria.la/es/topics/browser/02-dom/03-1-dom-methods-selection)
- * [Introducción al DOM - MDN](https://developer.mozilla.org/es/docs/Web/API/Document_Object_Model/Introduction)
- * [Localizando elementos DOM usando selectores - MDN](https://developer.mozilla.org/es/docs/Web/API/Document_object_model/Locating_DOM_elements_using_selectors)
-
-
-- [ ] **Manejo de eventos del DOM (listeners, propagación, delegación)**
-
- Links
-
- * [Introducción a eventos - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/Events)
- * [EventTarget.addEventListener() - MDN](https://developer.mozilla.org/es/docs/Web/API/EventTarget/addEventListener)
- * [EventTarget.removeEventListener() - MDN](https://developer.mozilla.org/es/docs/Web/API/EventTarget/removeEventListener)
- * [El objeto Event](https://developer.mozilla.org/es/docs/Web/API/Event)
-
-
-- [ ] **Manipulación dinámica del DOM**
-
- Links
-
- * [Introducción al DOM](https://developer.mozilla.org/es/docs/Web/API/Document_Object_Model/Introduction)
- * [Node.appendChild() - MDN](https://developer.mozilla.org/es/docs/Web/API/Node/appendChild)
- * [Document.createElement() - MDN](https://developer.mozilla.org/es/docs/Web/API/Document/createElement)
- * [Document.createTextNode()](https://developer.mozilla.org/es/docs/Web/API/Document/createTextNode)
- * [Element.innerHTML - MDN](https://developer.mozilla.org/es/docs/Web/API/Element/innerHTML)
- * [Node.textContent - MDN](https://developer.mozilla.org/es/docs/Web/API/Node/textContent)
-
-
-### JavaScript
-
-- [ ] **Diferenciar entre tipos de datos primitivos y no primitivos**
-
-- [ ] **Arrays (arreglos)**
-
- Links
-
- * [Arreglos](https://curriculum.laboratoria.la/es/topics/javascript/04-arrays)
- * [Array - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/)
- * [Array.prototype.sort() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)
- * [Array.prototype.forEach() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)
- * [Array.prototype.map() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/map)
- * [Array.prototype.filter() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
- * [Array.prototype.reduce() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)
-
-
-- [ ] **Objetos (key, value)**
-
- Links
-
- * [Objetos en JavaScript](https://curriculum.laboratoria.la/es/topics/javascript/05-objects/01-objects)
-
-
-- [ ] **Variables (declaración, asignación, ámbito)**
-
- Links
-
- * [Valores, tipos de datos y operadores](https://curriculum.laboratoria.la/es/topics/javascript/01-basics/01-values-variables-and-types)
- * [Variables](https://curriculum.laboratoria.la/es/topics/javascript/01-basics/02-variables)
-
-
-- [ ] **Uso de condicionales (if-else, switch, operador ternario, lógica booleana)**
-
- Links
-
- * [Estructuras condicionales y repetitivas](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/01-conditionals-and-loops)
- * [Tomando decisiones en tu código — condicionales - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/conditionals)
-
-
-- [ ] **Uso de bucles/ciclos (while, for, for..of)**
-
- Links
-
- * [Bucles (Loops)](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/02-loops)
- * [Bucles e iteración - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Loops_and_iteration)
-
-
-- [ ] **Funciones (params, args, return)**
-
- Links
-
- * [Funciones (control de flujo)](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/03-functions)
- * [Funciones clásicas](https://curriculum.laboratoria.la/es/topics/javascript/03-functions/01-classic)
- * [Arrow Functions](https://curriculum.laboratoria.la/es/topics/javascript/03-functions/02-arrow)
- * [Funciones — bloques de código reutilizables - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/Functions)
-
-
-- [ ] **Pruebas unitarias (unit tests)**
-
- Links
-
- * [Empezando con Jest - Documentación oficial](https://jestjs.io/docs/es-ES/getting-started)
-
-
-- [ ] **Módulos de ECMAScript (ES Modules)**
-
- Links
-
- * [import - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/import)
- * [export - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/export)
-
-
-- [ ] **Uso de linter (ESLINT)**
-
-- [ ] **Uso de identificadores descriptivos (Nomenclatura y Semántica)**
-
-- [ ] **Diferenciar entre expresiones (expressions) y sentencias (statements)**
-
-### Control de Versiones (Git y GitHub)
-
-- [ ] **Git: Instalación y configuración**
-
-- [ ] **Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)**
-
-- [ ] **Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)**
-
-- [ ] **GitHub: Creación de cuenta y repos, configuración de llaves SSH**
-
-- [ ] **GitHub: Despliegue con GitHub Pages**
-
- Links
-
- * [Sitio oficial de GitHub Pages](https://pages.github.com/)
-
-
-- [ ] **GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)**
-
-### Centrado en el usuario
-
-- [ ] **Diseñar y desarrollar un producto o servicio poniendo a las usuarias en el centro**
-
-### Diseño de producto
-
-- [ ] **Crear prototipos de alta fidelidad que incluyan interacciones**
-
-- [ ] **Seguir los principios básicos de diseño visual**
-
-### Investigación
-
-- [ ] **Planear y ejecutar testeos de usabilidad de prototipos en distintos niveles de fidelidad**
-
- Links
-
- * [Intro a testeos usabilidad](https://coda.io/@bootcamp-laboratoria/contenido-ux/test-de-usabilidad-15)
- * [Pruebas con Usuarios 1 — ¿Qué, cuándo y para qué testeamos?](https://eugeniacasabona.medium.com/pruebas-con-usuarios-1-qu%C3%A9-cu%C3%A1ndo-y-para-qu%C3%A9-testeamos-7c3a89b4b5e7)
-
-
-### AI Prompting
-
-- [ ] **Dando Instrucciones**
-
- Links
-
- * [Dando Instrucciones | Learn Prompting: Your Guide to Communicating with AI](https://learnprompting.org/es/docs/basics/instructions)
-
-
-- [ ] **Few shot prompting**
-
- Links
-
- * [Few shot prompting | Learn Prompting: Your Guide to Communicating with AI](https://learnprompting.org/es/docs/basics/few_shot)
-
-
-## 9. Pistas, tips y lecturas complementarias
-
-### Primeros pasos
+El propósito de generar los datos en esta manera es aprovechar la oportunidad de emplear las herramientas impulsadas por la inteligencia
+artificial, así como [técnicas de
+prompting](https://learnprompting.org/es/docs/intro).
-Súmate al canal de Slack
-[#project-dataverse](https://claseslaboratoria.slack.com/archives/C03MV35EP5M)
-para conversar y pedir ayuda del proyecto.
+Como entregable final se tiene una página web que permite **visualizar la data,
+filtrarla, ordenarla y calcular una estadística**.
-Antes de empezar a escribir código, debes definir qué deberá hacer el
-producto con base en el conocimiento que puedas obtener de tu usuaria.
-Estas preguntas te pueden ayudar:
-* ¿Quiénes son las principales usuarias del producto?
-* ¿Cuáles son los objetivos de estas usuarias en relación con el producto?
-* ¿Cuáles son los datos más relevantes que quieren ver en la interfaz y por qué?
-* ¿Cuándo utilizan o utilizarían el producto?
-* Toda tu investigación previa debe tener como resultado todas las Historias
- de Usuaria de tu proyecto.
-* No hagas los prototipos de alta fidelidad de todas tus Historias. Comienza
- solamente por los que se necesiten para tu Sprint 1 (semana 1 de trabajo). Más
- pistas en la guía de organización para el proyecto.
+## 3. Historias de usuarias
+La historia de usuari@ nos permitió tener una guia en la planificacion de los sprints dividiendola en tareas, estas historias las fuimos organizando en Trello como guía para la planificación de las tareas durante los sprints.
-Cuando ya estés lista para codear, te sugerimos empezar de esta manera:
+## 4. Diseño de la página y responsive
-1. Una de las integrantes del equipo debe realizar un :fork_and_knife:
- [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.
-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
- asume que has instalado [Node.js](https://nodejs.org/) (que incluye [npm](https://docs.npmjs.com/)).
-4. Si todo ha ido bien, deberías poder ejecutar las :traffic_light:
- pruebas unitarias (unit tests) con el comando `npm test`.
-5. Para ver la interfaz de tu programa en el navegador, usa el comando
- `npm start` para arrancar el servidor web y dirígete a
- `http://localhost:5000` en tu navegador.
-6. A codear se ha dicho! :rocket:
+Para el diseño, se utilizó una herramienta de diseño (Figma) para crear los prototipos de mobile y desktop. Este diseño se fué
+modificado al recibir feedback de nuestras compañeras.
+
+
-### Contenido de referencia
-#### Desarrollo Front-end
+Trabajamos con colores amarillos para mantener el concepto de la paleta de colores de las abejas con un diseño minimalista sin
+distracciones, dando el resultado final como se muestra la app en el navegador.
-* [Tópicos en la currícula de Laboratoria](https://curriculum.laboratoria.la/es/web-dev/topics)
- testing, arreglos, objetos, funciones, DOM en Browser Javascript.
-* [Buscando elementos con querySelector*](https://es.javascript.info/searching-elements-dom)
-* [Objeto del evento](https://es.javascript.info/introduction-browser-events#objeto-del-evento)
-* [Array en MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array)
-* [Array.sort en MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/sort)
-* [Array.toSorted en MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toSorted)
-* [Array.map en MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/map)
-* [Array.filter en MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/filter)
-* [Array.reduce en MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/reduce)
-* [Array.forEach en MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/forEach)
-* [Object.keys en MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/keys)
-* [Object.entries en MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/entries)
-* [Atributos de datos](https://developer.mozilla.org/es/docs/Learn/HTML/Howto/Use_data_attributes)
-* [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/)
-* [Módulos: Export](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/export)
-* [Módulos: Import](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/import)
-* [Diferencia entre array y objetos](https://youtu.be/mJJloQY7A8Y)
-* [¿Cómo puedo recorrer un objeto?](https://youtube.com/01RHn23Bn_0)
-* [`map`, `filter`, `sort` y `reduce` también son métodos para objetos](https://youtu.be/bUl1R2lQvKo)
-* [Diferencia entre expression y statements](https://youtu.be/wlukoWco2zk)
-* [Diferencia entre createElement e innerHTML](https://www.javascripttutorial.net/javascript-dom/javascript-innerhtml-vs-createelement/)
-* [¿Qué es el Scope?](https://youtu.be/s-7C09ymzK8)
+
+
-#### Herramientas
-* [Git](https://git-scm.com/)
-* [GitHub](https://github.com/)
-* [GitHub Pages](https://pages.github.com/)
-* [Para preguntas sobre Git recomendamos ver este playlist](https://www.youtube.com/watch?v=F1EoBbvhaqU&list=PLiAEe0-R7u8k9o3PbT3_QdyoBW_RX8rnV)
-* [Node.js](https://nodejs.org/)
-* [Jest](https://jestjs.io/)
+### Pruebas unitarias
-#### Organización del Trabajo
+Este proyecto no incluian las Pruebas Unitarias (*tests*), así que se crearon con el framework Jest, especificamente para las funciones encargadas de *procesar*,
+*filtrar* y *ordenar* la data, así la de *calcular* estadísticas.
-* [Historias de Usuario](https://www.youtube.com/watch?v=ky6wFiF5vMk&t=344s).
- Ojo que Cris no diferencia _Definición de terminado_ de _Criterios de
- Aceptación_ y nosotros sí lo haremos. Más detalles en la guía.
-* [Cómo dividir H.U.](https://www.youtube.com/watch?v=Ueq786iZ30I&t=341s)
+Las *pruebas unitarias* dan una cobertura del 100% de *statements*
+(*sentencias*), *functions* (*funciones*), *lines* (*líneas*), y *branches*
+(*ramas*) del archivo `src/dataFunctions.js` que contiene las funciones.
-## 10. Consideraciones para pedir tu Project Feedback
+## 5. Herramientas
-Antes de agendar tu Project Feedback con un coach, asegúrate que tu proyecto:
+- [Git](https://git-scm.com/)
+- [GitHub](https://github.com/)
+- [GitHub Pages](https://pages.github.com/)
+- [Node.js](https://nodejs.org/)
+- [Jest](https://jestjs.io/)
+- [Visual Code Studio](https://code.visualstudio.com/)
-* [ ] Cumple con todos los criterios mínimos de aceptación al ejecutar `npm run test:oas`
-* [ ] Cumple con todas las pruebas _end to end_ al ejecutar `npm run test:e2e`
-* [ ] Cumple con todas las pruebas unitarias al ejecutar `npm run test` y
- que tienen una cobertura del 70% de _statements_ (_sentencias_),
- _functions_ (_funciones_), _lines_ (_líneas_), y _branches_
-* [ ] Esta libre de _errores_ de `eslint` al ejecutar `npm run pretest`
-* [ ] Está subido a GitHub y desplegado en GitHub Pages
-* [ ] Captura de pantalla del prompt utilizado para generar los datos.
-* Tiene un `README.md` con la siguente:
- - [ ] _Definición del producto_ clara e informativa
- - [ ] Historias de usuario
- - [ ] Un _Diseño de la Interfaz de Usuaria_ (prototipo de alta fidelidad)
- - [ ] El listado de problemas que detectaste a través de tests
- de usabilidad en el `README.md`
-* Tiene un UI que cumple las funcionalidades:
- - [ ] Muestra lista con datos y/o indicadores
- - [ ] Permite ordenar data por uno o más campos (asc y desc)
- - [ ] Permite filtrar data con base en una condición
- - [ ] Permite limpiar los filtros con un botón
- - [ ] Es _responsive_
+## 6. Autoras
+*Sara Adela Saldarriaga*
-Recuerda que debes hacer una autoevaluación de _objetivos de aprendizaje_ y
-_life skills_ desde tu dashboard de estudiante.
+*Sara Arvizu*
-Si no has completado todo lo anterior, no consideramos que estás lista para
-tu sesión de Project Feedback.
diff --git a/image-1.png b/image-1.png
new file mode 100644
index 00000000..7ef9f143
Binary files /dev/null and b/image-1.png differ
diff --git a/image.png b/image.png
new file mode 100644
index 00000000..20d647d0
Binary files /dev/null and b/image.png differ
diff --git a/package-lock.json b/package-lock.json
index 7477f83a..810f7028 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,10 +15,10 @@
"acorn": "^8.8.2",
"babel-jest": "^27.0.1",
"css": "^3.0.0",
- "eslint": "^8.3.0",
+ "eslint": "^8.52.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"
@@ -102,12 +102,12 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz",
- "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
+ "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.22.15",
+ "@babel/types": "^7.23.0",
"@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
@@ -142,13 +142,13 @@
}
},
"node_modules/@babel/helper-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
- "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
},
"engines": {
"node": ">=6.9.0"
@@ -286,9 +286,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.22.16",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz",
- "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -491,19 +491,19 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz",
- "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
+ "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.22.15",
+ "@babel/generator": "^7.23.0",
"@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.22.16",
- "@babel/types": "^7.22.19",
+ "@babel/parser": "^7.23.0",
+ "@babel/types": "^7.23.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -512,13 +512,13 @@
}
},
"node_modules/@babel/types": {
- "version": "7.22.19",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz",
- "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
+ "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
"dev": true,
"dependencies": {
"@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.19",
+ "@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -624,21 +624,21 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.50.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
- "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz",
+ "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.11",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
- "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+ "version": "0.11.13",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+ "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
"dev": true,
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
+ "@humanwhocodes/object-schema": "^2.0.1",
"debug": "^4.1.1",
"minimatch": "^3.0.5"
},
@@ -660,9 +660,9 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
"dev": true
},
"node_modules/@istanbuljs/load-nyc-config": {
@@ -1512,6 +1512,12 @@
"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
"dev": true
},
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
"node_modules/@zeit/schemas": {
"version": "2.29.0",
"resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz",
@@ -2753,18 +2759,19 @@
}
},
"node_modules/eslint": {
- "version": "8.50.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
- "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
+ "version": "8.52.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz",
+ "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.2",
- "@eslint/js": "8.50.0",
- "@humanwhocodes/config-array": "^0.11.11",
+ "@eslint/js": "8.52.0",
+ "@humanwhocodes/config-array": "^0.11.13",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
"ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
diff --git a/package.json b/package.json
index 8175cf12..ba76585d 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
"htmlhint": "htmlhint src/*.html test/*.html",
"eslint": "eslint --ext .js src/ test/",
"pretest": "npm run eslint && npm run htmlhint",
- "test": "jest --verbose --coverage test/*.spec.js",
+ "test": "jest --verbose --coverage test/",
"test:e2e": "playwright test",
"test:oas": "jest --verbose tests-read-only/oa/",
"pretest:oas-html": "npm run pretest",
@@ -30,10 +30,10 @@
"acorn": "^8.8.2",
"babel-jest": "^27.0.1",
"css": "^3.0.0",
- "eslint": "^8.3.0",
+ "eslint": "^8.52.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"
@@ -49,4 +49,4 @@
"jest": {
"testEnvironment": "jsdom"
}
-}
\ No newline at end of file
+}
diff --git a/src/data/dataset.js b/src/data/dataset.js
index 9d01aea9..d41abcc5 100644
--- a/src/data/dataset.js
+++ b/src/data/dataset.js
@@ -1,378 +1,459 @@
export default [
{
- "id": "ada-lovelace",
- "name": "Ada Lovelace",
- "shortDescription": "Pionera en la programación, primera programadora de la historia.",
- "description": "Una visionaria matemática británica del siglo XIX, es aclamada como la primera programadora de la historia. Su colaboración con Charles Babbage en la creación de la Máquina Analítica la llevó a desarrollar algoritmos, incluyendo el famoso \"algoritmo de Bernoulli\", destinados a ser procesados por una máquina. Su visión pionera la convirtió en una figura fundamental en la informática y la inteligencia artificial. Lovelace demostró que las computadoras podían ir más allá de simples cálculos matemáticos, anticipando un mundo donde la programación sería esencial en la resolución de problemas complejos, dejando una huella imborrable en la ciencia y la tecnología.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/ada-lovelace.jpg",
- "facts": {
- "yearOfBirth": "1815",
- "yearOfDeath": "1852",
- "birthPlace": "Londres, Reino Unido",
- "mainField": "Ciencia de la Computación"
- },
- "extraInfo": {
- "imageSource": "https://www.bing.com/images/create/genera-una-imagen-de-ada-lovelace2c-la-primera-prog/650a1eff8ff04b88833d5cdef0309441"
- }
+ id: "apis-mellifera",
+ name: "Abeja Apis mellifera",
+ shortDescription: "Abeja melífera europea",
+ description:
+ "La Abeja Apis mellifera, también conocida como abeja melífera europea, es una especie de abeja altamente valorada por su capacidad para producir miel y polinizar una amplia variedad de cultivos en todo el mundo. Es una de las abejas más conocidas y domesticadas por los seres humanos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.cLhH2nLb4PoQa5Nrq0M9?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 5 semanas en verano",
+ familia: "Apidae",
+ productorDeMiel: "Sí",
+ },
+ extraInfo: {
+ imageSource:
+ "https://www.bing.com/images/create/genera-una-imagen-de-ada-lovelace2c-la-primera-prog/650a1eff8ff04b88833d5cdef0309441",
+ },
},
{
- "id": "emmy-noether",
- "name": "Emmy Noether",
- "shortDescription": "Matemática destacada, teorema fundamental en álgebra abstracta.",
- "description": "Una brillante matemática alemana, revolucionó la física teórica con sus contribuciones al teorema de conservación de la energía y el teorema de Noether, fundamentales en la teoría de la relatividad y la mecánica cuántica. A pesar de los obstáculos que enfrentó como mujer en la academia, sus investigaciones en álgebra abstracta y teoría de grupos son fundamentales en la física moderna. Su capacidad para unificar conceptos matemáticos y físicos marcó un hito en la historia de la ciencia, allanando el camino para futuras generaciones de científicas.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/emmy-noether.jpg",
- "facts": {
- "yearOfBirth": "1882",
- "yearOfDeath": "1935",
- "birthPlace": "Erlangen, Alemania",
- "mainField": "Matemáticas"
- },
- "extraInfo": {
- "imageSource": "https://www.bing.com/images/create/create-an-image-of-of-a-german-woman2c-a-pioneering/6510ddb1e8254b928b8f8f1d5e95fea4"
- }
+ id: "bombus-terrestris",
+ name: "Abeja Bombus terrestris",
+ shortDescription: "Abeja de tierra",
+ description:
+ "La Abeja Bombus terrestris, conocida como abeja de tierra o abejorro común, es una especie de abejorro ampliamente distribuida en Europa. Es un polinizador clave en ecosistemas naturales y también se utiliza en la polinización de cultivos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.UexCaUWYSQ8UI_Mc_Ekq?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 12 a 14 semanas",
+ familia: "Apidae",
+ productorDeMiel: "Sí, en pequeñas cantidades",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Los abejorros Bombus terrestris son polinizadores eficaces de tomates y pimientos en la agricultura.",
+ "Son abejas sociales con colonias que incluyen una reina y trabajadoras.",
+ ],
+ },
},
{
- "id": "hypatia-de-alejandria",
- "name": "Hypatia de Alejandría",
- "shortDescription": "Matemática y filósofa en la antigua Alejandría.",
- "description": "Filósofa y matemática en la antigua Alejandría, desafió las normas de género de su época al destacar en una sociedad dominada por hombres. Su legado incluye importantes contribuciones a la geometría y la astronomía, así como su destacado papel como maestra y defensora del conocimiento en una época de agitación política. Hypatia demostró que las mujeres podían sobresalir en campos intelectuales y su valentía al mantener sus creencias filosóficas la convierte en un símbolo de resistencia y sabiduría en la historia de la ciencia.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/hypatia-de-alejandria.jpg",
- "facts": {
- "yearOfBirth": "circa 360",
- "yearOfDeath": "415",
- "birthPlace": "Alejandría, Egipto",
- "mainField": "Matemáticas, Filosofía"
- },
- "extraInfo": {
- "imageSource": "https://www.bing.com/images/create/create-a-vivid-digital-artwork-or-painting-that-de/6510df0ebe1a4807af22175452761e1a"
- }
+ id: "xylocopa-violacea",
+ name: "Abeja Xylocopa violacea",
+ shortDescription: "Abeja carpintera violeta",
+ description:
+ "La Abeja Xylocopa violacea, también conocida como abeja carpintera violeta, es una abeja carpintera grande que se encuentra en Europa y otras regiones. Son conocidas por su coloración violeta y su capacidad para excavar galerías en la madera.",
+ imageUrl: "https://th.bing.com/th/id/OIG.3x0WMPs6PnAshPHSWzlC?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 1 a 2 meses",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas carpinteras violetas son solitarias y anidan en la madera, donde depositan sus huevos en galerías.",
+ "Son polinizadores de algunas flores, pero no producen miel en cantidades significativas.",
+ ],
+ },
},
{
- "id": "marjorie-lee-browne",
- "name": "Marjorie Lee Browne",
- "shortDescription": "Matemática, contribuyó a la teoría de números.",
- "description": "Matemática estadounidense, destacó en una época en la que las mujeres afroamericanas enfrentaban múltiples barreras en la educación superior. No solo obtuvo su doctorado en matemáticas, sino que también se convirtió en una destacada educadora, promoviendo la diversidad en las ciencias matemáticas y desafiando la discriminación racial y de género. Su compromiso con la educación y su capacidad para inspirar a futuras generaciones la convierten en un modelo a seguir para las mujeres en la ciencia, dejando una huella perdurable en la historia académica.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/marjorie-lee-browne.jpg",
- "facts": {
- "yearOfBirth": "1914",
- "yearOfDeath": "1979",
- "birthPlace": "Memphis, Estados Unidos",
- "mainField": "Matemáticas"
- },
- "extraInfo": {
- "imageSource": "https://www.bing.com/images/create/design-an-inspiring-and-historically-accurate-imag/6510df7e7bb745f69d67f695441607a8"
- }
+ id: "halictus-ligatus",
+ name: "Abeja Halictus ligatus",
+ shortDescription: "Abeja sudorera verde",
+ description:
+ "La Abeja Halictus ligatus, o abeja sudorera verde, es una especie de abeja sudorera que se encuentra en varias regiones de América del Norte. Son llamadas así porque a veces se sienten atraídas por el sudor humano.",
+ imageUrl: "https://th.bing.com/th/id/OIG.CknQ63HJv4I0EYciEhAI?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 2 a 6 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas sudoreras verdes son conocidas por su color metálico y su interés en el sudor humano.",
+ "Juegan un papel importante en la polinización de diversas flores silvestres.",
+ ],
+ },
},
{
- "id": "shakuntala-devi",
- "name": "Shakuntala Devi",
- "shortDescription": "Matemática prodigio, conocida como la 'Calculadora Humana'.",
- "description": "Conocida como \"la bruja de las matemáticas\" de la India, dejó una marca indeleble en el mundo de los números. Su capacidad mental asombrosa la llevó a resolver complejos cálculos matemáticos mentalmente en cuestión de segundos, estableciendo récords mundiales. Además de su talento innato, Devi promovió activamente la educación matemática y luchó por la igualdad de género en un país donde las mujeres enfrentaban desafíos en la ciencia y la educación. Su legado destaca el poder de la mente humana y la importancia de la igualdad de oportunidades en la ciencia.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/shakuntala-devi.jpg",
- "facts": {
- "yearOfBirth": "1929",
- "yearOfDeath": "2013",
- "birthPlace": "Bangalore, India",
- "mainField": "Matemáticas"
- },
- "extraInfo": {
- "imageSource": "https://www.bing.com/images/create/indian-woman-writing-math-problems-in-a-blackbard-/6510e19f3db54e14b365b7e8dc5045f6"
- }
+ id: "megachile-rotundata",
+ name: "Abeja Megachile rotundata",
+ shortDescription: "Abeja cortadora de hojas",
+ description:
+ "La Abeja Megachile rotundata, también llamada abeja cortadora de hojas, es una especie de abeja solitaria originaria de Europa, pero ampliamente utilizada en la polinización de cultivos, especialmente alfalfa y otras plantas forrajeras.",
+ imageUrl: "https://th.bing.com/th/id/OIG.H6lY3MKgU4klb3Baibq4?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 6 a 8 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Megachile rotundata cortan trozos de hojas para construir sus nidos.",
+ "Son excelentes polinizadores y su uso en la agricultura es común.",
+ ],
+ },
},
{
- "id": "sofia-kovalevskaya",
- "name": "Sofia Kovalevskaya",
- "shortDescription": "Matemática y escritora, contribuyó a la teoría de funciones.",
- "description": "Matemática rusa del siglo XIX, dejó una marca indeleble en la ciencia del siglo XIX al desafiar las barreras de género. Como matemática rusa, superó las restricciones sociales de su época para convertirse en la primera mujer en obtener un doctorado en matemáticas en Europa. Sus contribuciones a la teoría de las ecuaciones diferenciales y la mecánica revolucionaron la disciplina, abriendo nuevas perspectivas en el análisis matemático. Su destacada membresía en la Academia de Ciencias de Suecia marcó un hito en la historia de las mujeres en la ciencia.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/sofia-kovalevskaya.jpg",
- "facts": {
- "yearOfBirth": "1850",
- "yearOfDeath": "1891",
- "birthPlace": "Moscú, Rusia",
- "mainField": "Matemáticas"
- },
- "extraInfo": {
- "imageSource": "https://www.bing.com/images/create/indian-woman-writing-math-problems-in-a-blackbard-/6510e19f3db54e14b365b7e8dc5045f6"
- }
+ id: "osmia-bicornis",
+ name: "Abeja Osmia bicornis",
+ shortDescription: "Abeja albañil azul",
+ description:
+ "La Abeja Osmia bicornis, conocida como abeja albañil azul, es una abeja solitaria que se encuentra en Europa y otras regiones. Son llamadas albañiles azules debido a su hábito de sellar sus nidos con barro.",
+ imageUrl: "https://th.bing.com/th/id/OIG.gR9uYMc1cCmT4yUcOXP6?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Osmia bicornis son excelentes polinizadores de frutas y flores silvestres.",
+ "Construyen sus nidos en cavidades preexistentes o en agujeros de tallos.",
+ ],
+ },
},
{
- "id": "yoko-shimomura",
- "name": "Yoko Shimomura",
- "shortDescription": "Compositora de música, destacada en la industria de los videojuegos.",
- "description": "Compositora japonesa, es una figura destacada en la ciencia de la música y el arte sonoro. Aunque no se dedica a la ciencia en el sentido tradicional, su trabajo en la composición musical ha requerido un profundo entendimiento de la teoría musical y la tecnología de audio. Ha contribuido de manera significativa a la industria de los videojuegos, componiendo icónicas bandas sonoras que han enriquecido la experiencia de juego. Su éxito en un campo donde las mujeres estaban subrepresentadas la convierte en un modelo a seguir, incluso en campos no convencionales como la composición musical.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/yoko-shimomura.jpg",
- "facts": {
- "yearOfBirth": "1967",
- "birthPlace": "Hyogo, Japón",
- "mainField": "Composición Musical, Video Juegos"
- },
- "extraInfo": {
- "imageSource": "https://www.bing.com/images/create/yoko-shimomura-making-music-for-a-video-game-in-19/6510e40dd1eb45d0906e8c1f4bb601d3"
- }
+ id: "anthidium-manicatum",
+ name: "Abeja Anthidium manicatum",
+ shortDescription: "Abeja cardera",
+ description:
+ "La Abeja Anthidium manicatum, o abeja cardera, es una especie de abeja solitaria que se encuentra en Europa y otras regiones. Son conocidas por su comportamiento de recolección de fibras vegetales para construir sus nidos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.iTRt5yh2lqWhGCOnRsuS?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas carderas recolectan pelusa y fibras vegetales para construir sus nidos en cavidades naturales o agujeros.",
+ "Son polinizadores efectivos y se encuentran en diversos hábitats.",
+ ],
+ },
},
{
- "id": "maryam-mirzakhani",
- "name": "Maryam Mirzakhani",
- "shortDescription": "Matemática, ganadora del Premio Fields.",
- "description": "Matemática iraní, hizo historia al convertirse en la primera mujer en ganar la Medalla Fields, el premio más prestigioso en matemáticas. Sus investigaciones en la geometría de superficies y la teoría de las superficies de Riemann han tenido un impacto duradero en la matemática pura. A lo largo de su carrera, Mirzakhani inspiró a muchas mujeres a perseguir carreras en ciencia y matemáticas, derribando las barreras de género. Su enfoque innovador y su capacidad para resolver problemas complejos la convierten en un modelo a seguir para la comunidad científica y en un símbolo de la excelencia matemática.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/maryam-mirzakhani.jpg",
- "facts": {
- "yearOfBirth": "1977",
- "yearOfDeath": "2017",
- "birthPlace": "Teherán, Irán",
- "mainField": "Matemáticas"
- },
- "extraInfo": {
- "imageSource": "https://chalkdustmagazine.com/features/mathematics-maryam-mirzakhani/"
- }
+ id: "eucera-nigrescens",
+ name: "Abeja Eucera nigrescens",
+ shortDescription: "Abeja de arena negra",
+ description:
+ "La Abeja Eucera nigrescens, conocida como abeja de arena negra, es una especie de abeja que se encuentra en varias regiones de Europa. Son llamadas así por su preferencia por los hábitats de arena.",
+ imageUrl: "https://th.bing.com/th/id/OIG.qJZNmIaU2mMqeKulERNf?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas de arena negra son polinizadores especializados de plantas que crecen en suelos arenosos.",
+ "A menudo excavan nidos en el suelo y son solitarias.",
+ ],
+ },
},
{
- "id": "adele-goldberg",
- "name": "Adele Goldberg",
- "shortDescription": "Informática pionera, co-creadora del lenguaje de programación Smalltalk.",
- "description": "Informática estadounidense reconocida por su influyente trabajo en la investigación y desarrollo de la programación orientada a objetos. Su contribución más destacada es la creación del lenguaje de programación Smalltalk, que revolucionó la forma en que se desarrollan software y sistemas informáticos. Goldberg ha sido una defensora incansable de la usabilidad y la accesibilidad en la informática, asegurando que las aplicaciones informáticas sean más amigables para los usuarios. Su trabajo ha allanado el camino para una programación más intuitiva y eficiente, y su legado perdura en la industria de la tecnología.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/adele-goldberg.jpg",
- "facts": {
- "yearOfBirth": "1945",
- "birthPlace": "Chicago, Estados Unidos",
- "mainField": "Ciencias de la Computación"
- },
- "extraInfo": {
- "imageSource": "https://pionerasinformaticas.ujaen.es/en/computer-women-pioneers/adele-goldberg-en"
- }
+ id: "melipona-beecheii",
+ name: "Abeja Melipona beecheii",
+ shortDescription: "Abeja sin aguijón de la miel",
+ description:
+ "La Abeja Melipona beecheii, también conocida como abeja sin aguijón de la miel, es una especie de abeja nativa de América Central y partes de Sudamérica. Es apreciada por la producción de miel y su comportamiento social.",
+ imageUrl: "https://th.bing.com/th/id/OIG.r67QZB6snAiw5btRZHR2?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 3 meses",
+ familia: "Apidae",
+ productorDeMiel: "Sí, en pequeñas cantidades",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Melipona beecheii son conocidas por su comportamiento social y la organización de sus colonias.",
+ "Producen una miel especial llamada ¨miel de melipona¨ que es apreciada en algunas regiones.",
+ ],
+ },
},
{
- "id": "barbara-liskov",
- "name": "Barbara Liskov",
- "shortDescription": "Científica de la computación, pionera en programación orientada a objetos.",
- "description": "Pionera de la informática, es conocida por su trabajo en la programación y la arquitectura de sistemas distribuidos. Fue la primera mujer en obtener un doctorado en ciencias de la computación en el Instituto de Tecnología de Stanford y desarrolló el lenguaje de programación CLU, que estableció fundamentos para la programación orientada a objetos. Liskov ha dejado una marca indeleble en la industria de la tecnología al liderar avances en sistemas de almacenamiento y seguridad informática. Su enfoque en la fiabilidad y la robustez ha influido en el diseño de sistemas críticos en todo el mundo.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/barbara-liskov.jpg",
- "facts": {
- "yearOfBirth": "1939",
- "birthPlace": "Los Angeles, Estados Unidos",
- "mainField": "Ciencia de la Computación"
- },
- "extraInfo": {
- "imageSource": "https://medium.com/a-computer-of-ones-own/barbara-liskov-inventor-of-abstract-data-types-9f8908fdcf86"
- }
+ id: "ceratina-dallatorreana",
+ name: "Abeja Ceratina dallatorreana",
+ shortDescription: "Abeja cuerno negro",
+ description:
+ "La Abeja Ceratina dallatorreana, o abeja cuerno negro, es una especie de abeja solitaria que se encuentra en varias regiones del mundo. Se caracteriza por su cuerpo oscuro y sus antenas en forma de cuerno.",
+ imageUrl: "https://th.bing.com/th/id/OIG.zGcT3ZnLEhOowmGG_mHE?pid=ImgGn",
+ facts: {
+ promedioDeVida: "aproximadamente 4 semanas",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Ceratina dallatorreana son solitarias y anidan en tallos o ramas de plantas.",
+ "Son polinizadoras eficaces de diversas flores.",
+ ],
+ },
},
{
- "id": "grace-hopper",
- "name": "Grace Hopper",
- "shortDescription": "Científica de la computación, creadora del primer compilador.",
- "description": "Una de las pioneras de la informática, es famosa por su contribución al desarrollo del primer compilador y al lenguaje de programación COBOL. Además, desafió los estereotipos de género en la década de 1940 al unirse a la Marina de los Estados Unidos y convertirse en la primera programadora de la computadora Harvard Mark I. Su legado abarca la creación de conceptos cruciales como la \"depuración de software\" y su influencia en el desarrollo de la informática moderna, estableciendo estándares para la programación de alto nivel y la innovación tecnológica.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/grace-hopper.jpg",
- "facts": {
- "yearOfBirth": "1906",
- "yearOfDeath": "1992",
- "birthPlace": "Nueva York, Estados Unidos",
- "mainField": "Ciencia de la Computación"
- },
- "extraInfo": {
- "imageSource": "https://photos.com/featured/grace-hopper-with-early-computer-bettmann.html"
- }
+ id: "colletes-cunicularius",
+ name: "Abeja Colletes cunicularius",
+ shortDescription: "Abeja excavadora",
+ description:
+ "La Abeja Colletes cunicularius, conocida como abeja excavadora, es una especie de abeja solitaria que se encuentra en diversas partes de Europa. Son llamadas así por su hábito de excavar nidos en el suelo.",
+ imageUrl: "https://th.bing.com/th/id/OIG.1L0M4524YJpeqLBdD55P?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 4 semanas",
+ familia: "Colletidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Colletes cunicularius excavan nidos en suelos arenosos o sueltos.",
+ "Son polinizadoras de plantas silvestres y tienen una dieta de néctar y polen.",
+ ],
+ },
},
{
- "id": "margaret-hamilton",
- "name": "Margaret Hamilton",
- "shortDescription": "Científica de la computación, lideró desarrollo de software para Apollo 11.",
- "description": "Destacada científica de la computación que desempeñó un papel fundamental en el programa Apollo de la NASA. Fue directora de la División de Ingeniería de Software en el Laboratorio de Instrumentación del MIT, donde desarrolló el concepto de \"ingeniería de software\". Su liderazgo en el desarrollo del software de vuelo para las misiones Apollo fue fundamental para el éxito de la llegada del hombre a la Luna. Hamilton es un ejemplo de cómo la tecnología y la ciencia pueden alcanzar logros extraordinarios cuando se combinan con un enfoque innovador y una visión audaz.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/margaret-hamilton.jpg",
- "facts": {
- "yearOfBirth": "1936",
- "birthPlace": "Paoli, Indiana, Estados Unidos",
- "mainField": "Ciencia de la Computación"
- },
- "extraInfo": {
- "imageSource": "https://odetta.ai/blogs/margaret-hamilton-the-first-software-engineer"
- }
+ id: "hylaeus-hyalinatus",
+ name: "Abeja Hylaeus hyalinatus",
+ shortDescription: "Abeja de vidrio",
+ description:
+ "La Abeja Hylaeus hyalinatus, conocida como abeja de vidrio, es una especie de abeja solitaria que se encuentra en varias regiones de Europa. Se llama así debido a su apariencia transparente.",
+ imageUrl: "https://th.bing.com/th/id/OIG.PpHrmL59.b1VACodupjq?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 2 a 4 semanas",
+ familia: "Colletidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas de vidrio son solitarias y anidan en tallos de plantas o en agujeros en madera.",
+ "Son polinizadoras de diversas flores y plantas silvestres.",
+ ],
+ },
},
{
- "id": "radia-perlman",
- "name": "Radia Perlman",
- "shortDescription": "Ingeniera de redes, inventora del algoritmo Spanning Tree.",
- "description": "Científica de la computación estadounidense, ha dejado una marca indeleble en el mundo de las redes informáticas y la seguridad. Conocida como \"la madre de Internet\", su invención del algoritmo Spanning Tree Protocol (STP) revolucionó la conectividad de redes y sentó las bases para la infraestructura de Internet moderna. A pesar de operar en un campo dominado por hombres, Perlman ha demostrado que las mujeres pueden liderar avances tecnológicos vitales. Su compromiso con la resiliencia de las redes y la ciberseguridad ha influido en la estabilidad y confiabilidad de la comunicación en línea.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/radia-perlman.jpg",
- "facts": {
- "yearOfBirth": "1951",
- "birthPlace": "Portsmouth, Estados Unidos",
- "mainField": "Ciencia de la Computación"
- },
- "extraInfo": {
- "imageSource": "https://hackaday.com/2018/05/29/spanning-the-tree-dr-radia-perlman-untangling-networks/"
- }
+ id: "lasioglossum-calceatum",
+ name: "Abeja Lasioglossum calceatum",
+ shortDescription: "Abeja peluda",
+ description:
+ "La Abeja Lasioglossum calceatum, conocida como abeja peluda, es una especie de abeja solitaria que se encuentra en varias regiones de Europa. Se caracteriza por su cuerpo cubierto de pelos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.gqcu5z4yhaGUoRZiNV9k?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 4 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas peludas son excelentes polinizadoras y visitan una amplia variedad de flores.",
+ "Anidan en el suelo y tienen una dieta de néctar y polen.",
+ ],
+ },
},
{
- "id": "shafi-goldwasser",
- "name": "Shafi Goldwasser",
- "shortDescription": "Científica de la computación, ganadora del Premio Turing.",
- "description": "Es una destacada criptógrafa y científica de la computación que ha contribuido significativamente a la teoría de la computación y la seguridad de la información. Su trabajo en criptografía de probabilidad y complejidad computacional ha sentado las bases para la seguridad en línea y la privacidad de datos en un mundo cada vez más digitalizado. Goldwasser es un ejemplo de cómo la ciencia de la computación puede abordar desafíos contemporáneos y proteger la información en la era de la información.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/shafi-goldwasser.jpg",
- "facts": {
- "yearOfBirth": "1958",
- "birthPlace": "Nueva York, Estados Unidos",
- "mainField": "Ciencia de la Computación"
- },
- "extraInfo": {
- "imageSource": "https://www.jahresbericht2019.unibe.ch/successes_2019/einstein_lectures/index_eng.html"
- }
+ id: "nomia-melanderi",
+ name: "Abeja Nomia melanderi",
+ shortDescription: "Abeja de tierra metálica",
+ description:
+ "La Abeja Nomia melanderi, conocida como abeja de tierra metálica, es una especie de abeja que se encuentra en América del Norte. Su nombre se debe a su apariencia metálica y su preferencia por hábitats terrestres.",
+ imageUrl: "https://th.bing.com/th/id/OIG.1eqkqZgmNMI26Jmak0hn?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 4 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Nomia melanderi son polinizadoras importantes de plantas silvestres y cultivos.",
+ "Anidan en el suelo y recolectan néctar y polen de una variedad de flores.",
+ ],
+ },
},
{
- "id": "chien-shiung-wu",
- "name": "Chien-Shiung Wu",
- "shortDescription": "Física experimental, contribuyó a la física nuclear.",
- "description": "Física experimental de origen chino, desafiando los prejuicios de género y nacionalidad, realizó experimentos fundamentales en física de partículas y contribuyó significativamente a la comprensión de la desintegración beta. Su famoso experimento \"Wu\" refutó la paridad en la física de partículas, lo que cambió la forma en que los científicos comprenden las fuerzas fundamentales de la naturaleza. Wu demostró que el talento y la perseverancia pueden superar cualquier barrera, y su legado sigue siendo un faro de inspiración para científicas en todo el mundo.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/chien-shiung-wu.jpg",
- "facts": {
- "yearOfBirth": "1912",
- "yearOfDeath": "1997",
- "birthPlace": "Liuhe, Taicang, China",
- "mainField": "Física"
- },
- "extraInfo": {
- "imageSource": "https://www.thoughtco.com/chien-shiung-wu-biography-3530366"
- }
+ id: "andrena-wilkella",
+ name: "Abeja Andrena wilkella",
+ shortDescription: "Abeja minera",
+ description:
+ "La Abeja Andrena wilkella, también conocida como abeja minera, es una especie de abeja que se encuentra en varias partes del mundo. Son llamadas abejas mineras debido a su comportamiento de anidar en el suelo.",
+ imageUrl: "https://th.bing.com/th/id/OIG.3OrxJZgKk.RcUJVzJUvL?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 3 a 5 semanas",
+ familia: "Andrenidae",
+ productorDeMiel: "Sí, en pequeñas cantidades",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Andrena wilkella excavan nidos en el suelo y son solitarias.",
+ "Son polinizadoras de una variedad de flores silvestres y cultivos.",
+ ],
+ },
},
{
- "id": "hedy-lamarr",
- "name": "Hedy Lamarr",
- "shortDescription": "Actriz e inventora, contribuyó al desarrollo de la tecnología de espectro ensanchado.",
- "description": "Actriz austroamericana y científica, fue una mente brillante en la intersección de la tecnología y el entretenimiento. Junto con el compositor George Antheil, inventó un sistema de comunicación secreta durante la Segunda Guerra Mundial que sentó las bases para la tecnología de espectro ensanchado y la comunicación inalámbrica moderna. Lamarr demostró que las mujeres pueden destacar tanto en el cine como en la ciencia, y su legado como inventora ha sido fundamental para el desarrollo de la tecnología de comunicación inalámbrica que usamos en la actualidad.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/hedy-lamarr.jpg",
- "facts": {
- "yearOfBirth": "1914",
- "yearOfDeath": "2000",
- "birthPlace": "Viena, Austria",
- "mainField": "Actuación, Física"
- },
- "extraInfo": {
- "imageSource": "https://www.sparkfun.com/news/6147"
- }
+ id: "perdita-minima",
+ name: "Abeja Perdita minima",
+ shortDescription: "Abeja perdita",
+ description:
+ "La Abeja Perdita minima, conocida como abeja perdita, es una pequeña especie de abeja que se encuentra en América del Norte. Su nombre se debe a su tamaño diminuto.",
+ imageUrl: "https://th.bing.com/th/id/OIG.VazgZ0xT9rlZg4nVtlub?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 3 semanas",
+ familia: "Andrenidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Perdita minima son especialistas en polinizar ciertas flores de plantas nativas.",
+ "Son solitarias y anidan en el suelo.",
+ ],
+ },
},
{
- "id": "maria-goeppert-mayer",
- "name": "Maria Goeppert Mayer",
- "shortDescription": "Física teórica, ganadora del Premio Nobel de Física.",
- "description": "Física teórica alemana-estadounidense, dejó una profunda huella en la física nuclear y la mecánica cuántica. Fue la segunda mujer en recibir el Premio Nobel de Física y su trabajo pionero en la estructura de capas nucleares revolucionó nuestra comprensión de los núcleos atómicos. A pesar de las barreras de género en la academia, su dedicación y talento la llevaron a contribuir significativamente a la teoría nuclear, abriendo el camino para futuras investigadoras en un campo dominado por hombres. Maria Goeppert Mayer es un ejemplo inspirador de excelencia científica y perseverancia en la búsqueda del conocimiento.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/maria-goeppert-mayer.jpg",
- "facts": {
- "yearOfBirth": "1906",
- "yearOfDeath": "1972",
- "birthPlace": "Kattowitz, Alemania",
- "mainField": "Física"
- },
- "extraInfo": {
- "imageSource": "https://www.wsemexhibit.org/maria-goeppert-mayer.html"
- }
+ id: "epeolus-variegatus",
+ name: "Abeja Epeolus variegatus",
+ shortDescription: "Abeja cleptoparásita",
+ description:
+ "La Abeja Epeolus variegatus, conocida como abeja cleptoparásita, es una especie de abeja que se encuentra en diversas partes del mundo. Son cleptoparásitas, lo que significa que depositan sus huevos en los nidos de otras abejas.",
+ imageUrl: "https://th.bing.com/th/id/OIG.49idOkEGaBOdOmjU903V?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 3 semanas",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Epeolus variegatus son cleptoparásitas de abejas Anthophora y otros géneros.",
+ "No recolectan néctar ni polen, ya que dependen de las provisiones de las abejas hospedadoras.",
+ ],
+ },
},
{
- "id": "lise-meitner",
- "name": "Lise Meitner",
- "shortDescription": "Física nuclear, contribuyó a la teoría de la fisión nuclear.",
- "description": "Física austriaca-sueca, dejó un legado imborrable en la física nuclear y la radioquímica. A pesar de enfrentar obstáculos de género en una era dominada por hombres, colaboró con Otto Hahn en el descubrimiento de la fisión nuclear, un avance revolucionario. Aunque no compartió el Premio Nobel por este logro, su contribución fue crucial para comprender la energía nuclear y la física de partículas. Su determinación y pasión por la ciencia han inspirado a generaciones de científicas. Lise Meitner es un símbolo perdurable de la perseverancia femenina y el impacto duradero que las mujeres pueden tener en la ciencia.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/lise-meitner.jpg",
- "facts": {
- "yearOfBirth": "1878",
- "yearOfDeath": "1968",
- "birthPlace": "Viena, Austria",
- "mainField": "Física"
- },
- "extraInfo": {
- "imageSource": "https://www.bing.com/images/create/lise-meitner-in-nuclear-physics-lab-in-19502c-retro/651196e6bbcb4009950e9955c2199760"
- }
+ id: "agapostemon-texanus",
+ name: "Abeja Agapostemon texanus",
+ shortDescription: "Abeja rayada verde",
+ description:
+ "La Abeja Agapostemon texanus, conocida como abeja rayada verde, es una especie de abeja que se encuentra en América del Norte. Son reconocibles por sus rayas verdes y negras en el abdomen.",
+ imageUrl: "https://th.bing.com/th/id/OIG.7FgYcS.uYxQYEa3.KEC4?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 3 a 4 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Agapostemon texanus son polinizadoras de diversas plantas, incluyendo muchas flores silvestres.",
+ "Son abejas sociales y forman colonias en el suelo.",
+ ],
+ },
},
{
- "id": "sau-lan-wu",
- "name": "Sau Lan Wu",
- "shortDescription": "Física de partículas, contribuyó a experimentos clave en física de alta energía.",
- "description": "Física experimental sinoamericana, ha sido una fuerza motriz en la física de partículas. Destacó en experimentos en el CERN y lideró investigaciones cruciales, como el descubrimiento del quark c, que expandieron nuestro entendimiento de la estructura fundamental de la materia. Wu superó desafíos en una disciplina dominada por hombres y ha sido un faro de inspiración para científicas de todo el mundo. Sau Lan Wu es un ejemplo de excelencia científica y de cómo las mujeres pueden dejar huella en la investigación de vanguardia.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/sau-lan-wu.jpg",
- "facts": {
- "yearOfBirth": "1940",
- "birthPlace": "Hong Kong, China",
- "mainField": "Física de Partículas"
- },
- "extraInfo": {
- "imageSource": "https://repository.aip.org/islandora/object/nbla%3A315195"
- }
+ id: "dialictus-zephyrus",
+ name: "Abeja Dialictus zephyrus",
+ shortDescription: "Abeja esmeralda",
+ description:
+ "La Abeja Dialictus zephyrus, conocida como abeja esmeralda, es una especie de abeja que se encuentra en América del Norte. Su nombre se debe a su coloración verde esmeralda.",
+ imageUrl: "https://th.bing.com/th/id/OIG.0f90dz58tmzddR9u75qI?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 3 a 4 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Dialictus zephyrus son polinizadoras de diversas plantas y a menudo visitan flores silvestres.",
+ "Son abejas sociales y anidan en el suelo.",
+ ],
+ },
},
{
- "id": "jocelyn-bell-burnell",
- "name": "Jocelyn Bell Burnell",
- "shortDescription": "Astrónoma y astrofísica, co-descubridora de los púlsares.",
- "description": "Astrofísica británica, es una figura extraordinaria en la ciencia. Durante su doctorado, hizo un descubrimiento revolucionario al detectar los primeros púlsares, estrellas de neutrones altamente magnetizadas que emiten pulsos regulares de radiación. A pesar de que su asesor recibió el Premio Nobel por este descubrimiento, Bell Burnell se ha convertido en un símbolo de perseverancia y contribución de las mujeres a la astronomía. Su carrera distinguida y su activismo en favor de la diversidad de género en la ciencia han inspirado a generaciones futuras de científicas. Jocelyn Bell Burnell es un ejemplo de valentía y excelencia científica.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/jocelyn-bell-burnell.jpg",
- "facts": {
- "yearOfBirth": "1943",
- "birthPlace": "Belfast, Reino Unido",
- "mainField": "Astronomía, Astrofísica"
- },
- "extraInfo": {
- "imageSource": "https://womeninscienceweadmire.icfo.eu/wiswa-2/jocelyn-bell/"
- }
+ id: "megachile-sculpturalis",
+ name: "Abeja Megachile sculpturalis",
+ shortDescription: "Abeja cortadora de hojas gigante",
+ description:
+ "La Abeja Megachile sculpturalis, también conocida como abeja cortadora de hojas gigante, es una especie de abeja que se encuentra en varias partes del mundo. Son conocidas por su gran tamaño y capacidad para cortar hojas para construir sus nidos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.1AENiIX50BhvXQPYnA4l?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Megachile sculpturalis son excelentes polinizadoras y a menudo se utilizan en la polinización de cultivos.",
+ "Cortan trozos de hojas para construir nidos en cavidades naturales o en estructuras humanas.",
+ ],
+ },
},
{
- "id": "dorothy-crowfoot-hodgkin",
- "name": "Dorothy Crowfoot Hodgkin",
- "shortDescription": "Química, ganadora del Premio Nobel de Química.",
- "description": "Química británica, es una figura icónica en la ciencia que superó las barreras de género de su época. Su trabajo revolucionario en la cristalografía de rayos X permitió determinar la estructura de importantes biomoléculas, como la penicilina, la vitamina B12 y la insulina. Fue galardonada con el Premio Nobel de Química en 1964, siendo la tercera mujer en recibir este prestigioso reconocimiento. Hodgkin no solo fue una científica excepcional, sino también una defensora de la igualdad de género en la ciencia, allanando el camino para futuras generaciones de científicas y dejando un legado duradero en la investigación y la equidad.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/dorothy-crowfoot-hodgkin.jpg",
- "facts": {
- "yearOfBirth": "1910",
- "yearOfDeath": "1994",
- "birthPlace": "El Cairo, Egipto / Shipston-on-Stour, Reino Unido",
- "mainField": "Química"
- },
- "extraInfo": {
- "imageSource": "https://www.some.ox.ac.uk/news/jan-royall-why-we-must-champion-dorothy-hodgkin-for-the-50-note/"
- }
+ id: "nomada-fervida",
+ name: "Abeja Nomada fervida",
+ shortDescription: "Abeja cleptoparásita",
+ description:
+ "La Abeja Nomada fervida, conocida como abeja cleptoparásita, es una especie de abeja que se encuentra en América del Norte. Son cleptoparásitas que depositan sus huevos en los nidos de otras abejas solitarias.",
+ imageUrl: "https://th.bing.com/th/id/OIG.VazgZ0xT9rlZg4nVtlub?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 4 semanas",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Nomada fervida son cleptoparásitas de abejas de la familia Andrenidae.",
+ "No recolectan néctar ni polen, ya que dependen de las provisiones de las abejas hospedadoras.",
+ ],
+ },
},
{
- "id": "marie-curie",
- "name": "Marie Curie",
- "shortDescription": "Física y química, ganadora de dos Premios Nobel.",
- "description": "física y química de origen polaco y nacionalizada francesa, es una de las figuras más icónicas en la historia de la ciencia. Ganadora de dos premios Nobel (Física en 1903 y Química en 1911), Curie realizó investigaciones fundamentales sobre la radiactividad y el descubrimiento de los elementos radio y polonio. Su dedicación y valentía en la investigación científica, a pesar de los desafíos de la discriminación de género y los riesgos de la radiación, la convierten en un modelo a seguir para científicas de todo el mundo.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/marie-curie.jpg",
- "facts": {
- "yearOfBirth": "1867",
- "yearOfDeath": "1934",
- "birthPlace": "Varsovia, Polonia",
- "mainField": "Física y Química"
- },
- "extraInfo": {
- "imageSource": "https://www.historyextra.com/period/first-world-war/life-of-the-week-marie-curie/"
- }
+ id: "hylaeus-signatus",
+ name: "Abeja Hylaeus signatus",
+ shortDescription: "Abeja de cara amarilla",
+ description:
+ "La Abeja Hylaeus signatus, conocida como abeja de cara amarilla, es una especie de abeja que se encuentra en América del Norte. Su nombre se debe a su característica cara amarilla.",
+ imageUrl:
+ "https://th.bing.com/th/id/OIG.gGDB2nCA7YkKNloc07G7?w=270&h=270&c=6&r=0&o=5&pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 2 a 4 semanas",
+ familia: "Colletidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Hylaeus signatus son polinizadoras de plantas silvestres y a menudo visitan flores de colores brillantes.",
+ "Anidan en cavidades preexistentes y son solitarias.",
+ ],
+ },
},
{
- "id": "marjory-stephenson",
- "name": "Marjory Stephenson",
- "shortDescription": "Microbióloga y bioquímica, investigó en enzimología.",
- "description": "Bioquímica británica, brilló como científica en una época en la que las mujeres enfrentaban obstáculos muy significativos en la investigación científica. Su trabajo pionero en microbiología, enzimología y bioquímica contribuyó al entendimiento de procesos fundamentales en la vida. Fue una de las primeras mujeres en ser elegida miembro de la Royal Society, un reconocimiento a su destacada contribución a la ciencia. Además, fue una mentora y defensora de las mujeres en la ciencia, inspirando y allanando el camino para futuras generaciones.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/marjory-stephenson.jpg",
- "facts": {
- "yearOfBirth": "1885",
- "yearOfDeath": "1948",
- "birthPlace": "Londres, Reino Unido",
- "mainField": "Química, Microbiología, Bioquímica"
- },
- "extraInfo": {
- "imageSource": "https://microbiologysociety.org/grants-prizes/all-prizes-and-competitions-/prize-lectures/marjory-stephenson-prize-lecture/marjory-stephenson-a-short-history.html"
- }
+ id: "bombus-impatiens",
+ name: "Abeja Bombus impatiens",
+ shortDescription: "Abejorro impaciente",
+ description:
+ "El Abejorro Bombus impatiens, conocido como abejorro impaciente, es una especie de abejorro que se encuentra en América del Norte. Son polinizadores importantes en entornos naturales y agrícolas.",
+ imageUrl:
+ "https://th.bing.com/th/id/OIG.Qpehm6.T9I8no4fZe6Ml?w=270&h=270&c=6&r=0&o=5&pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 12 a 16 semanas",
+ familia: "Apidae",
+ productorDeMiel: "Sí, en pequeñas cantidades",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Los abejorros Bombus impatiens son polinizadores efectivos de una amplia variedad de plantas.",
+ "Forman colonias con una reina y trabajadoras.",
+ ],
+ },
},
{
- "id": "rosalind-franklin",
- "name": "Rosalind Franklin",
- "shortDescription": "Química y cristalógrafa, contribuyó a la comprensión de la estructura del ADN.",
- "description": "Química y cristalógrafa británica, destacó en un campo dominado por hombres y su contribución a la ciencia es innegable. Sus investigaciones pioneras en la cristalografía de rayos X fueron fundamentales para revelar la estructura del ADN en forma de doble hélice, un hito crucial en la biología molecular. A pesar de que su trabajo inicial fue subestimado, su determinación y habilidad científica allanaron el camino para futuros avances en genética y biología. Franklin es un ejemplo inspirador de cómo las mujeres pueden sobresalir en la ciencia, dejando un legado duradero en la investigación y la igualdad de género.",
- "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/rosalind-franklin.jpg",
- "facts": {
- "yearOfBirth": "1920",
- "yearOfDeath": "1958",
- "birthPlace": "Londres, Reino Unido",
- "mainField": "Química, Cristalografía"
- },
- "extraInfo": {
- "imageSource": "https://www.esa.int/ESA_Multimedia/Images/2020/07/Artistic_illustration_of_Rosalind_Franklin"
- }
- }
+ id: "osmia-lignaria",
+ name: "Abeja Osmia lignaria",
+ shortDescription: "Abeja albañil azul",
+ description:
+ "La Abeja Osmia lignaria, conocida como abeja albañil azul, es una especie de abeja solitaria que se encuentra en América del Norte. Son llamadas albañiles azules debido a su hábito de sellar sus nidos con barro.",
+ imageUrl:
+ "https://th.bing.com/th/id/OIG.GWBxCH5wZZGJhsoeV9Zk?w=270&h=270&c=6&r=0&o=5&pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Osmia lignaria son excelentes polinizadoras de frutas y flores silvestres.",
+ "Construyen sus nidos en cavidades preexistentes o en agujeros de tallos.",
+ ],
+ },
+ },
];
diff --git a/src/dataFunctions.js b/src/dataFunctions.js
index 5de554af..59ae7af0 100644
--- a/src/dataFunctions.js
+++ b/src/dataFunctions.js
@@ -1,9 +1,58 @@
-// Estas funciones son ejemplos, aquí puedes desarrollar tus propias funciones.
+export function filterData(data, filterBy, value) {
+ // Si el filtro es por "familia"
+ if (filterBy === "familia") {
+ // Filtra los elementos donde 'facts.familia' sea igual a 'value'
+ const filteredData = data
+ .filter((bee) => bee.facts && bee.facts.familia === value)
+ .map((bee) => ({
+ ...bee,
+ [filterBy]: Number(bee[filterBy]), // Convierte a número si es necesario
+ }));
+ return filteredData;
+ }
-export const example = () => {
- return 'example';
-};
+ // Si el filtro no es por "familia"
+ const filteredData = data
+ .filter((bee) => bee[filterBy] === value)
+ .map((bee) => ({
+ ...bee,
+ [filterBy]: Number(bee[filterBy]), // Convierte a número si es necesario
+ }));
+ return filteredData;
+}
-export const anotherExample = () => {
- return [];
-};
+export function sortData(data, sortBy, sortOrder) {
+ // Hace una copia de los datos para no modificar el array original
+ return data.slice().sort((a, b) => {
+ // Si se está ordenando por "name"
+ if (sortBy === "name") {
+ // Ordenar alfabéticamente de manera ascendente
+ if (sortOrder === "asc") {
+ return a.name.localeCompare(b.name);
+ }
+ // Ordenar alfabéticamente de manera descendente
+ else if (sortOrder === "desc") {
+ return b.name.localeCompare(a.name);
+ }
+ }
+ // Si no se está ordenando por "name", no se realiza ninguna modificación
+ return 0;
+ });
+}
+
+export function computeStats(data) {
+ const totalItems = data.length;
+ const totalDescriptionLength = data.reduce(
+ // Suma la longitud de todas las descripciones en el conjunto de datos
+ (sum, bee) => sum + bee.description.length,
+ 0
+ );
+
+ // Calcula la longitud promedio de las descripciones
+ const avgDescriptionLength = totalDescriptionLength / totalItems;
+
+ return {
+ totalItems,
+ avgDescriptionLength,
+ };
+}
\ No newline at end of file
diff --git a/src/index.html b/src/index.html
index a10bc064..26989858 100644
--- a/src/index.html
+++ b/src/index.html
@@ -1,11 +1,49 @@
-
- Data Lovers
+
+
+ Data Lovers | Abejas
+
+
+
+ En esta página, podrás explorar una amplia variedad de abejas y utilizar
+ filtros para clasificarlas según su familia de pertenencia.
+
+
+
+
+ Filtrar por familia
+
+ Elegir familia
+ Apidae
+ Halictidae
+ Megachilidae
+ Colletidae
+
+
+ Ordenar
+
+ Nombre A-Z
+ Nombre Z-A
+
+ Borrar
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
index cab4fb0c..f656076f 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,6 +1,72 @@
-import { example } from './dataFunctions.js';
-import { renderItems } from './view.js';
+import { filterData, sortData, computeStats } from "./dataFunctions.js";
+import data from "./data/dataset.js";
+import { renderItems } from "./view.js"; //renderItems Generar dinamicamente elementos del DoM que representan tarjetas de info
+//para cada elemento del array que contiene info de abejas, cada tarjeta incluye imagenes y datos espesificos.
-import data from './data/dataset.js';
+// Selecciona el elemento del DOM para el selector de familia
+const familySelect = document.querySelector('[name="familia"]');
-console.log(example, renderItems(data), data);
+// Selecciona el elemento del DOM para el selector de orden
+const sortSelect = document.querySelector('[name="orden"]');
+
+// Selecciona el botón de borrado por su atributo data-testid
+const resetButton = document.querySelector('[data-testid="button-clear"]');
+
+// Selecciona el elemento del DOM donde se mostrarán las tarjetas
+const rootElement = document.querySelector("#root");
+
+// Se Muestran estadisticas
+const statsElement = document.getElementById("statistics");
+
+// Agrega las tarjetas iniciales al elemento root
+rootElement.appendChild(renderItems(data)); //actualiza las tarjetas en el navegador
+
+// Función para filtrar y mostrar datos según las selecciones
+const filterAndRenderData = () => {
+ // Obtiene el valor seleccionado en el selector de familia
+ const selectedFamily = familySelect.value;
+
+ // Obtiene el valor seleccionado en el selector de orden
+ const selectedSortOrder = sortSelect.value;
+
+ // Clona el arreglo original de datos
+ let filteredData = data.slice();
+
+ // Aplica filtro por familia si se selecciona una
+ if (selectedFamily !== "") { //Verifica si no es una cadena vacia se ejecuta el bloque del codigo
+ filteredData = filterData(filteredData, "familia", selectedFamily); // dentro del bloque se llama a filterData con 3 argumentos ,
+ // el result filtrado se asigna de nuevo a filterdData
+ }
+
+ // Aplica la ordenación de datos
+ filteredData = sortData(filteredData, "name", selectedSortOrder); //funcion Filter data llama a sorData con 3 argumentos,
+ // el resultado de asgna a filteData
+
+ // Limpia el contenido actual y muestra las tarjetas filtradas
+ rootElement.innerHTML = ""; //Manipulan contenido de HTML referenciado por roodElement, Se vacia su conteido y luego se añaden
+ //elementos HTML generados por la funcion renderItems apartir de los datos ------ Actualiza la interfaz
+ rootElement.appendChild(renderItems(filteredData));
+ // Estadisticas --- se actualiza el contenido del elemento HTML referinciado pro StartsElement muestra el total de las tarjetas Filter data
+ statsElement.innerHTML = `
+ Total de tarjetas: ${filteredData.length}
+ `;
+};
+
+// Agrega manejadores de eventos para cambios en los selectores
+familySelect.addEventListener("change", filterAndRenderData); //agregar el evento (e)
+sortSelect.addEventListener("change", filterAndRenderData);
+
+// Agrega un manejador de eventos al botón de borrado
+resetButton.addEventListener("click", (e) => {
+ // Restablece los selectores de filtro y muestra todas las tarjetas sin filtro
+ familySelect.value = "";
+ sortSelect.value = e.target.value; // Asumiendo que "asc" es el valor predeterminado
+ filterAndRenderData();
+});
+
+// Llama a la función para mostrar los datos al cargar la página
+filterAndRenderData();
+
+// Calcula estadísticas y las muestra en la consola
+const stats = computeStats(data);
+console.log("Estadísticas:", stats);
diff --git a/src/style.css b/src/style.css
index e69de29b..c6bee18b 100644
--- a/src/style.css
+++ b/src/style.css
@@ -0,0 +1,246 @@
+/* Estilos para el encabezado */
+header {
+ margin-left: 50px;
+ text-align: left;
+ font-size: 40px;
+}
+
+header h1 {
+ margin: 0;
+ font-size: 50px;
+ color: rgb(226, 165, 8);
+}
+
+/* Estilos para subtítulos */
+h2 {
+ text-align: left;
+ margin-left: 50px;
+ font-size: 40px;
+}
+
+#statistics {
+ width: 100%; /* Ajusta el ancho según tus necesidades */
+ height: 50px; /* Ajusta la altura según tus necesidades */
+ padding: 0px; /* Espaciado interno del contenido dentro del div */
+ margin-left: 50px;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ box-sizing: border-box; /* Asegura que el padding no afecte el tamaño total del div */
+ text-align: centerleft; /* Alineación del texto al centro, puedes ajustarlo según tus necesidades */
+ font-family: Arial, sans-serif; /* Tipo de fuente, puedes cambiarlo según tus preferencias */
+ font-size: 40px;
+ color: rgb(
+ 226,
+ 165,
+ 8
+ ); /* Color del texto, puedes ajustarlo según tus preferencias */
+}
+
+/* Estilos para imágenes */
+img {
+ width: 80%;
+ height: auto;
+ display: block;
+ margin: 0 auto;
+}
+
+/* Estilos para el aside */
+aside {
+ padding-left: 15px;
+ margin-right: 15px;
+ font-family: Arial, sans-serif;
+ display: block;
+}
+
+/* Estilos para etiquetas */
+label {
+ margin-left: 50px;
+ font-size: 30px;
+}
+
+/* Estilo para los elementos 'select' */
+select {
+ padding: 5px;
+ font-size: 20px;
+ border: 1px solid rgb(226, 165, 8);
+ border-radius: 4px;
+ width: 200px;
+ margin-right: 10px;
+}
+
+/* Estilo para el botón */
+button {
+ padding: 10px 15px;
+ font-size: 20px;
+ background-color: rgb(226, 165, 8);
+ color: #fff;
+ border: none;
+ border-radius: 6px;
+ cursor: pointer;
+}
+
+ul {
+ text-align: center;
+ width: 100%;
+ padding: 0;
+}
+
+#root {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+.imgTarjeta {
+ width: 400px;
+ height: 400px;
+ display: block;
+ margin: 0 auto;
+ margin-top: 20px;
+ border-radius: 10%;
+ border: 3px solid rgb(238, 238, 240);
+}
+
+/* Tarjetas */
+.tarjetas {
+ border-radius: 10px;
+ border: 4px solid rgb(226, 165, 8);
+ list-style: none;
+ margin: 5px;
+ height: 1100px;
+ float: left;
+ padding: 10px; /* Añade espacio interno a las tarjetas */
+ width: calc(25% - 10px);
+ text-align: left; /* Alinea el texto a la izquierda */
+ box-sizing: border-box;
+ background-repeat: no-repeat;
+ background-size: cover;
+ font-size: 22px;
+ font-family: "Quicksand", sans-serif;
+ color: #333333;
+ overflow: hidden; /* Evita que el contenido se desborde */
+ white-space: nowrap; /* Evita que el contenido se desborde */
+ text-overflow: ellipsis; /* Agrega elipsis si el contenido se desborda */
+}
+dd {
+ white-space: normal;
+ overflow: visible;
+ max-width: 100%;
+}
+dt {
+ margin-top: 15px;
+ margin-right: 15px;
+ margin-bottom: 15px;
+ margin-left: 15px;
+ display: flex;
+ width: 100%;
+ text-align: left;
+ align-items: left;
+ justify-content: left;
+
+}
+
+
+/* Estilo para texto con elipsis */
+.estilo {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ line-height: 1.2;
+ max-height: 3.6em;
+ display: flex;
+}
+
+
+/* Estilo para el footer */
+footer {
+ background-color: rgb(
+ 226,
+ 165,
+ 8
+ ); /* Cambia el color de fondo del footer a gris oscuro */
+ color: rgb(232, 229, 222); /* Cambia el color de texto a blanco */
+ text-align: center;
+ padding: 30px; /* Añade un espacio interior al footer */
+ font-size: 30px;
+ font-family: "Quicksand", sans-serif;
+}
+
+/* Estilo para los nombres en el footer */
+footer p {
+ margin: 0;
+}
+
+/* Estilos responsivos */
+@media (max-width: 912px) {
+ .tarjetas {
+ width: calc(50% - 10px);
+ box-sizing: border-box;
+ margin-bottom: 10px;
+ text-align: left;
+ display: flex;
+ justify-content: left;
+ }
+
+ li {
+ width: 100%;
+ margin: 0;
+ white-space: normal;
+ overflow: visible;
+ }
+
+ .imgTarjeta {
+ width: 300px;
+ height: 300px;
+ display: block;
+ margin: 0 auto;
+ margin-top: 20px;
+ border-radius: 20%;
+ }
+
+ .estilo {
+ white-space: normal;
+ text-overflow: clip;
+ }
+
+ dd {
+ white-space: normal;
+ overflow: visible;
+ max-width: 100%;
+ }
+
+ dt {
+ white-space: normal;
+ overflow: visible;
+ max-width: 100%;
+ }
+}
+
+/* Estilos para dispositivos móviles */
+@media (max-width: 600px) {
+ .tarjetas {
+ width: calc(100% - 10px);
+ box-sizing: border-box;
+ margin-bottom: 10px;
+ text-align: left;
+ display: block;
+ }
+
+ /* Estilos para los controles en dispositivos móviles */
+ .controles {
+ text-align: center;
+ margin: 10px 0;
+ }
+
+ select,
+ button {
+ width: 100%;
+ margin: 5px 0; /* Añade margen inferior para separar los controles */
+ }
+
+ /* Estilo para el botón de borrar en dispositivos móviles */
+ .boton-borrar {
+ background-color: rgb(226, 165, 8); /* Cambia el color de fondo a rojo */
+ }
+}
diff --git a/src/view.js b/src/view.js
index 0da7b7fa..06ac6fb4 100644
--- a/src/view.js
+++ b/src/view.js
@@ -1,6 +1,35 @@
export const renderItems = (data) => {
- console.log(data)
- // Aquí comienza tu código y puedes retornar lo que tu necesites
- return 'example';
-};
+ const ul = document.createElement("ul"); //Se crea un nuevo elemento ul
+ data.forEach((bee) => { // Utilizamos forEach para iterar sobre el array data, Cada elemento se representa como bee en cada iteración.
+ const li = document.createElement("li");//Dentro del bucle se crea un nuevo elemento HTML li (elemento de la lista) para
+ //cada elemento del array
+ li.classList.add("tarjetas"); // Se agrega la clase CSS "tarjetas" al elemento de lista (li). Las clases CSS son
+ //utilizadas para aplicar estilos específicos.
+ li.setAttribute("itemtype", "http://schema.org/Animal"); // Agregar itemtype al elemento li cada elemento
+
+ li.setAttribute("itemscope", ""); // itemscope se utiliza para indicar que el elemento y sus descendientes
+ //contienen información sobre un solo ítem del esquema.
+ //innerHTML para establecer el contenido HTML del elemento de lista (li)
+ li.innerHTML = `
+
+
+ Nombre:
+ ${bee.name}
+ Corta descripción:
+ ${bee.shortDescription}
+ Descripción:
+ ${bee.description}
+ Familia:
+ ${bee.facts.familia}
+ Promedio de vida:
+ ${bee.facts.promedioDeVida}
+ Productor De Miel:
+ ${bee.facts.productorDeMiel}
+
+ `;
+ ul.appendChild(li); // se agrega como un hijo al elemento de lista no ordenada (ul).
+ }); //Se cierra bucle forEach
+ return ul; //Devuelve la lista no ordenada completa con todos los elementos del array data
+ // Esta estructura se utiliza para representar información estructurada sobre abejas en un formato HTML.
+};
\ No newline at end of file
diff --git a/test/data.js b/test/data.js
index 9b3c238b..6cc81893 100644
--- a/test/data.js
+++ b/test/data.js
@@ -1,5 +1,464 @@
// Aqui puedes agregar los datos que necesites para tus pruebas
// al menos debe tener uno que se llame "data"
-export const data = [];
-
+export const data = [
+ {
+ id: "apis-mellifera",
+ name: "Abeja Apis mellifera",
+ shortDescription: "Abeja melífera europea",
+ description:
+ "La Abeja Apis mellifera, también conocida como abeja melífera europea, es una especie de abeja altamente valorada por su capacidad para producir miel y polinizar una amplia variedad de cultivos en todo el mundo. Es una de las abejas más conocidas y domesticadas por los seres humanos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.cLhH2nLb4PoQa5Nrq0M9?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 5 semanas en verano",
+ familia: "Apidae",
+ productorDeMiel: "Sí",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Apis mellifera son altamente sociales y viven en colmenas con una estructura jerárquica.",
+ "Son responsables de la polinización de numerosas frutas, verduras y cultivos de importancia económica.",
+ ],
+ },
+ },
+ {
+ id: "bombus-terrestris",
+ name: "Abeja Bombus terrestris",
+ shortDescription: "Abeja de tierra",
+ description:
+ "La Abeja Bombus terrestris, conocida como abeja de tierra o abejorro común, es una especie de abejorro ampliamente distribuida en Europa. Es un polinizador clave en ecosistemas naturales y también se utiliza en la polinización de cultivos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.UexCaUWYSQ8UI_Mc_Ekq?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 12 a 14 semanas",
+ familia: "Apidae",
+ productorDeMiel: "Sí, en pequeñas cantidades",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Los abejorros Bombus terrestris son polinizadores eficaces de tomates y pimientos en la agricultura.",
+ "Son abejas sociales con colonias que incluyen una reina y trabajadoras.",
+ ],
+ },
+ },
+ {
+ id: "xylocopa-violacea",
+ name: "Abeja Xylocopa violacea",
+ shortDescription: "Abeja carpintera violeta",
+ description:
+ "La Abeja Xylocopa violacea, también conocida como abeja carpintera violeta, es una abeja carpintera grande que se encuentra en Europa y otras regiones. Son conocidas por su coloración violeta y su capacidad para excavar galerías en la madera.",
+ imageUrl: "https://th.bing.com/th/id/OIG.3x0WMPs6PnAshPHSWzlC?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 1 a 2 meses",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas carpinteras violetas son solitarias y anidan en la madera, donde depositan sus huevos en galerías.",
+ "Son polinizadores de algunas flores, pero no producen miel en cantidades significativas.",
+ ],
+ },
+ },
+ {
+ id: "halictus-ligatus",
+ name: "Abeja Halictus ligatus",
+ shortDescription: "Abeja sudorera verde",
+ description:
+ "La Abeja Halictus ligatus, o abeja sudorera verde, es una especie de abeja sudorera que se encuentra en varias regiones de América del Norte. Son llamadas así porque a veces se sienten atraídas por el sudor humano.",
+ imageUrl: "https://th.bing.com/th/id/OIG.CknQ63HJv4I0EYciEhAI?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 2 a 6 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas sudoreras verdes son conocidas por su color metálico y su interés en el sudor humano.",
+ "Juegan un papel importante en la polinización de diversas flores silvestres.",
+ ],
+ },
+ },
+ {
+ id: "megachile-rotundata",
+ name: "Abeja Megachile rotundata",
+ shortDescription: "Abeja cortadora de hojas",
+ description:
+ "La Abeja Megachile rotundata, también llamada abeja cortadora de hojas, es una especie de abeja solitaria originaria de Europa, pero ampliamente utilizada en la polinización de cultivos, especialmente alfalfa y otras plantas forrajeras.",
+ imageUrl: "https://th.bing.com/th/id/OIG.H6lY3MKgU4klb3Baibq4?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 6 a 8 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Megachile rotundata cortan trozos de hojas para construir sus nidos.",
+ "Son excelentes polinizadores y su uso en la agricultura es común.",
+ ],
+ },
+ },
+ {
+ id: "osmia-bicornis",
+ name: "Abeja Osmia bicornis",
+ shortDescription: "Abeja albañil azul",
+ description:
+ "La Abeja Osmia bicornis, conocida como abeja albañil azul, es una abeja solitaria que se encuentra en Europa y otras regiones. Son llamadas albañiles azules debido a su hábito de sellar sus nidos con barro.",
+ imageUrl: "https://th.bing.com/th/id/OIG.gR9uYMc1cCmT4yUcOXP6?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Osmia bicornis son excelentes polinizadores de frutas y flores silvestres.",
+ "Construyen sus nidos en cavidades preexistentes o en agujeros de tallos.",
+ ],
+ },
+ },
+ {
+ id: "anthidium-manicatum",
+ name: "Abeja Anthidium manicatum",
+ shortDescription: "Abeja cardera",
+ description:
+ "La Abeja Anthidium manicatum, o abeja cardera, es una especie de abeja solitaria que se encuentra en Europa y otras regiones. Son conocidas por su comportamiento de recolección de fibras vegetales para construir sus nidos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.iTRt5yh2lqWhGCOnRsuS?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas carderas recolectan pelusa y fibras vegetales para construir sus nidos en cavidades naturales o agujeros.",
+ "Son polinizadores efectivos y se encuentran en diversos hábitats.",
+ ],
+ },
+ },
+ {
+ id: "eucera-nigrescens",
+ name: "Abeja Eucera nigrescens",
+ shortDescription: "Abeja de arena negra",
+ description:
+ "La Abeja Eucera nigrescens, conocida como abeja de arena negra, es una especie de abeja que se encuentra en varias regiones de Europa. Son llamadas así por su preferencia por los hábitats de arena.",
+ imageUrl: "https://th.bing.com/th/id/OIG.qJZNmIaU2mMqeKulERNf?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas de arena negra son polinizadores especializados de plantas que crecen en suelos arenosos.",
+ "A menudo excavan nidos en el suelo y son solitarias.",
+ ],
+ },
+ },
+ {
+ id: "melipona-beecheii",
+ name: "Abeja Melipona beecheii",
+ shortDescription: "Abeja sin aguijón de la miel",
+ description:
+ "La Abeja Melipona beecheii, también conocida como abeja sin aguijón de la miel, es una especie de abeja nativa de América Central y partes de Sudamérica. Es apreciada por la producción de miel y su comportamiento social.",
+ imageUrl: "https://th.bing.com/th/id/OIG.r67QZB6snAiw5btRZHR2?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 3 meses",
+ familia: "Apidae",
+ productorDeMiel: "Sí, en pequeñas cantidades",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Melipona beecheii son conocidas por su comportamiento social y la organización de sus colonias.",
+ "Producen una miel especial llamada ¨miel de melipona¨ que es apreciada en algunas regiones.",
+ ],
+ },
+ },
+ {
+ id: "ceratina-dallatorreana",
+ name: "Abeja Ceratina dallatorreana",
+ shortDescription: "Abeja cuerno negro",
+ description:
+ "La Abeja Ceratina dallatorreana, o abeja cuerno negro, es una especie de abeja solitaria que se encuentra en varias regiones del mundo. Se caracteriza por su cuerpo oscuro y sus antenas en forma de cuerno.",
+ imageUrl: "https://th.bing.com/th/id/OIG.zGcT3ZnLEhOowmGG_mHE?pid=ImgGn",
+ facts: {
+ promedioDeVida: "aproximadamente 4 semanas",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Ceratina dallatorreana son solitarias y anidan en tallos o ramas de plantas.",
+ "Son polinizadoras eficaces de diversas flores.",
+ ],
+ },
+ },
+ {
+ id: "colletes-cunicularius",
+ name: "Abeja Colletes cunicularius",
+ shortDescription: "Abeja excavadora",
+ description:
+ "La Abeja Colletes cunicularius, conocida como abeja excavadora, es una especie de abeja solitaria que se encuentra en diversas partes de Europa. Son llamadas así por su hábito de excavar nidos en el suelo.",
+ imageUrl: "https://th.bing.com/th/id/OIG.1L0M4524YJpeqLBdD55P?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 4 semanas",
+ familia: "Colletidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Colletes cunicularius excavan nidos en suelos arenosos o sueltos.",
+ "Son polinizadoras de plantas silvestres y tienen una dieta de néctar y polen.",
+ ],
+ },
+ },
+ {
+ id: "hylaeus-hyalinatus",
+ name: "Abeja Hylaeus hyalinatus",
+ shortDescription: "Abeja de vidrio",
+ description:
+ "La Abeja Hylaeus hyalinatus, conocida como abeja de vidrio, es una especie de abeja solitaria que se encuentra en varias regiones de Europa. Se llama así debido a su apariencia transparente.",
+ imageUrl: "https://th.bing.com/th/id/OIG.PpHrmL59.b1VACodupjq?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 2 a 4 semanas",
+ familia: "Colletidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas de vidrio son solitarias y anidan en tallos de plantas o en agujeros en madera.",
+ "Son polinizadoras de diversas flores y plantas silvestres.",
+ ],
+ },
+ },
+ {
+ id: "lasioglossum-calceatum",
+ name: "Abeja Lasioglossum calceatum",
+ shortDescription: "Abeja peluda",
+ description:
+ "La Abeja Lasioglossum calceatum, conocida como abeja peluda, es una especie de abeja solitaria que se encuentra en varias regiones de Europa. Se caracteriza por su cuerpo cubierto de pelos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.gqcu5z4yhaGUoRZiNV9k?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 4 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas peludas son excelentes polinizadoras y visitan una amplia variedad de flores.",
+ "Anidan en el suelo y tienen una dieta de néctar y polen.",
+ ],
+ },
+ },
+ {
+ id: "nomia-melanderi",
+ name: "Abeja Nomia melanderi",
+ shortDescription: "Abeja de tierra metálica",
+ description:
+ "La Abeja Nomia melanderi, conocida como abeja de tierra metálica, es una especie de abeja que se encuentra en América del Norte. Su nombre se debe a su apariencia metálica y su preferencia por hábitats terrestres.",
+ imageUrl: "https://th.bing.com/th/id/OIG.1eqkqZgmNMI26Jmak0hn?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 4 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Nomia melanderi son polinizadoras importantes de plantas silvestres y cultivos.",
+ "Anidan en el suelo y recolectan néctar y polen de una variedad de flores.",
+ ],
+ },
+ },
+ {
+ id: "andrena-wilkella",
+ name: "Abeja Andrena wilkella",
+ shortDescription: "Abeja minera",
+ description:
+ "La Abeja Andrena wilkella, también conocida como abeja minera, es una especie de abeja que se encuentra en varias partes del mundo. Son llamadas abejas mineras debido a su comportamiento de anidar en el suelo.",
+ imageUrl: "https://th.bing.com/th/id/OIG.3OrxJZgKk.RcUJVzJUvL?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 3 a 5 semanas",
+ familia: "Andrenidae",
+ productorDeMiel: "Sí, en pequeñas cantidades",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Andrena wilkella excavan nidos en el suelo y son solitarias.",
+ "Son polinizadoras de una variedad de flores silvestres y cultivos.",
+ ],
+ },
+ },
+ {
+ id: "perdita-minima",
+ name: "Abeja Perdita minima",
+ shortDescription: "Abeja perdita",
+ description:
+ "La Abeja Perdita minima, conocida como abeja perdita, es una pequeña especie de abeja que se encuentra en América del Norte. Su nombre se debe a su tamaño diminuto.",
+ imageUrl: "https://th.bing.com/th/id/OIG.VazgZ0xT9rlZg4nVtlub?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 3 semanas",
+ familia: "Andrenidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Perdita minima son especialistas en polinizar ciertas flores de plantas nativas.",
+ "Son solitarias y anidan en el suelo.",
+ ],
+ },
+ },
+ {
+ id: "epeolus-variegatus",
+ name: "Abeja Epeolus variegatus",
+ shortDescription: "Abeja cleptoparásita",
+ description:
+ "La Abeja Epeolus variegatus, conocida como abeja cleptoparásita, es una especie de abeja que se encuentra en diversas partes del mundo. Son cleptoparásitas, lo que significa que depositan sus huevos en los nidos de otras abejas.",
+ imageUrl: "https://th.bing.com/th/id/OIG.49idOkEGaBOdOmjU903V?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 3 semanas",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Epeolus variegatus son cleptoparásitas de abejas Anthophora y otros géneros.",
+ "No recolectan néctar ni polen, ya que dependen de las provisiones de las abejas hospedadoras.",
+ ],
+ },
+ },
+ {
+ id: "agapostemon-texanus",
+ name: "Abeja Agapostemon texanus",
+ shortDescription: "Abeja rayada verde",
+ description:
+ "La Abeja Agapostemon texanus, conocida como abeja rayada verde, es una especie de abeja que se encuentra en América del Norte. Son reconocibles por sus rayas verdes y negras en el abdomen.",
+ imageUrl: "https://th.bing.com/th/id/OIG.7FgYcS.uYxQYEa3.KEC4?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 3 a 4 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Agapostemon texanus son polinizadoras de diversas plantas, incluyendo muchas flores silvestres.",
+ "Son abejas sociales y forman colonias en el suelo.",
+ ],
+ },
+ },
+ {
+ id: "dialictus-zephyrus",
+ name: "Abeja Dialictus zephyrus",
+ shortDescription: "Abeja esmeralda",
+ description:
+ "La Abeja Dialictus zephyrus, conocida como abeja esmeralda, es una especie de abeja que se encuentra en América del Norte. Su nombre se debe a su coloración verde esmeralda.",
+ imageUrl: "https://th.bing.com/th/id/OIG.0f90dz58tmzddR9u75qI?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 3 a 4 semanas",
+ familia: "Halictidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Dialictus zephyrus son polinizadoras de diversas plantas y a menudo visitan flores silvestres.",
+ "Son abejas sociales y anidan en el suelo.",
+ ],
+ },
+ },
+ {
+ id: "megachile-sculpturalis",
+ name: "Abeja Megachile sculpturalis",
+ shortDescription: "Abeja cortadora de hojas gigante",
+ description:
+ "La Abeja Megachile sculpturalis, también conocida como abeja cortadora de hojas gigante, es una especie de abeja que se encuentra en varias partes del mundo. Son conocidas por su gran tamaño y capacidad para cortar hojas para construir sus nidos.",
+ imageUrl: "https://th.bing.com/th/id/OIG.1AENiIX50BhvXQPYnA4l?pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Megachile sculpturalis son excelentes polinizadoras y a menudo se utilizan en la polinización de cultivos.",
+ "Cortan trozos de hojas para construir nidos en cavidades naturales o en estructuras humanas.",
+ ],
+ },
+ },
+ {
+ id: "nomada-fervida",
+ name: "Abeja Nomada fervida",
+ shortDescription: "Abeja cleptoparásita",
+ description:
+ "La Abeja Nomada fervida, conocida como abeja cleptoparásita, es una especie de abeja que se encuentra en América del Norte. Son cleptoparásitas que depositan sus huevos en los nidos de otras abejas solitarias.",
+ imageUrl: "https://th.bing.com/th/id/OIG.VazgZ0xT9rlZg4nVtlub?pid=ImgGn",
+ facts: {
+ promedioDeVida: "alrededor de 4 semanas",
+ familia: "Apidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Nomada fervida son cleptoparásitas de abejas de la familia Andrenidae.",
+ "No recolectan néctar ni polen, ya que dependen de las provisiones de las abejas hospedadoras.",
+ ],
+ },
+ },
+ {
+ id: "hylaeus-signatus",
+ name: "Abeja Hylaeus signatus",
+ shortDescription: "Abeja de cara amarilla",
+ description:
+ "La Abeja Hylaeus signatus, conocida como abeja de cara amarilla, es una especie de abeja que se encuentra en América del Norte. Su nombre se debe a su característica cara amarilla.",
+ imageUrl:
+ "https://th.bing.com/th/id/OIG.gGDB2nCA7YkKNloc07G7?w=270&h=270&c=6&r=0&o=5&pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 2 a 4 semanas",
+ familia: "Colletidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Hylaeus signatus son polinizadoras de plantas silvestres y a menudo visitan flores de colores brillantes.",
+ "Anidan en cavidades preexistentes y son solitarias.",
+ ],
+ },
+ },
+ {
+ id: "bombus-impatiens",
+ name: "Abeja Bombus impatiens",
+ shortDescription: "Abejorro impaciente",
+ description:
+ "El Abejorro Bombus impatiens, conocido como abejorro impaciente, es una especie de abejorro que se encuentra en América del Norte. Son polinizadores importantes en entornos naturales y agrícolas.",
+ imageUrl:
+ "https://th.bing.com/th/id/OIG.Qpehm6.T9I8no4fZe6Ml?w=270&h=270&c=6&r=0&o=5&pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 12 a 16 semanas",
+ familia: "Apidae",
+ productorDeMiel: "Sí, en pequeñas cantidades",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Los abejorros Bombus impatiens son polinizadores efectivos de una amplia variedad de plantas.",
+ "Forman colonias con una reina y trabajadoras.",
+ ],
+ },
+ },
+ {
+ id: "osmia-lignaria",
+ name: "Abeja Osmia lignaria",
+ shortDescription: "Abeja albañil azul",
+ description:
+ "La Abeja Osmia lignaria, conocida como abeja albañil azul, es una especie de abeja solitaria que se encuentra en América del Norte. Son llamadas albañiles azules debido a su hábito de sellar sus nidos con barro.",
+ imageUrl:
+ "https://th.bing.com/th/id/OIG.GWBxCH5wZZGJhsoeV9Zk?w=270&h=270&c=6&r=0&o=5&pid=ImgGn",
+ facts: {
+ promedioDeVida: "de 4 a 6 semanas",
+ familia: "Megachilidae",
+ productorDeMiel: "No",
+ },
+ extraInfo: {
+ curiosidades: [
+ "Las abejas Osmia lignaria son excelentes polinizadoras de frutas y flores silvestres.",
+ "Construyen sus nidos en cavidades preexistentes o en agujeros de tallos.",
+ ],
+ },
+ },
+];
diff --git a/test/dataFunctions.spec.js b/test/dataFunctions.spec.js
index 72c5eb9d..fa6737c7 100644
--- a/test/dataFunctions.spec.js
+++ b/test/dataFunctions.spec.js
@@ -1,18 +1,74 @@
-import { example, anotherExample } from '../src/dataFunctions.js';
-import { data as fakeData } from './data.js';
+// Importa un objeto llamado 'data' desde "./data.js y lo renobra como fakeData"
+import { data as fakeData } from "./data.js";
+// Imprime el contenido del objeto en la consola
+window.console.log(fakeData);
-console.log(fakeData);
+// Importa funciones y datos necesarios para las pruebas
+import { filterData, sortData, computeStats } from "../src/dataFunctions.js";
+import data from "../src/data/dataset.js";
+import { renderItems } from "../src/view.js";
-describe('example', () => {
+// Bloque de pruebas para la funcionalidad de filtrado de datos
+describe("Data Filtering", () => { //Describe es una función que agrupa conjunto de pruebas , el argumento Data Filtering es una descripcion del conjunto
+ it("filters data by family correctly", () => { // it representa prueba individual
+ const filteredData = filterData(data, "familia", "Apidae"); //Constante filterData almacena el resultado de aplicar la funcion filter data a los
+ //datos Data utilizando como criterio la propiedad familia con el valor de Apidae
+
+ // Verifica que todos los elementos tengan la familia "Apidae"
+ expect(filteredData.every((bee) => bee.facts.familia === "Apidae")).toBe(true);//expectativa sobre el resultado del filtrado,
+ //FilteredData.every(...) verifica que para cada elemento en filteredData, la propiedad familia en la propiedad facts sea igual a "Apidae".
+ //toBe(true) asegura que esta condición sea verdadera para todos los elementos, es decir, que todos tengan la familia "Apidae".
+ });
+
+ it("filters data when an invalid family is selected", () => {
+ const filteredData = filterData(data, "familia", "InvalidFamily");
+ // Verifica que no haya datos después de filtrar por una familia no válida
+ expect(filteredData.length).toBe(0); //está verificando que la longitud del array filteredData sea exactamente igual a 0.
+ });
+
+ it("filters data when an invalid family is selected", () => {
+ const filteredData = filterData(data, "pepito", "InvalidFamily"); // Modificada
+ // Verifica que no haya datos después de filtrar por un campo no válido
+ expect(filteredData.length).toBe(0);
+ });
+});
- it('returns `example`', () => {
- expect(example()).toBe('example');
+// Bloque de pruebas para la funcionalidad de ordenación de datos
+describe("Data Sorting", () => {
+ it("sorts data in ascending order by name", () => {
+ const sortedData = sortData(data, "name", "asc");
+ // Verifica que los nombres estén ordenados en orden ascendente
+ expect(sortedData[0].name <= sortedData[1].name).toBe(true);
+ });
+
+ it("sorts data in descending order by name", () => {
+ const sortedData = sortData(data, "name", "desc");
+ // Verifica que los nombres estén ordenados en orden descendente
+ expect(sortedData[0].name >= sortedData[1].name).toBe(true);
+ });
+
+ it("sorts data in descending order by name", () => {
+ const sortedData = sortData([], "pepito", "desc"); // Modificada
+ // Verifica que no haya cambios al intentar ordenar una lista vacía
+ expect(sortedData).toBe([]);
});
});
-describe('anotherExample', () => {
+// Bloque de pruebas para la funcionalidad de renderizado de datos
+describe("Data Rendering", () => {
+ it("renders data correctly", () => {
+ const renderedData = renderItems(data);
+ const listItemElements = renderedData.querySelectorAll("li");
+ // Verifica que la cantidad de elementos renderizados sea igual a la longitud de los datos
+ expect(listItemElements.length).toBe(data.length);
+ });
+});
- it('returns `anotherExample`', () => {
- expect(anotherExample()).toBe('OMG');
+// Bloque de pruebas para la funcionalidad de cálculo de estadísticas
+describe("Statistics Computation", () => {
+ it("computes statistics correctly", () => {
+ const stats = computeStats(data);
+ // Verifica que la cantidad total de elementos sea igual a la longitud de los datos
+ expect(stats.totalItems).toBe(data.length);
});
});