Nos gusta que no se malgasten recursos, por esta razón nuestra app favorece la rehutilización de los productos, frente a deshacerse de ellos y adquirir nuevos productos.
Nombre | Github | |
---|---|---|
Jesús Barcia Ares | [email protected] | jbarcia2019 |
Sergio Gómez García | [email protected] | sergio-gomezg |
Juan Diez del Corral Ramos | [email protected] | Juandiezdc |
Iván Martín Gómez | [email protected] | IvanmgmSoftwareEngineering |
https://trello.com/b/CO5xGXpN/daw-2021-2022
- Tienda de compra/venta de productos de segunda mano.
- Usuarios: Podremos encontrar tres tipos de usuarios, no registrados, registrados y administradores.
- Anuncio: Está relacionado con los usuarios, ya que estos serán los que podrán poner artículos a la venta o comprar los de otros usuarios.
- Reportes: Los usuarios pueden realizar reportes de anuncios o de usuarios fraudulentos. Para ello tendrán un cuadro de diálogo en el que especificar el motivo, un email de contacto y subir alguna imagen como prueba del reporte.
- Categorías: Podremos encontrar las distintas categorías de los productos que se encuentran anunciados.
- Usuarios no registrados: Podrán ver los artículos puestos a la venta, pero no podrán realizar ni compras ni ventas.
- Usuarios registrados: Podrán ver los artículos puestos a la venta, y además podrán vender un producto o comprar el de otro usuario.
- Administradores: Podrán ver los artículos puestos a la venta, los usuarios registrados y podrán eliminar productos y usuarios.
- Imágenes de perfil: Los usuarios registrados y administradores podrán establecer una imagen de perfil.
- Imágenes de productos: Los usuarios registrados podrán subir imágenes junto a los productos que pongan a la venta.
- Gráfica ranking usuarios con más ventas: se podrá consultar los usuarios que más ventas han realizado.
- Gráfico peores usuarios: (visible para el administrador) se podrá consultar que usuarios han recibido más reportes y en el caso de que sean malos usuarios se pueda suspender su cuenta.
- Envío de correos electrónicos: Podremos comunicarnos con los usuarios a través del uso del correo electrónico para realizar la compra-venta.
- Localización por mapas: Podremos ver la ubicación aproximada del producto que queremos adquirir.
- Búsqueda de artículos por una o varias etiquetas de categorías
- La web recomendará a los usuarios productos similares a los adquiridos anteriormente
Los usuarios podrán rellenar un formulario de denuncia en el caso de considerar un producto inapropiado
Se podrá ver un grafico con el ranking de usuarios que mas han vendido tanto mensualmente como su histórico
Los usuarios no registrados verán solo los botones verdes, al igual que los registrados si el producto es de otro usuario o todos los botones si es un artículo propio, al igual que el administrador
Registro funcionando: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/b7a6c7414f36a81cffe26e1f2402954133d6b0eb
Envío de correos electrónicos: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/407ff4441023080f7d8c861946d124cefd6252cc
Mapas: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/5eb75b47eb04021b5d838486af7ae37ba2f6034a
Encriptado de las contrase?as: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/407ff4441023080f7d8c861946d124cefd6252cc
Certificado jks propio: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/407ff4441023080f7d8c861946d124cefd6252cc
https://github.com/CodeURJC-DAW-2021-22/webapp4/blame/main/backend/src/main/java/es/codeurjc/wallypop/controller/WallypopWebController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/main/backend/src/main/java/es/codeurjc/wallypop/security/WebSecurityConfig.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/main/backend/src/main/resources/templates/post.html
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/main/backend/src/main/java/es/codeurjc/wallypop/service/MapService.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/main/backend/src/main/java/es/codeurjc/wallypop/controller/UserController.java
He participado en la implementación de la funcionalidad de añadir nuevos art?culos (formulario, botón enviar) a la base de datos.
He participado en la implementación de la funcionalidad de cargar artículos almacenados en la base de datos para mostarlos al usuario.
Cargar datos desde la base de datos en orden inverso: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/92fb7e7b8669327e66fa8310b898769463b86599
Mensaje enhorabuena y solución de problemas: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/67e119a898c13a5df04d1d618d903c2925845e22
Quitar botones paginación simple, añadir nuevo botón "Más resultados": https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/92fb7e7b8669327e66fa8310b898769463b86599
Añadir progress bar: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/ac017cc0bb688609f34474c268814cb150d0620b
Añadir +5 categorías y +11 art?culos a la base de datos (paso previo a la implementación de la paginación con AJAX) https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/baffa3426997521405ec57ceafe75c54dfc139d4
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Article_3/backend/src/main/java/es/codeurjc/wallypop/controller/WallypopWebController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Article_3/backend/src/main/java/es/codeurjc/wallypop/controller/DataBaseUsage.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Article_3/backend/src/main/java/es/codeurjc/wallypop/service/ArticleService.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Article_3/backend/src/main/resources/templates/adcommercial.html
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Article_3/backend/src/main/resources/templates/yourcommercial.html
He añadido datos de ejemplo a la base de datos para comprobar el uso correcto del añadir y eliminar categorias
Modificar datos de los usuarios: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/d3dbf0034dfdcfc2c5706aa81e1e0deeec823bb2
Añadir y eliminar favoritos: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/14897b6be8888828be30363b54d2f03fbc9fdfed
Eliminar categorias a los articulos: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/904517997bea056f4d2d0dc36eef6df3f6f66815
Cargar articulos asociados a una categoria seleccionada en la pantalla principal: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/5fcf1532bf9264206142938235d82d0edfc26169
Mostrar categorias en la pantalla principal: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/aa713690a0fb9baac59ce4b22d1207591695d3eb
https://github.com/CodeURJC-DAW-2021-22/webapp4/blame/FIX_AND_NEW_IMPLEMENTATIONS/backend/src/main/java/es/codeurjc/wallypop/model/Category.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blame/FIX_AND_NEW_IMPLEMENTATIONS/backend/src/main/java/es/codeurjc/wallypop/controller/DataBaseUsage.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blame/FIX_AND_NEW_IMPLEMENTATIONS/backend/src/main/java/es/codeurjc/wallypop/controller/WallypopWebController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blame/FIX_AND_NEW_IMPLEMENTATIONS/backend/src/main/resources/templates/modifyDataUser.html
https://github.com/CodeURJC-DAW-2021-22/webapp4/blame/FIX_AND_NEW_IMPLEMENTATIONS/backend/src/main/resources/templates/index.html
He participado en la lista de reportes que debe salir de la base de datos para mostrarse al administrador
He participado en la visualizacion individual de los reportes que permite al administrador aceptarlo o rechazarlo
Rellenar formulario de reportes y enviarlo a la base de datos. https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/8c57c2277999f69edc5648367537af2456d0f960
Mostrar lista de reportes al administrador. https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/0ef1d4185c030ab3e1f5e6975f499d5cdb984df8
Visualizar Reporte completo.https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/9c32a53c28d3b50db5028c883ffdfad3bbd621b4
Funcionalidad de eliminar articlo reportado o eliminar reporte.https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/bed1f9db220cb8c52eb243809f2b63ca504b9b65
Añadir articlos favoritos a la lista de favoritos de un usuario.https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/019a78bcc6cadc81bc84c2144cedcc746f1c1bcd
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Favorites/backend/src/main/java/es/codeurjc/wallypop/controller/WallypopWebController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Favorites/backend/src/main/java/es/codeurjc/wallypop/service/FavoritesService.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Favorites/backend/src/main/resources/templates/VisualizaReporte.html
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Favorites/backend/src/main/resources/templates/reportesAdmin.html
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/FNI_Favorites/backend/src/main/resources/templates/formularioReporte.html
- JavaSE 17
- Spring Boot
- Docker (Base de datos PostgreSQL): docker run -d --name postgres-server -p 5433:5432 -e "POSTGRES_PASSWORD=password" postgres
- Docker Hub: docker run -d --publish 8443:8443 jesusbarcia/codeurjc-daw-2021-22-webapp4
- Heroku: https://codeurjc-daw-2021-22-webapp4.herokuapp.com/
- org.springframework.boot:
- spring-boot-starter-data-jpa
- spring-boot-starter-mustache
- spring-boot-starter-web
- spring-boot-starter-security
- spring-boot-devtools
- com.h2database:
- H2 (Sólo en el caso de que se ejecute la aplicación sobre H2, en lugar de sobre PostgreSQL)
- org.postgresql
- postgresql
- com.sun.mail:
- javax.mail (v1.6.2)
- Docker (Base de datos PostgreSQL): docker run -d --name postgres-server -p 5433:5432 -e "POSTGRES_PASSWORD=password" postgres
- Docker Hub: docker run -d --publish 8443:8443 jesusbarcia/codeurjc-daw-2021-22-webapp4
- Heroku: https://codeurjc-daw-2021-22-webapp4.herokuapp.com/
- admin: [email protected] 1234
- user: [email protected] 1234
Para crear la imagen docker y subirla a Docker Hub hemos creado un script (create_docker_image.sh) que se encarga de crear la imagen a partir del Dockerfile y subirla a Docker Hub con el nombre que le hemos pasado como parámetro.
Hemos creado un fichero docker-compose.yml para la ejecución de nuestra aplicación a partir de la imagen subida anteriormente a Docker Hub. Crea dos contenedores, uno para la aplicación y otro para la base de datos y sirve la web en el puerto 8443. También hay otro fichero docker-compose-local.yml que hace lo mismo que el anterior a excepción de que en lugar de descargar la imagen de Docker Hub la crea a partir de los ficheros que tenemos en local.
Hemos creado dos scripts, create_heroku_app.sh y deploy_heroku_app.sh. El primero se encarga de generar el contenedor en Heroku, crear la base de datos PostgreSQL y configurar las variables de entorno necesarias. El segundo se encarga de crear la imagen docker a partir del Dockerfile, subirla y desplegar la aplicación totalmente operativa.
He participado en la implementación de la funcionalidad de cambiar el estado de un anuncio (vendido/reservado) anuncios de la API REST.
He participado en la implementación de la funcionalidad de borrar/modificar anuncios de la API REST.
Realizado la modificación del diagrama de clases y templates para la FASE 3 (Ampliación del diagrama realizado en la FASE 2)
Creación controlador de artículos para la API REST: https: //github.com/CodeURJC-DAW-2021-22/webapp4/commit/403889779c7e5dff1cd256979f5b602195bde1fd
Primer intento de implementación del método utilizado para módificar un árticulo de la API REST: https: //github.com/CodeURJC-DAW-2021-22/webapp4/commit/9a26c9a8862acfa22b162017d402d5a9be4a57dc2
Primer intento de implementación del método utilizado para mostrar árticulos con métodos pageables de la API REST: https: //github.com/CodeURJC-DAW-2021-22/webapp4/commit/622b30cfc56a22f9672a7a4538964c316e27b4ab
Pagination con métodos pageables: https: //github.com/CodeURJC-DAW-2021-22/webapp4/commit/6180d875fab39accce19592a21444b4e120d7cea
Crear/borrar/modificar anuncios funciona: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/a114494b0cb46c89deadc08778fc66c3831ca2cc
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/API_Articles_Merge/backend/src/main/java/es/codeurjc/wallypop/controller/api/ArticleRestController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/API_Articles/backend/src/main/java/es/codeurjc/wallypop/service/ArticleService.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/API_Articles/backend/src/main/java/es/codeurjc/wallypop/repository/ArticleRepository.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/API_Articles/backend/src/main/java/es/codeurjc/wallypop/model/Article.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/tree/main/backend/src/main/java/es/codeurjc/wallypop/dto
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/main/backend/src/main/java/es/codeurjc/wallypop/security/RestSecurityConfig.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/main/backend/src/main/java/es/codeurjc/wallypop/controller/api/UserRestController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/main/backend/src/main/java/es/codeurjc/wallypop/controller/api/admin/AdminUserRestController.java
Creación de la api de reportes (GET, POST, PUT y DELETE para los reportes y/o los articulos reportados)
Añadir ficheros POSTMAN de Grafico y Reportes: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/46e16c22cf629a60cd824c4570c222ec3115a102
API del Grafico:https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/54ef9eb5e6a57b702cbab2a9667688aaa59f7c02
Descarga de archivos de reportes en API:https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/d43b39a463ac7630f6749d3b86ba384e6c8b6c46
API de Reportes:https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/51dee9c9c8f9386a10c6ada74051a1c6462bd9c3
Solucion de errores y adicion de metodos en los reportes:https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/e5b0ae058a9f5b87b4719a75c29617eb438dc413
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/develop/backend/src/main/java/es/codeurjc/wallypop/controller/api/GraphicRestController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/develop/backend/src/main/java/es/codeurjc/wallypop/controller/api/ReportRestController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blob/develop/backend/src/main/java/es/codeurjc/wallypop/service/ReportService.java
Creación de la api de categorias (GET, POST, PUT y DELETE para la informacion de la categorias y, GET, POST y DELETE para las imagenes de las categorias)
Añadir ficheros POSTMAN de favoritos y categorias: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/d4edb9fe7892a78cb67b54265e9bc91832f52395
Api de categorias: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/2323f112cca16532577c1fd26e728f8bf3d8cfb4
Api de favoritos: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/ce44346df678963dc53cd22e0a999200664552dc
Metodos para imagenes de categorias: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/ed7585802a7d125d585268e30355f805ad31d039
Añadir favorito si no está y eliminar favorito si está con el metodo POST: https://github.com/CodeURJC-DAW-2021-22/webapp4/commit/3004e9de7f6ed5dbc135c2f6f747a257e04ba106
https://github.com/CodeURJC-DAW-2021-22/webapp4/blame/main/backend/src/main/java/es/codeurjc/wallypop/controller/api/admin/AdminCategoryRestController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blame/main/backend/src/main/java/es/codeurjc/wallypop/controller/api/admin/AdminFavoritesRestController.java
https://github.com/CodeURJC-DAW-2021-22/webapp4/blame/main/backend/src/main/java/es/codeurjc/wallypop/service/CategoryService.java
Para poder desarrollar la aplicación hemos necesitado de Node.js, Angular CLI, Java, Maven. Hemos usado las librerias de HighChart para poder mostrar los gráficos y la de Leaflet para poder mostrar el mapa.
- Docker (Base de datos PostgreSQL): docker run -d --name postgres-server -p 5432:5432 -e "POSTGRES_PASSWORD=password" postgres
- Docker Hub: docker run -d --publish 8443:8443 jesusbarcia/codeurjc-daw-2021-22-webapp4
- Heroku: https://codeurjc-daw-2021-22-webapp4b.herokuapp.com/new/
- Heroku - angular: https://codeurjc-daw-2021-22-webapp4b.herokuapp.com/new/
- admin: [email protected] 1234
- user: [email protected] 1234
Para crear la imagen docker y subirla a Docker Hub hemos creado un script (create_docker_image.sh) que se encarga de crear la imagen a partir del Dockerfile y subirla a Docker Hub con el nombre que le hemos pasado como parámetro.
Hemos creado un fichero docker-compose.yml para la ejecución de nuestra aplicación a partir de la imagen subida anteriormente a Docker Hub. Crea dos contenedores, uno para la aplicación y otro para la base de datos y sirve la web en el puerto 8443. También hay otro fichero docker-compose-local.yml que hace lo mismo que el anterior a excepción de que en lugar de descargar la imagen de Docker Hub la crea a partir de los ficheros que tenemos en local.
Hemos creado dos scripts, create_heroku_app.sh y deploy_heroku_app.sh. El primero se encarga de generar el contenedor en Heroku, crear la base de datos PostgreSQL y configurar las variables de entorno necesarias. El segundo se encarga de crear la imagen docker a partir del Dockerfile, subirla y desplegar la aplicación totalmente operativa.