generated from Arquisoft/dede_0
-
Notifications
You must be signed in to change notification settings - Fork 2
00: Decisiones Arquitectónicas
Ana Fernández Ostio edited this page May 2, 2022
·
11 revisions
- Título: elección Base de Datos
- Estado: Aceptada
- Contexto: Se necesita una base de datos para almacenar los diferentes datos que la aplicación vaya necesitando. El equipo de desarrollo había planteado la utilización de SQLite o MongoDB
- Decisión: Se ha escogido MongoDB junto con MongoAtlas como SGDB ya que este deja parcial libertad a la hora de añadir/actualizar/eliminar aquello que se necesite
- Consecuencias: Familiarizarse con el nueva base de datos. Al principio puede suponer varios errores en con las conexiones.
- Título: Utilización de una nueva dependecia
- Estado: Aprobada
- Contexto: Se necesita juntar el front-end con el back-end de la aplicación de una forma sencilla para los desarrolladores
- Decisión: Se ha escogido utilizar Axios ya que simplifica mucho a la hora de pedir las diferentes solicitudes a la base de datos
- Consecuencias: Instalación de esta nueva dependecia y aprender a usarla
- Título: Dependecia para Componentes en el Front-End
- Estado: Aprobada
- Contexto: Se quiere utilizar una nueva dependecia para poder obtener de forma mas sencilla los compoenentes que pueda necesitar la aplicación
- Decisión: Se ha decidido utilizar MUI para utilizar los diferentes componentes que existen ya que es una libreria de libre acceso que ademas permite que se diseñe como el desarrollador y el cliente hayan acordado
- Consecuencias: Instalación de la dependecia
- Título: Despliegue de la aplicación
- Estado: Rechazada
- Contexto: Se necesita desplegar la aplicación en algun servidor para que esta pueda ser accesible desde cualquier punto.
- Decisión: Se ha pensado en utilizar Heroku, ya que de forma gratuita para lo que se necesita es suficiente. Esta plataforma tiene limite de intentos para el despliegue, se ha agotado este numero.
- Consecuencias: tomar nueva decision acerca de que donde se despliega la Aplicacion
- Título: Imagenes en el front-end
- Estado: Aprobada
- Contexto: Se necesita tener las imagenes de los productos en la nube, ya que sino no se puede realizar la colocación de estos en la ventana de productos. Se ha pensado en utilizar Cloudinary o PostImages
- Decisión: Se ha decidido utilizar PostImages como lugar de almacenamiento de las imagenes, se guardara en la base de datos las diferentes URLs de estas imagenes para que puedan ser actualizadas o aquello que necesite el administrador de la aplicación.
- Consecuencias: Añadir un producto puede complicarse
- Título: Dependencia Mensajes modales
- Estado: Aprobada
- Contexto: Para que la aplicación sea más usable para el usuario se necesita añadir unos mensajes modales que en función del resultado que se haya obtenido, salgan por pantalla
- Decisión: Se ha decidido utilizar SweetAlert2 ya que este permite una gran variedad de las cosas que se necesita. Como otra opción se encontraría Alert, viene por defecto con React.
- Consecuencias: Cambio del código que se obtiene, además de añadir una nueva dependencia al sistema
- Título: Generación de códigos random
- Estado: Aprobada
- Contexto: Se necesita que se generen código aleatorios para los productos ya que asi es casi imposible que estos coincidan
- Decisión: Se ha decidido utilizar UUID para la generación de estos códigos.
- Consecuencias: Los códigos pueden llegar a ser muy largos
- Título: conexión base datos
- Estado: Aprobada
- Contexto: Se necesita crear una conexión con la base de datos
- Decisión: Se ha decidido utilizar Mongoose.
- Consecuencias: Instalación de una nueva dependencia
- Título: Diseño base de datos en backend
- Estado: Aprobada
- Contexto: Se necesita diseñar la base de datos según se encuentra en la base de datos
- Decisión: Se ha decidido utilizar Express.
- Consecuencias: Nunca se ha trabajado con ello
- Título: Peticiones a la base de datos
- Estado: Aprobada
- Contexto: Se necesita pedir peticiones a la base de datos
- Decisión: Se ha decidido utilizar Node.
- Consecuencias: Nunca se ha trabajado con ello
- Título: Despliegue de la aplicación
- Estado: Aprobada
- Contexto: Se necesita desplegar la aplicación en algun servidor para que esta pueda ser accesible desde cualquier punto.
- Decisión: Se ha decidido utilizar AWS, ya que ha sido una de las recomendaciones del profesor de la asignatura
- Consecuencias: Creacion de una cuenta en la que se necesita ayuda del profesor
- Título: API envío
- Estado: Aprobada
- Contexto: Se necesita una API que nos de el precio de envio en funcion de la direccion que se le pase del cliente
- Decisión: Se ha decidido usar EasyPost para calcularlo.
- Consecuencias: No se ha trabajado con ella y puede dar problemas al sacar la direccion del POD
- Título: Contexto de Sesión
- Estado: Aprobada
- Contexto: Se neceisa guardar quien es el usuario que esta logeado en ese instante
- Decisión: Se ha decidido usar JSON Web Token
- Consecuencias: Puede que genere fallos de seguridad, no se ha trabajado con ello, necesrio de una funcion para poder sacar la informacion obtenida
- Título: Encriptación constraseña
- Estado: Aprobada
- Contexto: Se neceisa guardar la contraseña del cliente cuando se registre en la aplicación y ademas mantener la privacidad de estos
- Decisión: Se ha decidido usar bcrypt.
- Consecuencias: Instalacion de una nueva dependencia, en backend, hay que comprobar si las contraseñas encriptadas son iguales.