Skip to content

certidevs/g2_testing

Repository files navigation

🛒 BEZO$ - Tienda Online

🧰 Tecnologías utilizadas

Java Spring Boot Maven Thymeleaf Spring Security Spring Data JPA H2 Database JUnit Selenium JaCoCo SonarQube Docker GitHub Actions

Estado Licencia

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.

📌 Descripción

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

👥 Integrantes

🚀 Funcionalidades principales

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.

📁 Estructura del proyecto

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.md

✅ Requisitos Previos

Antes de ejecutar el proyecto, asegúrate de tener instalado:

  • ☕ Java 25 o superior
  • 📦 Maven o Maven Wrapper
  • 🌱 Git
  • 🐳 Docker, opcional
  • 🌐 Navegador web

⚙️ Instalación y ejecución

Clona el repositorio:

git clone https://github.com/certidevs/g2_testing.git
cd g2_testing

Ejecuta la aplicación en Linux o macOS:

./mvnw spring-boot:run

Ejecuta la aplicación en Windows:

mvnw.cmd spring-boot:run

Una vez iniciada, la aplicación estará disponible en:

http://localhost:9001

🗄️ Base de datos H2

El proyecto utiliza una base de datos H2 en memoria.

Consola H2:

http://localhost:9001/h2-console

Configuración de conexión:

JDBC URL: jdbc:h2:mem:ecommerce_db
Driver: org.h2.Driver

🧭 Rutas principales

Algunas rutas principales de la aplicación son:

/products
/categories
/purchases
/reviews
/users

También existen módulos relacionados con direcciones, favoritos, marcas, autenticación y chatbot.

📚 Documentación API

El proyecto incluye dependencia de SpringDoc OpenAPI, por lo que la documentación Swagger puede consultarse en:

http://localhost:9001/swagger-ui/index.html

🧪 Ejecución de pruebas

Para ejecutar las pruebas del proyecto:

./mvnw test

En Windows:

mvnw.cmd test

El proyecto incluye suites de pruebas para:

  • 🧩 Controladores
  • 🗃️ Repositorios
  • ⚙️ Servicios
  • 📦 DTOs
  • 🖥️ Pruebas de interfaz con Selenium
  • 🧪 Suite general de pruebas

📊 Cobertura con JaCoCo

Para ejecutar pruebas y generar el reporte de cobertura:

./mvnw clean test

El reporte se genera en:

target/site/jacoco/index.html

🔎 SonarQube local

El proyecto incluye configuración para levantar SonarQube con Docker Compose.

Levantar SonarQube:

docker compose -f compose.sonar.yaml up -d

Acceder a SonarQube:

http://localhost:9000

Detener SonarQube:

docker compose -f compose.sonar.yaml down

Detener y borrar los volúmenes:

docker compose -f compose.sonar.yaml down -v

🐳 Docker

Construir la imagen Docker:

docker build -t g2-testing .

Ejecutar el contenedor:

docker run -p 8080:8080 g2-testing

Acceder a la aplicación en Docker:

http://localhost:8080

🔁 Integración continua

El 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/

📌 Estado del proyecto

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.

🤝 Contribuciones

Este proyecto fue desarrollado por los integrantes del grupo como parte de una práctica formativa. Actualmente no está orientado a contribuciones externas.

📄 Licencia

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.

About

Grupo 2 Testing java

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors