El objetivo principal de este proyecto es implementar un sistema de carrito de compras completamente funcional, que permita a los usuarios crear productos, eliminar productos, agregar productos a su carrito, modificar o eliminar su carrito, crear un nuevo carrito y completar compras en línea sin inconvenientes.
- Java JDK 17+
- Spring Framework
- Postman
- IDE: Eclipse, Apache NetBeans, IntelliJ IDEA o otro de su preferencia.
- Java 17
- Spring Framework
- Apache Maven
- JPA/Hibernate
- Unit test con Mockito
- Servicios REST
- Base de datos SQL
- Inicia Apache NetBeans.
- Ve a
File
>Open Project
. - Navega hasta la carpeta donde se encuentra el proyecto Java. Si es un proyecto Spring Maven, debería contener el archivo
pom.xml
. - Selecciona la carpeta del proyecto y haz clic en
Open Project
.
- Antes de ejecutar el proyecto, asegúrate de que todas las dependencias estén instaladas y que el proyecto esté compilado correctamente.
- Haz clic derecho sobre el nombre del proyecto en el panel de proyectos.
- Selecciona la opción
Clean and Build
. Esto descargará todas las dependencias necesarias y compilará el proyecto.
- Busca la clase principal del proyecto, que generalmente contiene el método
main
. - Haz clic derecho sobre esa clase y selecciona
Run File
, o utiliza el atajoShift + F6
.
- Haz clic derecho sobre el nombre del proyecto en el panel de proyectos.
- Selecciona la opción
Run
para ejecutar todo el proyecto.
Los endpoints se encuentran documentados en Postman y pueden ser consultados en detalle a traves del siguiente enlace: Documentacion Postman
Los endpoints se encuentran documentados en Swagger y se puede visualizar la documentacion una vez que es ejecutado el backend, a traves del siguiente enlace: Documentacion Swagger
-
GET
/cart/get
Recupera y devuelve una lista todos los carritos de compras almacenados en la base de datos. -
GET
/cart/get/{id}
Busca un carrito por su ID y devuelve el carrito correspondiente; si no se encuentra, devuelvenull
. -
POST
/cart/add
Crea un nuevo carrito, estableciendo su estado a ABIERTO, y guarda el carrito en la base de datos, respondiendo con un mensaje de éxito o error. -
PUT
/cart/update
Actualiza un carrito existente en la base de datos y devuelve el carrito actualizado. -
DELETE
/cart/delete/{id}
Elimina el carrito con el ID especificado de la base de datos, sin devolver contenido.
-
GET
/detail/{id}
Obtiene los productos asociados a un carrito específico utilizando su ID. Devuelve un conjunto de productos o un conjunto vacío si el carrito no se encuentra. -
POST
/detail/add
Agrega un producto a un carrito existente, respondiendo con el carrito actualizado o un mensaje de error. -
DELETE
/detail/remove
Elimina un producto del carrito especificado. Devuelve un mensaje de éxito junto con el carrito actualizado o un error si el producto no se encuentra. -
POST
/buy
Cambia el estado de un carrito a CERRADO cuando se finaliza la compra, devolviendo un mensaje de éxito o un error si el carrito no se encuentra.
-
GET
/get
Recupera y devuelve una lista de todos los productos almacenados en la base de datos. -
GET
/get/{id}
Busca un producto por su ID y lo devuelve; si no se encuentra, responde con un error 404. -
POST
/save
Crea y guarda un nuevo producto en la base de datos, devolviendo el producto creado con estado 201 (CREATED). -
PUT
/update/{id}
Actualiza un producto existente y devuelve un mensaje de éxito o un error si el producto no se encuentra. -
DELETE
/delete/{id}
Elimina el producto con el ID especificado, respondiendo con un mensaje de éxito o un error si el producto no se encuentra.
- El proyecto tiene una base de datos MySQL que corre en el puerto 3306, esta base de datos se encuentra descripta en el archivo
application.properties
y se llama productcard, la cual debe ser creada antes de ejecutar el proyecto Spring Boot. - Para crear y ejecutar la base de datos MySQL se deben seguir las instrucciones que se encuentran en la documentacion del proyecto que se puede consultar en el siguiente enlace.
Puedes consultar la documentación completa del proyecto en este enlace.
Estefanía Sassone