- W&T (Web And Tech)
Esta aplicación pemitirá a los usuarios comprar artículos relacionados con tecnología así como ordenadores, cables, placas base, etc. todo dentro de la legalidad vigente.
| Nombre | Github | |
|---|---|---|
| Guillermo Martín García | g.martingarcia@alumnos.urjc.es | Wilhelm-mar |
| Sergio Octavio Mancebo | s.octavio.2018@alumnos.urjc.es | sergio-octavio |
| Víctor López Rodríguez | v.lopezrodr@alumnos.urjc.es | Victorlopezro |
| Rodrigo Montilla Fernández | r.montilla.2019@alumnos.urjc.es | romofe01 |
| Fernando Prieto Olías | f.prieto.2019@alumnos.urjc.es | Fervo8564 |
- Invitación: https://trello.com/invite/b/T0BwXzKT/1f6016fb6f696502b1e98b5d46096517/practicadaw8
- Tablero: https://trello.com/b/T0BwXzKT/practicadaw8
- Usuarios
- Pedidos
- Producto
- Valoraciones
Distinguimos entre 3 tipos de usuario: usuarios no registrados, clientes y administradores.
- Usuarios no registrados: podrán ver los productos junto con sus descripciones y valoraciones pero no tendrán permisos de administrador ni podrán comprar, vender o valorar productos.
- Clientes: tendrán disponibles las mismas cosas que los usuarios no registrados pero podrán comprar, valorar productos (después de su compra) y modificar su perfil.
- Administradores: podrán añadir productos a la venta, eliminarlos y modificar sus características (precio, descripción, etc.) pero no podrán comprar nada.
- Los usuarios registrados podrán establecer una imagen de perfil.
- Cuando un administrador ponga un producto a la venta, este tendrá que venir acompañado de una imagen.
- A la hora de comprar un producto, podremos ver la localización de la tienda en la que se encuentra para que así el cliente decida si va a recogerlo o si por el contrario decide pagar los gastos de envío necesarios y recibirlo en casa.
- En función de los productos que un cliente haya comprado con anterioridad, se mostrará un listado de "artículos de interés" relacionado con sus compras previas.
Home- En esta pantalla permitirá al usuario ver todos los productos que están a la venta así como aplicar una serie de filtros para una busqueda más concreta de los productos que desea el usuario.

Componentes- En esta pantalla permite al usuario seleccionar los diferentes componentes que existen en la web. Dentro de ella se puede encontrar un despliegue distinguiendo los tipos de productos: Placas Base, Procesador, Discos Duros, Tarjetas Gráficas. Además se podrá puntuar el artículo si previamente se ha comprado, visualizar el resto de valoraciones y puntuaciones, las características del artículo en particular.

Placas Base- En esta página se visualiza los modelos de las placas base.

Discos Duros- En esta página se visualiza los modelos de las discos duros.

Procesador, - En esta página se visualiza los modelos de las procesador.

Tarjetas Gráficas- En esta página se visualiza los modelos de las tarjetas gráficas.

Periféricos- En esta pantalla permite al usuario seleccionar los diferentes periféricos que existen en la web. Dentro de ella se puede encontrar un despliegue distinguiendo los tipos de productos: Monitores, teclados, ratones y auriculares. Además se podrá puntuar el artículo si previamente se ha comprado, visualizar el resto de valoraciones y puntuaciones, las características del artículo en particular.

Monitores- En esta página se visualiza los modelos de los monitores.

Teclados- En esta página se visualiza los modelos de los teclados.

Ratones- En esta página se visualiza los modelos de los ratones.

Auriculares- En esta página se visualiza los modelos de los auriculares.

Móviles- En esta página se visualizará todos los tipos de móviles.

Contacto- En esta página permita al usuario ponerse en contacto por teléfono, correo electrónico... Además de dar la opción del contacto en Redes Sociales.

Login- En esta pantalla permite al usuario logueado poder cambiar algunos aspectos de su perfil como por ejemplo su foto de perfil, encabezado o cambiar la información que se encuentra en su perfil.

AdminProductos- En esta pantalla permite a los administradores gestionar los productos de la aplicación, ya sea añadiendo o borrando productos existentes.

AdminUsuarios- En esta pantalla permite a los administradores gestionar los usuarios de la web, como por ejemplo comprobar que existe un usuario.

AdminGráficas- En esta pantalla permite a los administradores observar las graficas sobre la información recogida de la página web

Home - se ha modificado la página home con un menu para clientes, se han traducido información de la página al español, se muestran productos de la aplicación.

Product - se ha modificado la página de productos de componentes y periféricos

Single product - se ha modificado la página cuando se muestra la información de un producto en concreto

SignIn / Login - página para el registro de un nuevo usuario o el logueo para un usuario ya registrado.

Perfil - página donde el usuario puede modificar su información de la cuenta ya sea su nombre de usuario, su nombre completo, su dirección o su correo.

Pedidos - página para ver información de los pedidos realizados.

Seguridad - página para poder cambiar la contraseña de forma segura o darse de baja en la aplicación.

Checkout - modificación de la página del checkout, aparecerá un botón de compra si se ha registrado previamente en la aplicación

Graphics - página de admin que permite observar gráficas de las ventas de la aplicación.

Admin user list - página de admin que muestra la lista de usuarios dados de alta en la aplicación.

Order list - página de admin que muestra la lista de pedidos que se han realizado en la aplicación.

New product - página de admin que facilita la creación de nuevos productos para la aplicación web.

Contact - modificación de la página de contactos, detalles referente a nuestra aplicación y traducido al español.

Error - página de error donde se redireccionará al usuario en caso de que exista algún error en la aplicación.

Para instalar y ejecutar la aplicación del grupo 8 se deben seguir los siguientes pasos:
- Usamos el siguiente hipervínculo al repositorio de Github del grupo 8: https://github.com/CodeURJC-DAW-2021-22/webapp8 (Asegurarse que nos encontramos en la rama main).
- Nos dirigimos a PostgreSQL "pgAdmin 4" y en nuestro servidor local creamos una base de datos llamada webandtech (Es importante que esté vacío para que en la primera ejecución se carguen la información de la aplicación).
- Una vez descargada la aplicación, en el entorno de desarrollo Eclipse con la extensión de spring preparada de antemano, abrimos el archivo application.properties y ponemos la contraseña y usuario que tengamos en nuestra base de datos de "pgAdmin 4" y ejecutamos el programa.
- Sin parar la ejecución del programa, introduce la siguiente Url en un navegador: https://localhost:8443/
- Una vez que nos cargue la pantalla de la tienda, la aplicación estará lista para usarse.
Requisitos para la ejecución del programa:
- PostgreSQL: 14.2
- Pack de Spring Boot para Eclipse o en el entorno de desarrollo que se esté trabajando: (versión 2.6.3)
- Versión de java: 17
- BootStrap: 3.3.7
- JQuery: 3.1.1-1
Leyenda del diagrama:
- Morado: Vistas
- Verde: Controladores
- Azul: Repositorios
- Negro: Modelos
- Rojo: Servicios
- Azul claro: Seguridad

Guillermo Martín García | g.martingarcia@alumnos.urjc.es
Realización de la aplicación básica de la aplicación y posterior actualización de todo. Modificación de los controladores y mapeado. Consulta y ayuda a los demás miembros del grupo.
Sergio Octavio Mancebo | s.octavio.2018@alumnos.urjc.es
Creación de las pantallas para la creación de los nuevos productos, botones especiales para el administrador y usuario. Submenu en el icono de login. Creación del pdf al finalizar la compra de uno de los productos de la tienda. Pantalla de creación/actualización de productos y gestión de los linkeos del header, footer y el resto de las pantallas correspondientes.
| Número | Descripción | Commit | Archivos |
|---|---|---|---|
| 1º | submenu creation in index.html | SubMenu | Index.html Style |
| 2º | Update template newProduct.html | Created template newProduct.html, Update template newProduct.html | newProdcut.html |
| 3º | Update pages and finished template product.html | Update pages and finished template product.html | product |
| 4º | Update template productsByFeatures.html | Update template productsByFeatures.html | productsByFeatures.html |
| 5º | Generated PDF | GeneratePDF | GeneratePDF |
Víctor López Rodríguez | v.lopezrodr@alumnos.urjc.es
Cambios en todas las vistas, linkeos entre las páginas, modificacion del navigation controller y correccion de errores.
Rodrigo Montilla Fernández | r.montilla.2019@alumnos.urjc.es
Creación de modelos, repositorios, servicios y arreglo de errores de código
Fernando Prieto Olías | f.prieto.2019@alumnos.urjc.es
Este miembro del equipo se encargó de ingresar todos los datos al loader.java: usuarios, roles, productos, marcas, tipo de productos, sus respectivas imágenes,... También se ha encargado de la documentación del README.md: las imágenes de las vistas y su navegación, elaborar los diagramas,... Cabe destacar que realizó los primeros commits sobre las templates de perfil, transacciones y seguridad pero no aparecen los commits en el Github.
https://codeurjc-daw-2021-22-webapp8.herokuapp.com/
Nombre de usuario: Jonathan
Contraseña: f
*Archivo yaml: https://github.com/CodeURJC-DAW-2021-22/webapp8/blob/main/backend/webandtech/api-docs/api-docs.yaml
*Documentación API REST: https://rawcdn.githack.com/CodeURJC-DAW-2021-22/webapp8/7dde1b87c7c046e7c02de58391e7e06e63f4adf8/backend/webandtech/api-docs/api-docs.html
-
Es necesaria la instalacion de docker y docker compose.
-
Abrir la terminal navegar hasta la carpeta Docker.
3.1. Windows: Escribir el comando: "docker-compose up --build".
3.2. Linux: Escribir el comando: "sudo docker-compose up --build".
-
Una vez finalizado el proceso de construcción de docker abrir el navegador y escribir:"https://localhost:8443/".
-
Una vez escrita te redirigida a la pantalla de inicio de la aplicacion: "https://localhost:8443/index" una vez se cargue estará lista para ser utilizada.
LINUX:
-
Clonar repositorio mediante git clone https://github.com/CodeURJC-DAW-2021-22/webapp8.git
-
Descargar Docker
-
Descargar Docker Compose
-
Navegar hasta la carpeta Docker
-
Ejecutar el comando: "chmod 777 create_image.sh"
-
Ejecutar el comando: "./create_image.sh"
Para implementar la aplicación en Heroku, debe seguir los siguientes pasos:
- Crea una cuenta en Heroku.
- Instale el paquete Heroku.
- Instalar experto.
- Abra cualquier shell de tipo "bash".
- Inicie sesión en Heroku usando el comando "heroku login".
- Use el comando "cd" hasta llegar a la carpeta "Docker".
- Ejecute el comando "./create_heroku_app.sh codeurjc-daw-2021-22-webapp8".
- Ejecute el comando "./deploy_heroku_app.sh codeurjc-daw-2021-22-webapp8".
- Abra su panel de Heroku, haga clic en el nuevo repositorio y luego haga clic en "Abrir aplicación".
Guillermo Martín García | g.martingarcia@alumnos.urjc.es
| Número | Descripción | Commit | Archivos |
|---|---|---|---|
| 1º | Añadir la base de la aplicación, archivos jwt y varias actualizaciones | Update app api | UserRestController |
| 2º | Borrado de cosas sobrantes y actualización de partes de la API | Update api | AdminRestController |
| 3º | Añadir rest security config | Update security api | LoginApiController |
| 4º | Actualización de varias partes de la app | Update app | pom.xml |
| 5º | Modificación de varias partes destacando product service | Update app | ProductService |
Sergio Octavio Mancebo | s.octavio.2018@alumnos.urjc.es
Sergio ha sido el encargado de realizar el controlador de UserRestControler, además de diseñar el Diagrama de Clases y redactar el README para esta Fase 3.
| Número | Descripción | Commit | Archivos |
|---|---|---|---|
| 1º | Implementación UserRestControler | Add UserRestControler | UserRestControler.java |
| 2º | Implementación UserRestControler | Add UserRestControler | UserRestControler.java |
| 3º | Implementación UserRestControler | Add UserRestControler | UserRestControler.java |
| 4º | Implementación UserRestControler | Add UserRestControler | UserRestControler.java |
| 5º | Implementación UserRestControler | Add UserRestControler | UserRestControler.java |
Víctor López Rodríguez | v.lopezrodr@alumnos.urjc.es
| Número | Descripción | Commit | Archivos |
|---|---|---|---|
| 1º | Modificar el product service para que funcione con API rest | Updates | ProductService |
| 2º | Modificacion del product rest controller | update productcrontroller | ProductsRestController |
| 3º | Modificacion del product rest controller | update productcrontroller | UserRestController |
| 4º | Modificacion del product rest controller | update productrestcontroller | ProductRepository |
| 5º | Modicicaciones para los productos | update API | RatingService |
Rodrigo Montilla Fernández | r.montilla.2019@alumnos.urjc.es
| Número | Descripción | Commit | Archivos |
|---|---|---|---|
| 1º | Añadir API REST User Model | API REST User Model | User |
| 2º | Añadir API REST Rol Model | API REST Rol Model | Rol |
| 3º | Añadir API REST Rating Model | API REST Rating Model | Rating |
| 4º | Añadir API REST Product Model | API REST Product Model | Product |
| 5º | Añadir API REST Order Model | API REST Order Model | Order |
Fernando Prieto Olías | f.prieto.2019@alumnos.urjc.es
| Número | Descripción | Commit | Archivos |
|---|---|---|---|
| 1º | Creacion de Dockerfile y dockerizacion de la app | add Dockerfile | Dockerfile |
| 2º | Creacion del contenedor de la app con docker-compose | add docker-compose | docker-compose.yml |
| 3º | Configuracion del pom para heroku | update pom | pom.xml |
| 4º | Configuracion de la base de datos para heroku | add DatabaseConfig | DatabaseConfig.java |
| 5º | Configuracion del puerto en application.properties para heroku | update application.properties | application.properties |



