Skip to content

maddyrojas/DEV014-dataverse-chat

 
 

Repository files navigation

Dataverse Chat

Índice


1. Preámbulo

¿Qué tal si pudiéramos conversar con un guía que te invite a conocer los mejores lugares de Costa Rica? Hoy en dia la inteligencia artificial nos brinda un mundo de posibilidades, con el acceso de informacion inmediata y veraz de lugares que nunca hemos visitado y nos encantaria conocer con tan solo enviar una pregunta. Es por esta razon que hemos creado la SPA: Pura Vida Tours.

vista Principal 1 vista Principal 2

2. Resumen del proyecto

Es una Single Page Application (SPA), que le permite al usuario visualizar, filtrar y ordenar una data de lugares turisticos de Costa Rica desde la vista de "Home". Tambien tiene vista de más detalles de cada tour y vita para poder chatear con Guias turísticos que te invitan a disfrutar de cada tour, adicional se encuentra un chat grupal donde todos los tours son los que chatean con el usuario a traves de API de OpenAI.

Los objetivos generales de este proyecto son los siguientes

  • Desarrollar una Single Page Application (SPA)
  • Aplicar los conceptos de responsividad en el desarrollo de las vistas
  • Implementar un router para la navegación entre las diferentes vistas de la aplicación
  • Integrar una API externa
  • Entender la asincronía en JavaScript
  • Crear una suite de pruebas unitarias que permitan testear código asíncrono

3. Funcionalidades

La Single Page Application (SPA) permite, además de visualizar la data, filtrarla, ordenarla y calcular alguna estadística, permite acceder a una página de detalle de cada tour e interactuar a traves de un chat individual y grupal con OpenAI.

Funcionalidades mínimas que debe tener:

  • La aplicación debe ser responsive
  • La aplicación debe ser una SPA con múltiples vistas:
    • Implementar un sistema de enrutamiento que permita la navegación dentro de la aplicación.
    • Cada vista de la aplicación debe ser cargada dinámicamente mediante JavaScript.
    • Asegurarse de que la URL se actualice de manera acorde a la vista cargada al igual que el title del documento (la pestaña del navegador).
    • La aplicación debe ser capaz de cargar la vista correspondiente a la URL actual al iniciar la aplicación.
  • La aplicación debe mantener las funcionalidades de Dataverse: visualizar, filtrar, ordenar y calcular estadística de la data.
  • Al hacer clic en una tarjeta de personaje/entidad, la aplicación debe redirigirse a una vista con su propia URL que muestre la información detallada sobre ese personaje/entidad en particular
  • La aplicación debe permitir a la usuaria configurar la API Key para interactuar con la API de Open AI
  • Usando la API de Open AI, la aplicación debe permitir al usuario interactuar con un personaje/entidad a través de un chat.

Individual Chat

  • La aplicación debe permitir al usuario interactuar de manera simultánea con todos los personajes/entidades a través de un chat:
    • Esta funcionalidad debe cargarse en la URL /panel
    • La usuaria puede ingresar su pregunta o mensaje para todos los personajes/entidades en un cuadro de texto y enviarlo con un botón
    • El mensaje de la usuaria debe ser ajustado para cada personaje/entidad, con el objetivo que este genere una respuesta basada en su personalidad y conocimiento
    • Las respuestas de todos los personajes se muestran de acuerdo al orden respuesta.
    • Indicar visualmente cuando uno o varios personajes/entidades esten generando una respuesta al mensaje enviado
  • La aplicación debe informar a la usuaria los errores que puedan surgir al interactuar con la API, como por ejemplo alcanzar la cuota de tokens por minuto o cualquier otro error relacionado con la API. Debería proporcionarse una descripción clara de la causa del problema y posibles soluciones.

Group Chat

Funcionalidades en Home:

Zona de Ordenar y filtrar

Este espacio permite dar control al usuario sobre los datos que quieren visualizar podran filtar por provincias de Costa Rica y ordenar por orden alfabetico y por costo promedio, ademas podran resetar las busquedas a traves del botón limpiar.

imageVizualizarPorcentajes

Tambien se encuenta la Zona de 'Compute Stats'

  • Nos indica cual es el % porcentaje de lugares turísticos por provincia con determinado tipo de turismo como: playa, aventura y cultural.

imageVizualizarPorcentajes

Beneficios:

Información completa: Accede a toda la información relevante para tomar decisiones informadas sobre tu viaje.

Fácil de usar: Interfaz intuitiva y amigable para que encuentres lo que necesitas rápidamente.

Personalizable: Filtra y compara lugares según tus preferencias para encontrar tu experiencia ideal.

Planificación eficiente: Ahorra tiempo y dinero al tener una mejor idea de lo que te espera en tu viaje.

Pura Vida Tour es la herramienta perfecta para:

Viajeros primerizos: Que buscan información completa y organizada para planificar su viaje a Costa Rica.

Turistas experimentados: Que desean explorar nuevos lugares y comparar diferentes opciones.

Cualquier persona que desee: Tomar decisiones informadas sobre su viaje a Costa Rica.

4. Consideraciones técnicas

El boilerplate tiene la siguiente estructura de archivos:

.
├── src
|  ├── assets
|  |  ├── chats.css
|  |  ├── computeZone.css
|  |  ├── description.css
|  |  ├── filterZone.css
|  |  ├── footer.css
|  |  ├── header.css
|  |  ├── renderItem.css
|  |  └── style.css
|  ├── components
|  |  ├── footer.js
|  |  ├── groupchating.js
|  |  ├── header.js
|  |  ├── mainDescription.js
|  |  ├── mainHome.js
|  |  ├── mainTours.js
|  |  └── nav.js
|  ├── data
|  |  └── dataset.js
|  ├── images
|  ├── lib
|  |  ├── apiKey.js
|  |  ├── dataFunctions.js
|  |  └── openAIApi.js
|  ├── views
|  |  ├── GroupChat.js
|  |  ├── Home.js
|  |  ├── IndividualChat.js
|  |  └── TourLayaout.js
|  ├── index.html
|  ├── index.js
|  └── router.js
├── test
|  ├── apiKey.spec.js
|  ├── dataFunctions.spec.js
|  └── openAIApi.spec.js
├── README.md
└── package.json

5. Definición del producto

Historias de usuaria

Se realizaron 5 historia de usuario que podrán ser visualizadas en estre link: https://www.notion.so/Que-quieren-los-turistas-al-vistar-Costa-Rica-ec371c3b51934df1b9d930a19bcd1b0a?pvs=4

imageHusuario

Diseño de la Interfaz de Usuaria

Se han creado vistas para mobile, tablet y desktop. Se ha utilizado un diseño responsive para que la aplicación se adapte a diferentes dispositivos.

Despliegue:

La aplicación se ha desplegado en Netlify. https://puravida-tours.netlify.app/

Prototipo de Alta Fidelidad

En Dataverse, nos preocupamos por la experiencia de nuestros usuarios. Por eso, hemos diseñado un prototipo intuitivo y fácil de usar para nuestro nuevo producto. Visita nuestro prototipo: https://www.figma.com/file/lSXlrTfCcIirOGRveTxuk6/Costa-Rica-te-enamora?type=design&node-id=0%3A1&mode=design&t=0UHfhUdKZJfTRe9Y-1

Header imageheader Body imagebody imagestats Footer imagefooter

Testeos de usabilidad

Problemas detectados en pruebas de usabilidad:

Los usuarios nos han contado:

  • "¡Demasiada información en las tarjetas! Me costaba encontrar lo que buscaba."

  • "No pude usar la página en mi celular. La información se veía muy pequeña y los botones no responden."

  • "Los porcentajes no funcionaban bien. Cuando limpio, no se reinicia la información."

  • "Encontré algunos botones que no hacían nada. Parece que la página aún está en desarrollo."

Solucionamos:

estos problemas para que tu experiencia en Pura Vida Tour sea optima.

  • Más sencilla: Información clara y concisa en las tarjetas.

  • Adaptable: Diseño responsive para una experiencia óptima en cualquier dispositivo.

  • Funcional: Filtros y botones que funcionan correctamente.

  • Completa: Página web con todas las funcionalidades disponibles.

Tecnologías:

  • Front-end: JavaScript, HTML, CSS, Jest.

  • Back-end: Node.js.

  • Librerías: Chart.js (opcional).

Herramientas:

  • Git, GitHub, GitHub Pages, Chat-gpt, Gemini, OHs Laboratoria, Figma, Trello, Notion.
  • Jest
  • Vercel
  • Netlify

6. 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

CSS

Web APIs

JavaScript

HTTP

AI Prompting

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

  • 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

7. Agradecimiento

A Laboratoria por el reto.

A la comunidad de GitHub por su apoyo.

Al equipo de trabajo.

About

Proyecto Dataverse Chat (SPA)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 70.3%
  • CSS 28.6%
  • HTML 1.1%