Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoParts Express - Sistema de Gestión de Repuestos Automotrices

📋 Descripción

AutoParts Express es un sistema integral de gestión para tiendas de repuestos automotrices, desarrollado con Spring Boot 3.x y Thymeleaf. Incluye módulos completos para:

  • Gestión de Repuestos - CRUD con Factory Method Pattern
  • Gestión de Clientes - Registro y administración de clientes
  • Gestión de Proveedores - Control de proveedores
  • Sistema de Ventas - Ventas con Strategy y Decorator Patterns
  • Reportes y Estadísticas - Análisis de datos

🏗️ Arquitectura y Patrones de Diseño

El proyecto implementa múltiples patrones de diseño:

Patrones Implementados:

  • Factory Method - Creación dinámica de tipos de repuestos
  • Strategy Pattern - Cálculo de descuentos por múltiples criterios
  • Decorator Pattern - Servicios adicionales acumulables en ventas
  • Singleton Pattern - Configuración centralizada
  • Template Method - Operaciones reutilizables
  • DAO Pattern - Acceso a datos con JPA

🚀 Tecnologías

Backend:

  • Java 21
  • Spring Boot 4
  • Spring Data JPA
  • Hibernate
  • PostgreSQL
  • Maven

Frontend:

  • Thymeleaf
  • Bootstrap 5
  • Bootstrap Icons
  • CSS3 personalizado
  • JavaScript vanilla

Validación:

  • Jakarta Validation
  • Lombok

📦 Estructura del Proyecto

src/main/
├── java/com/autoparts/
│   ├── config/              - Configuración (Singleton)
│   ├── controller/          - Controladores REST
│   ├── exception/           - Manejo de excepciones
│   ├── model/
│   │   ├── dto/            - Data Transfer Objects
│   │   ├── entity/         - Entidades JPA
│   │   └── enums/          - Enumeraciones
│   ├── patterns/
│   │   ├── decorator/      - Patrón Decorator
│   │   ├── factory/        - Patrón Factory Method
│   │   ├── singleton/      - Patrón Singleton
│   │   ├── strategy/       - Patrón Strategy
│   │   └── template/       - Patrón Template Method
│   ├── repository/         - Repositorios JPA
│   ├── service/            - Lógica de negocio
│   └── util/               - Utilidades
├── resources/
│   ├── static/
│   │   ├── css/           - Estilos CSS
│   │   ├── js/            - JavaScript
│   │   └── images/        - Imágenes
│   └── templates/         - Vistas Thymeleaf
└── test/                  - Tests unitarios

🔌 Módulos Principales

1. Módulo de Repuestos

  • Tipos: Motor, Frenos, Eléctrico, Carrocería, Suspensión
  • Características:
    • Factory Method para crear tipos específicos
    • Búsqueda y filtrado avanzado
    • Gestión de stock
    • Estadísticas por categoría

2. Módulo de Ventas

  • Proceso: Cliente → Items → Servicios → Confirmar
  • Características:
    • Strategy Pattern para descuentos automáticos
    • Decorator Pattern para servicios adicionales
    • Cálculo de totales en tiempo real
    • Búsqueda dinámica con autocompletado

3. Módulo de Clientes

  • CRUD completo
  • Tipos: Retail, Frequent, Workshop, Wholesale
  • Búsqueda y filtrado

4. Módulo de Proveedores

  • CRUD con validaciones
  • Asociación con repuestos
  • Historial de compras

⚙️ Configuración Base de Datos

Requisitos:

  • PostgreSQL 12+
  • Base de datos: autoparts_db
  • Usuario: postgres
  • Contraseña: root

Archivo: application.properties

spring.datasource.url=jdbc:postgresql://localhost:5432/autoparts_db
spring.datasource.username=postgres
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

Nota: Los datos se persisten entre reinicios (ddl-auto=update)


🚀 Cómo Ejecutar

1. Compilación

mvn clean compile

2. Ejecución

mvn spring-boot:run

3. Acceso

URL: http://localhost:8081

4. Navegar

  • Inicio: Acceso a todos los módulos
  • Repuestos: Gestión de catálogo
  • Ventas: Sistema de ventas completo
  • Clientes: Administración de clientes
  • Proveedores: Control de proveedores

📊 Características Principales

Gestión de Repuestos

  • ✅ CRUD completo con Factory Method
  • ✅ 5 tipos diferentes de repuestos
  • ✅ Búsqueda multi-criterio
  • ✅ Gestión de stock
  • ✅ Estadísticas por categoría

Sistema de Ventas

  • ✅ Proceso multi-paso simplificado (una pantalla)
  • ✅ Descuentos automáticos (Strategy Pattern)
  • ✅ Servicios adicionales acumulables (Decorator Pattern)
  • ✅ Carrito de compras dinámico
  • ✅ Búsqueda con autocompletado
  • ✅ Cálculo de totales en tiempo real

Validaciones

  • ✅ Código único de repuestos
  • ✅ Stock nunca negativo
  • ✅ Precios válidos
  • ✅ Cliente activo requerido
  • ✅ Stock suficiente en venta

Interfaz Usuario

  • ✅ Bootstrap 5 responsivo
  • ✅ Navegación intuitiva
  • ✅ Mensajes de éxito/error
  • ✅ Validaciones en tiempo real
  • ✅ Diseño moderno y profesional

🎨 Diseño Visual

Esquema de Colores:

  • Primario: #667eea (Azul Indigo)
  • Secundario: #764ba2 (Púrpura)
  • Éxito: #10b981 (Verde)
  • Peligro: #ef4444 (Rojo)
  • Info: #3b82f6 (Azul)

Componentes Bootstrap:

  • Cards con efectos hover
  • Tablas responsivas
  • Botones con transiciones
  • Formularios validados
  • Alertas de usuario

🧪 Testing

# Ejecutar tests
mvn test

# Generar reporte de cobertura
mvn jacoco:report

📝 Notas Importantes

Patrones de Diseño Utilizados:

  1. Factory Method (AutoParts)

    • Crea diferentes tipos de repuestos dinámicamente
    • Extensible para nuevos tipos
  2. Strategy Pattern (Ventas - Descuentos)

    • Múltiples estrategias de descuento
    • Elige automáticamente la mejor
    • No acumulables
  3. Decorator Pattern (Ventas - Servicios)

    • Servicios adicionales acumulables
    • Composición sobre herencia
    • Escalable
  4. Singleton Pattern (Configuración)

    • Thread-safe
    • Acceso global a configuraciones

🔒 Seguridad

  • Validación en múltiples niveles
  • Sanitización de entrada
  • Manejo centralizado de excepciones
  • Transaccionalidad ACID en BD

📚 Documentación Adicional

Para más información sobre:

  • Arquitectura: Ver comentarios en clases Java
  • DTOs: Ver model/dto/
  • Patrones: Ver patterns/
  • Vistas: Ver templates/

👨‍💻 Desarrollador

Sistema desarrollado como proyecto final para demonstrar dominio de:

  • Spring Boot
  • Patrones de Diseño
  • JPA/Hibernate
  • Thymeleaf
  • Bootstrap
  • JavaScript vanilla

📄 Licencia

Este proyecto es de uso educativo.


Última actualización: Diciembre 2025

About

Trabajo final para el curso de diseño de patrones

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages