DarckMonster / PCscrap

GNU General Public License v3.0
0 stars 1 forks source link

Propuesta de la estructura del proyecto #10

Closed spmanolo closed 11 months ago

spmanolo commented 11 months ago

Hola @DarckMonster, te comento una propuesta provisional para la estructura del proyecto:

Teniendo en cuenta las historias de usuario ya descritas que expresan los problemas de los usuarios, se pueden sacar una serie de funcionalidades que debería tener el producto:

  • [HU1] Se requiere poder elegir entre distintos componentes, entre una selección de tiendas de confianza y que el sistema devuelva una lista de recomendaciones (minimizar coste de un componente específico entre una lista de tiendas concretas)

  • [HU2] Se requiere poder comparar los precios de un componente en distintas tiendas (minimizar coste)

  • [HU3] Se requiere que el sistema ofrezca una recomendación concreta al usuario sobre los precios de un componente (minimizar coste y seleccionar)

  • [HU4] Se requiere poder encontrar ofertas de forma rápida (minimizar tiempo de búsqueda)

Para el milestone 0 nos centramos en la HU1 que se ha asignado.

Estructura de clases

Con los datos anteriores, se podría plantear la siguiente estructura de clases: habría dos objetos valor que se utilizarían para almacenar los datos del componente y las tiendas, y un objeto entidad que se utilizaría para realizar los cálculos de scraping.

Comentarios

Si ves algo que no esté claro, que no corresponda con las exigencias de los usuarios o que no haya explicado bien por supuesto tú dime. Esto es una propuesta provisional y eres libre para corregirme lo que haga falta.

DarckMonster commented 11 months ago

Buenas @spmanolo, veo bien el planteamiento de la estructura del proyecto, solo necesito entender bien la clase Tienda si puedes explicármela mejor. En cuanto al resto de clases es lo que buscamos.

spmanolo commented 11 months ago

La clase Tienda ya no corresponde a la estructura planteada, como menciono en el comentario del PR, los datos de la tienda web se almacenan en un Map como atributo de clase en el objeto entidad PcScrap, este Map contiene pares de clave-valor, que almacenan el nombre de la tienda web (clave) y su URL correspondiente (valor).

Además he añadido el enumerado TipoComponente para almacenar los tipos de componentes con los que se va a trabajar, como te comento en #12.

La nueva estructura de clases quedaría asi:

DarckMonster commented 11 months ago

Tras ver la estructura, está bien y es adecuada para el proyecto. Gran trabajo compañero! :smile: Ya te voy comentando sobre el código en el PR.