Perfulandia SPA es un sistema de gestión de pedidos, pagos, productos, clientes, usuarios y sucursales desarrollado en Java con Spring Boot. Este sistema simula el funcionamiento de una tienda de perfumes que opera con usuarios administrativos y clientes que realizan pedidos.
- Java 17
- Spring Boot
- Spring Data JPA
- H2 Database (en memoria)
- Lombok
- Maven
- Postman
- JUnit 5 + MockMvc (para pruebas unitarias)
- 📁
controller→ Controladores REST de cada entidad - 📁
services→ Lógica de negocio - 📁
repository→ Repositorios personalizados - 📁
jparepository→ Repositorios JPA (JpaRepository) - 📁
model→ Entidades JPA - 📁
test/controller→ Pruebas unitarias de cada controlador
Se probaron los endpoints principales de:
- Cliente
- Usuario
- Sucursal
- Producto
- Pedido
- Pago
Se implementaron pruebas unitarias completas para todos los controladores del sistema:
| Controlador | Estado |
|---|---|
ClienteController |
✅ Completado |
ProductoController |
✅ Completado |
PagoController |
✅ Completado |
PedidoController |
✅ Completado |
SucursalController |
✅ Completado |
UsuarioController |
✅ Completado |
- Crear una sucursal.
- Crear varios productos (perfumes).
- Crear un usuario asociado a esa sucursal (trabajador).
- Crear un cliente asociado a la misma sucursal.
- Crear un pedido con productos asociados al cliente.
- Registrar un pago para ese pedido.
- Consultar el total generado automáticamente.
- Consultar historial de compras del cliente.
- URL:
jdbc:h2:mem:testdb - Usuario:
sa - Contraseña: (dejar en blanco)
- Consola: http://localhost:8080/h2-console
- Solo se aceptan productos tipo perfume.
- Los totales se calculan automáticamente al crear pedidos y pagos.
- El historial de compras del cliente se actualiza cada vez que se registra una nueva compra.
- Todas las relaciones JPA están correctamente implementadas con anotaciones como
@ManyToOne,@OneToOne,@ManyToMany.
Proyecto académico realizado por:
- Cristóbal Segovia
- Felipe Espinoza
- Bastian Sepúlveda