Proyecto desarrollado en equipo como práctica de testing en Java.
Consiste en una aplicación web de tienda online tipo e-commerce, donde los usuarios pueden consultar productos, categorías, compras, reseñas, favoritos y otros elementos relacionados con una tienda digital.
La aplicación simula una tienda online sencilla, similar a plataformas como Amazon o Zalando, pero con una estructura más simple.
El objetivo principal del proyecto es aplicar buenas prácticas de desarrollo con Spring Boot, persistencia de datos, vistas web con Thymeleaf y diferentes tipos de pruebas automatizadas.
El proyecto incluye funcionalidades relacionadas con:
- 🛍️ Gestión de productos
- 🗂️ Gestión de categorías
- 🏷️ Gestión de marcas
- 👤 Gestión de usuarios
- 🧾 Gestión de compras
- ⭐ Gestión de reseñas
- ❤️ Gestión de favoritos
- 📍 Gestión de direcciones
- 🤖 Chatbot
- 🔐 Seguridad y autenticación
- 🧪 Pruebas unitarias, de integración y de interfaz
Productos
- Permite visualizar y gestionar productos de la tienda, incluyendo información como nombre, descripción, precio, stock, categoría y marca.
Categorías
- Organiza los productos en grupos para facilitar la navegación dentro del catálogo.
Compras
- Registra las compras realizadas por los usuarios, incluyendo producto, cantidad, precio unitario y total.
Reseñas
- Permite que los usuarios dejen valoraciones y comentarios sobre los productos.
Usuarios
- Incluye gestión de usuarios con roles, diferenciando entre usuarios normales y administradores.
Favoritos
- Permite marcar productos como favoritos.
Direcciones
- Permite asociar direcciones de envío a los usuarios.
Chatbot
- Incluye una sección de chatbot como funcionalidad adicional dentro de la aplicación.
g2_testing/
├── .github/
│ └── workflows/
│ ├── selenium.yml
│ ├── sonar.yml
│ └── tests.yml
├── .mvn/
│ └── wrapper/
├── docs/
│ ├── PROYECTO_G2_TIENDA.md
│ └── sonar.png
├── sonar/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── ecommerce/
│ │ │ ├── config/
│ │ │ ├── controller/
│ │ │ ├── dto/
│ │ │ ├── model/
│ │ │ ├── repository/
│ │ │ ├── service/
│ │ │ └── G2TestingApplication.java
│ │ └── resources/
│ │ ├── static/
│ │ │ ├── css/
│ │ │ ├── images/
│ │ │ └── js/
│ │ ├── templates/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── ecommerce/
│ ├── controller/
│ ├── dto/
│ ├── repository/
│ ├── service/
│ ├── ui/
│ ├── AllSuite.java
│ ├── ControllerTestsSuite.java
│ ├── RepositoryTestsSuite.java
│ ├── SeleniumTestsSuite.java
│ └── G2TestingApplicationTests.java
├── uploads/
├── Dockerfile
├── compose.sonar.yaml
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.mdAntes de ejecutar el proyecto, asegúrate de tener instalado:
- ☕ Java 25 o superior
- 📦 Maven o Maven Wrapper
- 🌱 Git
- 🐳 Docker, opcional
- 🌐 Navegador web
Clona el repositorio:
git clone https://github.com/certidevs/g2_testing.git
cd g2_testingEjecuta la aplicación en Linux o macOS:
./mvnw spring-boot:runEjecuta la aplicación en Windows:
mvnw.cmd spring-boot:runUna vez iniciada, la aplicación estará disponible en:
http://localhost:9001El proyecto utiliza una base de datos H2 en memoria.
Consola H2:
http://localhost:9001/h2-consoleConfiguración de conexión:
JDBC URL: jdbc:h2:mem:ecommerce_db
Driver: org.h2.DriverAlgunas rutas principales de la aplicación son:
/products
/categories
/purchases
/reviews
/usersTambién existen módulos relacionados con direcciones, favoritos, marcas, autenticación y chatbot.
El proyecto incluye dependencia de SpringDoc OpenAPI, por lo que la documentación Swagger puede consultarse en:
http://localhost:9001/swagger-ui/index.htmlPara ejecutar las pruebas del proyecto:
./mvnw testEn Windows:
mvnw.cmd testEl proyecto incluye suites de pruebas para:
- 🧩 Controladores
- 🗃️ Repositorios
- ⚙️ Servicios
- 📦 DTOs
- 🖥️ Pruebas de interfaz con Selenium
- 🧪 Suite general de pruebas
Para ejecutar pruebas y generar el reporte de cobertura:
./mvnw clean testEl reporte se genera en:
target/site/jacoco/index.htmlEl proyecto incluye configuración para levantar SonarQube con Docker Compose.
Levantar SonarQube:
docker compose -f compose.sonar.yaml up -dAcceder a SonarQube:
http://localhost:9000Detener SonarQube:
docker compose -f compose.sonar.yaml downDetener y borrar los volúmenes:
docker compose -f compose.sonar.yaml down -vConstruir la imagen Docker:
docker build -t g2-testing .Ejecutar el contenedor:
docker run -p 8080:8080 g2-testingAcceder a la aplicación en Docker:
http://localhost:8080El repositorio incluye workflows de GitHub Actions para automatizar procesos como:
- ✅ Ejecución de pruebas
- 🖥️ Pruebas Selenium
- 🔎 Análisis con Sonar
Los workflows se encuentran en:
.github/workflows/Proyecto académico en desarrollo, enfocado en la construcción de una aplicación e-commerce con énfasis en pruebas automatizadas, calidad de código e integración continua.
Este proyecto fue desarrollado por los integrantes del grupo como parte de una práctica formativa. Actualmente no está orientado a contribuciones externas.
Este proyecto está bajo la licencia MIT.
Puedes usar, copiar, modificar y distribuir este software de forma libre, manteniendo el aviso de copyright y la licencia correspondiente.