Skip to content

codeurjc-students/2024-bits-of-flavor

Repository files navigation

2024-bits-of-flavor

La App permitirá a los miembros de la comunidad universitaria acceder a una oferta de productos alimenticios. Tiene el objetivo de brindar una alternativa para la limitada oferta de las cafeterías disponibles en la propia universidad.

GitHub Project: [https://github.com/orgs/codeurjc-students/projects/10]

Blog de Medium: [https://medium.com/@jesusp.sanchez77]

Video YouTube Fase 1: [https://youtu.be/QWPBhac1iVk?si=nwOW65DqL7pB7ikM]

  • Alumno: Jesús Pérez Sánchez
  • Tutor: Micael Gallego Carrillo

Fase 1. Versión con funcionalidad básica

Instrucciones de ejecución de la App

IMPORTANTE: Es necesario tener Docker instalado en el ordenador o máquina virtual donde se ejecutará la aplicación. Se recomienda tener instalado además Docker Desktop [https://www.docker.com/products/docker-desktop/]

  1. Clonar el repositorio de GitHub: [https://github.com/codeurjc-students/2024-bits-of-flavor.git]
  2. Abrir nueva terminal y situarnos en la raiz del proyecto.
  3. Ejecutar el comando cd docker para cambiar de directorio.
  4. Ejecutar el comando docker-compose up para iniciar el contenedor.
  5. La aplicación web estará disponible en la URL: https://localhost:8443/new/
  6. Ejecutar el comando docker-compose down para parar el contenedor.

CREDENCIALES DE ACCESO: Al iniciar la app existen dos usuarios precreados con permisos diferentes:

  • Nombre de usuario: user // Contraseña: pass // Rol: USER
  • Nombre de usuario: admin // Contraseña: pass // Rol: ADMIN

Admeás, en los datos de ejemplo se carga una lista de 10 platos/productos visibles desde la pestaña "Buscar" en la barra de navegación. Para futuras versiones se añadiran más datos de ejemplo.

Documentación para construcción de la imagen Docker

  1. Clonar el repositorio de GitHub: [https://github.com/codeurjc-students/2024-bits-of-flavor.git]
  2. Abrir nueva terminal y situarnos en la raiz del proyecto.
  3. Ejecutar el comando cd docker para cambiar de directorio.
  4. Ejecutar el comando ./script.sh para construir una nueva imágen Docker.
  5. La imágen se publicará en el repositorio [https://hub.docker.com/r/jperezsa2020/java_app].

Funcionalidades

La version 1.0.0 incluye las siguientes funcionalidades displonibles:

  1. Visualizar el listado de productos.
  2. Filtrar el listado de productos.
  3. Visualizar página con los detalles de un producto específico.
  4. Registrarse.
  5. Iniciar sesión.
  6. Comprar y seleccionar fecha de recogida de productos.
  7. Modificar perfil de usuario.
  8. Crear y añadir nuevos productos a la app.
  9. Eliminar productos ya existentes.

Diagrama con las entidades de la base de datos

BBDD Class UML

ROLES

Existen dos tipos de roles en la aplicación: USER y ADMIN. Los permisos y las funcionalidades disponibles para cada tipo de usuario varian en funcion del rol adquirido.

NOTA: Los usuarios con rol ADMIN también tienen permiso para acceder a las funcionalidades de USER.

Usuario anónimo: tipo usuario sin cuenta en la aplicación o sin la sesión iniciada. Este usuario no dispone de ningún rol. Sus funcionalidades disponibles son: 1, 2, 3, 4 y 5.

Usuario registrado: tipo de usuario estandar con la sesión iniciada. Este usuario dispone del rol USER. Sus funcionalidades disponibles son: 6 y 7 (además de las funcionalidades de usuario anónimo).

Usuario administrador: tipo de usuario con la sesión iniciada. Este usuario despone del rol ADMIN. Tiene acceso a todas las funcionalides disponibles en la aplicación.

Captura de pantallas y diagrama de navegación

  1. Página de inicio:

image

  1. Página de Iniciar Sesion / Registrarse:

image image

  1. Página de búsqueda con filtro:

image

  1. Página de detalles de producto:

image

  1. Página de perfil de usuario:

image

  1. Página de resumen de compra y proceso de pago:

image

  1. Página de administrador para añadir un nuevo producto:

image

Diagrama de navegación

Diagrama de navegacion

Diagrama de clases del BACKEND

Backend UMLClass

Diagrama de clases del FRONTEND

Frontend UMLClass

Fase 0. Definición de las funcionalidades de la web

Entidades

  • Usuario | User
  • Producto | Product
  • Pedido | Ticket

⋅⋅⋅ Un Pedido lo realiza un Cliente (N:1) ⋅⋅⋅ Un Pedido es una lista de varios Productos (1:M)

Imágenes

  • Cada Usuario tiene una foto de perfil.
  • Cada Producto tiene una imagen asociada.

Tecnología complementaria

  • Generación de tickets (PDFs) con los detalles de compra.

Algoritmo o consulta avanzada

  • Sistema de ofertas personalizadas en base a los productos comprados previamente por el usuario.

Usuario anónimo

  1. Visualizar el listado de productos. (BÁSICA)
  2. Filtrar el listado de productos. (BÁSICA)
  3. Visualizar página con los detalles de un producto específico. (BÁSICA)
  4. Registrarse. (BÁSICA)
  5. Iniciar sesión. (BÁSICA)
  6. Visualizar gráfico con estadísticas de productos. (AVANZADA)

Usuario registrado

  1. Añádir productos al carrito de compra. (BÁSICA)
  2. Seleccionar fecha de recogida de productos. (BÁSICA)
  3. Modificar perfil de usuario. (BÁSICA)
  4. Descargar ticket PDF con los detalles de compra. (AVANZADA)
  5. Simulación de pasarela de pago real con Stipe. (AVANZADA)

Usuario administrador

  1. Crear y añadir nuevos productos a la app. (BÁSICA)
  2. Eliminar productos ya existentes. (BÁSICA)
  3. Sistema de gestión de ofertas. (AVANZADA)

Wireframe de pantallas y navegación

  1. Página de inicio:

image

  1. Página de Iniciar Sesión | Registrarse

image image

  1. Página de búsqueda con filtro:

image

  1. Página de detalles de producto:

image

  1. Página de perfil de usuario:

image

  1. Página de resumen de compra y proceso de pago:

image

  1. Página de administrador para añadir un nuevo producto:

image