Sistema de Facturación Empresarial

Aplicación completa de gestión de facturación desarrollada con Java, Spring Boot y JPA. Implementación de APIs REST robustas para integración con sistemas externos.

Java 17 Spring Boot 3.1.5 JPA/Hibernate MySQL/H2 Maven
Demo Interactivo API Demo Documentación API Código Fuente

Características Principales

Sistema empresarial completo con arquitectura robusta

Arquitectura JPA

5 entidades con relaciones complejas, cascadas, y mapeo objeto-relacional completo.

Bases de Datos

Soporte para H2 (desarrollo) y MySQL (producción) con scripts SQL completos.

APIs REST

Repositorios JPA con consultas personalizadas, JPQL y métodos derivados.

Demo Interactivo

Entidades del Sistema

📦 Categorías

Gestión de categorías de productos con validaciones

🛍️ Productos

Catálogo de productos con precios, stock y categorías

👥 Clientes

Registro de clientes con información de contacto

📋 Pedidos

Sistema de pedidos con estados y direcciones de envío

📝 Items de Pedido

Detalle de productos en cada pedido con cantidades

APIs Disponibles

GET /api/categories - Listar categorías
GET /api/products - Listar productos
GET /api/customers - Listar clientes
GET /api/orders - Listar pedidos
POST /api/orders - Crear pedido

Detalles Técnicos

Configuración JPA

  • Relaciones OneToMany y ManyToOne
  • Cascadas y Orphan Removal
  • Fetch Types (LAZY/EAGER)
  • Validaciones Bean Validation
  • Callbacks de ciclo de vida

Base de Datos

  • Scripts SQL completos (schema + data)
  • Integridad referencial
  • Índices para optimización
  • Datos de prueba precargados
  • Configuración dual (H2/MySQL)

Instalación y Ejecución

Prerrequisitos
  • Java 17 o superior
  • Maven 3.6+
  • IDE (IntelliJ IDEA, Eclipse, VS Code)
Pasos de Instalación
# Clonar el repositorio
git clone https://github.com/yanelyapura/FacturacionPrimeraEntrega-Yapura.git

# Compilar el proyecto
mvn clean install

# Ejecutar la aplicación
mvn spring-boot:run
Acceso a la Aplicación
  • Servidor: http://localhost:8080
  • Consola H2: http://localhost:8080/h2-console
  • JDBC URL: jdbc:h2:mem:testdb
  • Usuario: sa
  • Contraseña: (dejar en blanco)