Sistema backend para la administración integral de productos, ventas y clientes en un bazar. Permite gestionar el stock, registrar ventas, calcular totales y obtener métricas operativas clave. El proyecto expone 19 endpoints y utiliza arquitectura multicapa orientada a buenas prácticas corporativas.
CRUD completo de productos y gestión de stock.
CRUD completo de clientes.
Registro de ventas y sus detalles (sin update).
Cálculo automático del total de la venta, subtotales y cantidades.
Descuento de stock solo si hay disponibilidad.
Búsqueda de productos con stock menor a 5.
Obtención del listado de productos de una venta específica.
Reportes operativos:
Monto total y cantidad de ventas en un día.
Venta con monto más alto (incluye cliente y cantidad de productos).
Requisitos previos:
JDK 17+
Maven
MySQL (o tu motor configurado)
Clonar el repositorio.
Configurar application.properties con la conexión a la base de datos.
mvn clean install
mvn spring-boot:run
El proyecto expone 19 endpoints agrupados en:
Productos: CRUD, búsqueda, edición, baja, productos con stock < 5.
Clientes: CRUD, búsqueda individual y general.
Ventas: creación, listado completo, detalle de una venta, reportes diarios, venta más alta.
Arquitectura multicapa corporativa:
controller
service
repository
dto
model
1 Producto ↔ N DetalleVenta
1 Venta ↔ N DetalleVenta
1 Venta ↔ 1 Cliente
Patrones utilizados:
DTO para desacoplar modelos y payloads.
Lógica de negocio concentrada en services.
Persistencia controlada vía Spring Data JPA.
Validaciones mínimas: el sistema solo verifica stock disponible antes de descontar.
No implementa aún manejo de excepciones personalizado.
El front-end previsto será simple, profesional y adaptado a las funciones principales.
Versión sugerida:
Spring Boot: 3.5.7
Java: 17
Base de datos: MySQL 8+