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
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/]
- Clonar el repositorio de GitHub: [https://github.com/codeurjc-students/2024-bits-of-flavor.git]
- Abrir nueva terminal y situarnos en la raiz del proyecto.
- Ejecutar el comando cd docker para cambiar de directorio.
- Ejecutar el comando docker-compose up para iniciar el contenedor.
- La aplicación web estará disponible en la URL: https://localhost:8443/new/
- 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.
- Clonar el repositorio de GitHub: [https://github.com/codeurjc-students/2024-bits-of-flavor.git]
- Abrir nueva terminal y situarnos en la raiz del proyecto.
- Ejecutar el comando cd docker para cambiar de directorio.
- Ejecutar el comando ./script.sh para construir una nueva imágen Docker.
- La imágen se publicará en el repositorio [https://hub.docker.com/r/jperezsa2020/java_app].
La version 1.0.0 incluye las siguientes funcionalidades displonibles:
- Visualizar el listado de productos.
- Filtrar el listado de productos.
- Visualizar página con los detalles de un producto específico.
- Registrarse.
- Iniciar sesión.
- Comprar y seleccionar fecha de recogida de productos.
- Modificar perfil de usuario.
- Crear y añadir nuevos productos a la app.
- Eliminar productos ya existentes.
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.
- Página de inicio:
- Página de Iniciar Sesion / Registrarse:
- Página de búsqueda con filtro:
- Página de detalles de producto:
- Página de perfil de usuario:
- Página de resumen de compra y proceso de pago:
- Página de administrador para añadir un nuevo producto:
Al realizar una pull-request se ejecuta el workflow CI. Por el momento este workflow ejecuta los test de Selenium referentes a las funcionalidades de usuario anónimo y administrador. El resultado se puede ver en el apartado ACTIONS de GitHub. Pueden surgir errores aleatorios. Si el resultado es negativo (fallo en los test) se debera ejecutar manualmente (Workflow-dispatch) el workflow. Si el error persiste es tarea del programador solucionarlo antes de cerrar la pull-request.
Al realizar una realease desde GitHub, se ejecuta el workflow CD. Se encarga de publicar la imágen Docker correspondiente. Antes de publicar una release, se debe realizar un commit directamente en la rama main modificando la versión del pom.xml. Se publican en total dos imágenes. La primera con el tag main y la segunda con el tag con la fecha y la hora de construcción. Este workflow también se puede ejecutar manualmente (Workflow-dispatch).
- Usuario | User
- Producto | Product
- Pedido | Ticket
⋅⋅⋅ Un Pedido lo realiza un Cliente (N:1) ⋅⋅⋅ Un Pedido es una lista de varios Productos (1:M)
- Cada Usuario tiene una foto de perfil.
- Cada Producto tiene una imagen asociada.
- Generación de tickets (PDFs) con los detalles de compra.
- Sistema de ofertas personalizadas en base a los productos comprados previamente por el usuario.
- Visualizar el listado de productos. (BÁSICA)
- Filtrar el listado de productos. (BÁSICA)
- Visualizar página con los detalles de un producto específico. (BÁSICA)
- Registrarse. (BÁSICA)
- Iniciar sesión. (BÁSICA)
- Visualizar gráfico con estadísticas de productos. (AVANZADA)
- Añádir productos al carrito de compra. (BÁSICA)
- Seleccionar fecha de recogida de productos. (BÁSICA)
- Modificar perfil de usuario. (BÁSICA)
- Descargar ticket PDF con los detalles de compra. (AVANZADA)
- Simulación de pasarela de pago real con Stipe. (AVANZADA)
- Crear y añadir nuevos productos a la app. (BÁSICA)
- Eliminar productos ya existentes. (BÁSICA)
- Sistema de gestión de ofertas. (AVANZADA)
- Página de inicio:
- Página de Iniciar Sesión | Registrarse
- Página de búsqueda con filtro:
- Página de detalles de producto:
- Página de perfil de usuario:
- Página de resumen de compra y proceso de pago:
- Página de administrador para añadir un nuevo producto: