Este proyecto es una aplicación web de una tienda en línea desarrollada con Spring Boot, utilizando Thymeleaf para la vista y Bootstrap 5 para la interfaz de usuario. Permite gestionar productos con funcionalidades CRUD (Crear, Leer, Actualizar y Eliminar).
- Java 17 con Spring Boot 3.x
- Maven para la gestión de dependencias
- Thymeleaf como motor de plantillas
- Bootstrap 5 para el diseño responsivo
- Jakarta Validation para validación de formularios
- Spring MVC para la gestión de rutas
demo/
│── src/main/java/com/ejemplo/demo/
│ ├── controllers/ # Controladores Spring MVC
│ ├── forms/ # Clases de formulario y validación
│ ├── DemoApplication.java # Clase principal de Spring Boot
│
│── src/main/resources/
│ ├── static/css/ # Archivos de estilos
│ │ ├── app.css
│ ├── templates/ # Vistas Thymeleaf
│ │ ├── fragments/ # Componentes reutilizables (header, footer)
│ │ │ ├── header.html
│ │ │ ├── footer.html
│ │ ├── home/ # Vistas principales
│ │ │ ├── index.html
│ │ │ ├── about.html
│ │ │ ├── contact.html
│ │ ├── product/ # Vistas de productos
│ │ │ ├── index.html
│ │ │ ├── show.html
│ │ │ ├── create.html
│── pom.xml # Archivo de configuración de Maven
│── README.md # Este archivo de documentación
git clone https://github.com/KevinQzG/SpringBootTutorials
cd demo
Si deseas crear un nuevo proyecto desde cero, puedes usar Spring Initializr con las siguientes configuraciones:
- Project: Maven
- Language: Java
- Spring Boot Version: 3.2.x
- Dependencias: Spring Web, Thymeleaf, Validation, Spring Data JPA (si se usa base de datos)
./mvnw spring-boot:run
En Windows usa:
mvnw.cmd spring-boot:run
- Inicio: http://localhost:8080
- Productos: http://localhost:8080/products
- Crear Producto: http://localhost:8080/products/create
Página principal con introducción a la tienda.
Página "Sobre Nosotros" con información de la empresa.
Gestión de productos:
- Listado de productos con imágenes.
- Vista detallada de cada producto.
- Creación de productos con validaciones.
Se usa Jakarta Validation
para validar que el nombre y precio sean correctos.
@NotEmpty(message = "El nombre del producto es obligatorio")
private String name;
@NotNull(message = "El precio es obligatorio")
@Positive(message = "El precio debe ser mayor a 0")
private Double price;






1️⃣ Error 500 - Internal Server Error
- Asegúrate de que el formulario envía datos correctos y cumple con las validaciones.
2️⃣ Error 405 - Method Not Allowed
- Verifica que la petición HTTP (
POST
,GET
) es correcta en el formulario.
3️⃣ Puerto en uso (Error al iniciar)
lsof -i :8080
kill -9 <PID>
¡Las contribuciones son bienvenidas! Para mejorar el proyecto:
- Realiza un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature-nueva
). - Realiza tus cambios y haz commit (
git commit -m 'Descripción'
). - Sube los cambios (
git push origin feature-nueva
). - Abre un Pull Request y explica qué mejoras hiciste.
Este proyecto está bajo la licencia MIT. Puedes usarlo y modificarlo libremente.
📌 Desarrollado con ❤️ por Kevin Quiroz