G2 Java es una aplicación web desarrollada con Spring Boot que implementa una plataforma de comercio electrónico. El sistema permite la gestión de usuarios, productos, categorías, compras, favoritos y reseñas, proporcionando una experiencia completa de tienda online.
La aplicación ha sido diseñada siguiendo la arquitectura MVC (Model-View-Controller) y utiliza Spring Security para la autenticación y autorización de usuarios.
- Aplicar el desarrollo de aplicaciones web con Spring Boot.
- Implementar persistencia de datos mediante JPA/Hibernate.
- Gestionar la autenticación y autorización de usuarios.
- Diseñar una aplicación siguiendo buenas prácticas de arquitectura software.
- Utilizar una base de datos relacional para almacenar la información del sistema.
- Java 25
- Spring Boot 4.0.5
- Spring MVC
- Spring Security
- Spring Data JPA
- Hibernate
- Lombok
- Thymeleaf
- Bootstrap 5.3.3
- Font Awesome 7.2
- HTML5
- CSS3
- H2 Database (Base de datos en memoria)
- Maven
El proyecto sigue una arquitectura por capas:
src/main/java/com/demo
│
├── config
│ ├── SecurityConfig
│ ├── WebConfig
│ └── DataInitializer
│
├── controller
│ ├── AuthController
│ ├── UserController
│ ├── ProductController
│ ├── CategoryController
│ ├── PurchaseController
│ ├── PurchaseLineController
│ ├── ReviewController
│ └── LikeController
│
├── dto
│ ├── RegisterForm
│ └── UserStatsDTO
│
├── model
│ ├── User
│ ├── Product
│ ├── Category
│ ├── Purchase
│ ├── PurchaseLine
│ ├── Review
│ └── Like
│
├── repository
│ └── Repositorios JPA
│
├── service
│ └── Lógica de negocio
│
└── G2JavaApplication
Representa los usuarios registrados en el sistema.
Funciones:
- Registro
- Inicio de sesión
- Gestión del perfil
- Realización de compras
- Publicación de reseñas
- Gestión de favoritos
Representa los artículos disponibles en la tienda.
Información típica:
- Nombre
- Descripción
- Precio
- Imagen
- Categoría
Permite clasificar los productos para facilitar la navegación.
Representa un pedido realizado por un usuario.
Contiene los productos incluidos en una compra.
Permite que los usuarios valoren productos.
Gestiona los productos marcados como favoritos por cada usuario.
La aplicación utiliza Spring Security para implementar:
- Autenticación de usuarios.
- Inicio y cierre de sesión.
- Protección de rutas privadas.
- Control de acceso basado en roles.
- Restricción de operaciones administrativas.
- Registro de usuarios.
- Inicio de sesión.
- Gestión de perfiles.
- Control de acceso.
- Crear productos.
- Modificar productos.
- Eliminar productos.
- Consultar catálogo.
- Crear categorías.
- Editar categorías.
- Eliminar categorías.
- Filtrar productos.
- Realizar pedidos.
- Consultar historial de compras.
- Gestionar líneas de compra.
- Añadir productos a favoritos.
- Eliminar favoritos.
- Consultar lista de favoritos.
- Publicar valoraciones.
- Consultar opiniones.
- Asociar reseñas a productos.
El proyecto utiliza H2 Database en memoria.
Configuración actual:
spring.application.name=g2_java
spring.datasource.url=jdbc:h2:mem:g2_java_db
spring.datasource.driver-class-name=org.h2.Driver
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.h2.console.enabled=true
spring.servlet.multipart.max-file-size=10MB- La base de datos se crea automáticamente al iniciar la aplicación.
- Todos los datos se eliminan al detener la aplicación.
- Adecuada para desarrollo y pruebas.
- Consola H2 habilitada.
Una vez iniciada la aplicación:
http://localhost:8080/h2-console
Configuración:
JDBC URL: jdbc:h2:mem:g2_java_db
User Name: sa
Password:
- JDK 25
- Maven 3.9 o superior
git clone <url-del-repositorio>
cd g2_javamvn clean installmvn spring-boot:runo
java -jar target/g2_java-0.0.1-SNAPSHOT.jarEjecutar todas las pruebas:
mvn test- spring-boot-starter-webmvc
- spring-boot-starter-security
- spring-boot-starter-data-jpa
- spring-boot-starter-thymeleaf
- H2 Database
- Bootstrap
- Font Awesome
- WebJars
- Lombok
- Spring Security Test
- Spring Data JPA Test
- Spring MVC Test
- Thymeleaf Test
Puede:
- Registrarse.
- Iniciar sesión.
- Consultar productos.
- Añadir favoritos.
- Realizar compras.
- Escribir reseñas.
Puede:
- Gestionar productos.
- Gestionar categorías.
- Gestionar usuarios.
- Supervisar compras.
- Administrar el contenido de la plataforma.
| Acción | Visitante | Usuario | Admin |
|---|---|---|---|
| Ver Tienda, productos y reseñas | Sí | Sí | Sí |
| Escribir reseñas | No | Sí | Sí |
| Crear y gestionar Compras | No | Sí | Sí |
| Marcar favoritos | No | Sí | Sí |
| Crear/editar/desactivar productos, categorias y reseñas | No | No | Sí |
| Moderar reseñas y gestionar usuarios | No | No | Sí |
Durante el desarrollo de este proyecto se han trabajado los siguientes conceptos:
- Arquitectura MVC.
- Programación orientada a objetos.
- Persistencia con JPA/Hibernate.
- Seguridad con Spring Security.
- Gestión de dependencias con Maven.
- Integración de bases de datos.
- Desarrollo de aplicaciones web con Spring Boot.
- Uso de Thymeleaf para la generación dinámica de vistas.
Proyecto académico desarrollado por el Grupo 2 como práctica de desarrollo de aplicaciones Java utilizando Spring Boot.
Proyecto desarrollado con fines educativos y formativos.
Todos los derechos pertenecen a sus respectivos autores.