Este proyecto es un sistema de gestión de inventario desarrollado para demostrar el manejo de productos, categorías, usuarios y registros de auditoría. El sistema permite realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en productos, categorías y usuarios, además de registrar logs de auditoría para un seguimiento detallado de las acciones realizadas.
-
Backend: Spring Boot 3
- Spring Data JPA
- Spring Security con JWT
- Lombok
- Hibernate
- PostgreSQL
-
Frontend: React con Bootstrap
-
Base de Datos: PostgreSQL
-
Herramientas:
- IntelliJ IDEA (Licencia de estudiante)
- Gradle (Groovy)
- Git para control de versiones
-
Gestión de Productos:
- Listado de productos con filtros por nombre, categoría, disponibilidad, fabricante, marca y rango de precios.
- Paginación y búsqueda eficiente.
-
Gestión de Categorías:
- Creación, edición y eliminación de categorías de productos.
-
Gestión de Usuarios:
- Registro de nuevos usuarios con asignación de roles (Administrador, Almacenero, Consultor).
-
Seguridad:
- Autenticación y autorización basada en roles utilizando JWT.
-
Registro de Auditoría:
- Seguimiento detallado de acciones realizadas en el sistema.
- Java 17.0.1 o superior
- Gradle
- PostgreSQL
- Node.js
-
Clonar el repositorio:
git clone https://github.com/DouglasAC/InventorySpringBootReact cd backend -
Configurar la base de datos en
application.properties:spring.datasource.url=jdbc:postgresql://localhost:5432/inventario spring.datasource.username=tu_usuario spring.datasource.password=tu_contraseña spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true spring.jpa.properties.hibernate.jdbc.lob.enable_lazy_load_no_trans=true
-
Ejecutar el backend:
./gradlew bootRun
-
Navegar al directorio del frontend:
cd frontend -
Instalar las dependencias:
npm install
-
Ejecutar la aplicación:
npm start
-
Productos:
- GET
/api/productos: Listar productos - GET
/api/productos/{id}: Detalles de un producto - GET
/api/productos/filtros: Listar productos con filtros - POST
/api/productos: Crear producto - DELETE
/api/productos/{id}: Eliminar un producto - PUT
/api/productos/{id}: Actualizar un producto
- GET
-
Categorías:
- GET
/api/categorias: Listar categorías - GET
/api/categorias/{id}: Detalles de una categoría - POST
/api/categorias: Crear categoría - DELETE
/api/categorias/{id}: Eliminar una categoría - PUT
/api/categorias/{id}: Actualizar una categoría
- GET
-
Usuarios:
- POST
/api/usuarios/registrar: Registrar usuario
- POST
-
Logs de Auditoría:
- GET
/api/audit-logs: Listar logs de auditoría - GET
/api/audit-logs/filtros: Listar logs de auditoría con filtros
- GET