consultoria-as f395d67136 Initial commit: Sistema Autoparts DB
- Base de datos SQLite con información de vehículos
- Dashboard web con Flask y Bootstrap
- Scripts de web scraping para RockAuto
- Interfaz CLI para consultas
- Documentación completa del proyecto

Incluye:
- 12 marcas de vehículos
- 10,923 modelos
- 10,919 especificaciones de motores
- 12,075 combinaciones modelo-año-motor
2026-01-19 08:45:03 +00:00
2026-01-19 08:45:03 +00:00
2026-01-19 08:45:03 +00:00

Autoparts DB

Sistema completo de gestión de base de datos de vehículos y autopartes con dashboard web, herramientas de web scraping y múltiples interfaces de consulta.

Descripción

Autoparts DB es una solución integral para la gestión de información de vehículos que incluye:

  • Base de datos SQLite normalizada con información de marcas, modelos, motores y años
  • Dashboard web moderno y responsivo para consultar y explorar datos
  • Herramientas de web scraping para recopilar datos de RockAuto.com
  • Interfaces de línea de comandos (CLI) y programática
  • Scripts de utilidad para gestión y mantenimiento de datos

Estadísticas de la Base de Datos

Elemento Cantidad
Marcas 12
Modelos 10,923
Motores 10,919
Combinaciones modelo-año-motor 12,075

Tecnologías Utilizadas

Backend

  • Python 3 - Lenguaje principal
  • SQLite 3 - Base de datos
  • Flask 2.3.3 - Framework web
  • BeautifulSoup4 - Web scraping
  • requests - HTTP client
  • lxml - Parser XML/HTML

Frontend

  • HTML5 - Estructura
  • Bootstrap 5.3.0 - Framework CSS
  • JavaScript (ES6+) - Lógica cliente
  • Font Awesome 6.0.0 - Iconos

Estructura del Proyecto

Autopartes/
├── vehicle_database/           # Sistema principal de base de datos
│   ├── sql/
│   │   └── schema.sql          # Esquema de la base de datos
│   ├── scripts/
│   │   ├── database_manager.py # Gestión de la BD
│   │   ├── query_interface.py  # Interfaz CLI
│   │   └── csv_importer.py     # Importador CSV
│   ├── data/
│   │   ├── brands.csv          # Datos de marcas
│   │   ├── engines.csv         # Datos de motores
│   │   └── models.csv          # Datos de modelos
│   ├── vehicle_database.db     # Base de datos SQLite
│   └── setup.sh                # Script de inicialización
│
├── dashboard/                   # Interfaz web
│   ├── server.py               # Backend Flask
│   ├── index.html              # Frontend HTML
│   ├── dashboard.js            # Lógica JavaScript
│   └── start_dashboard.sh      # Script de inicio
│
├── vehicle_scraper/            # Herramientas de web scraping
│   ├── rockauto_scraper.py     # Scraper RockAuto
│   ├── rockauto_scraper_v2.py  # Scraper mejorado
│   ├── scrape_toyota.py        # Scraper Toyota
│   ├── scrape_nissan_ford_chevrolet.py
│   └── manual_input.py         # Ingreso manual
│
├── add_*.py                    # Scripts para agregar datos
├── remove_*.py                 # Scripts de limpieza
└── QUICK_START.sh              # Guía rápida de inicio

Instalación

Requisitos Previos

  • Python 3.8 o superior
  • pip (gestor de paquetes de Python)

Pasos de Instalación

  1. Clonar el repositorio

    git clone https://git.consultoria-as.com/[usuario]/Autoparts-DB.git
    cd Autoparts-DB
    
  2. Instalar dependencias

    pip install flask requests beautifulsoup4 lxml
    
  3. Inicializar la base de datos (opcional - ya incluye datos)

    cd vehicle_database
    ./setup.sh
    

Uso

Iniciar el Dashboard Web

cd dashboard
python3 server.py

El dashboard estará disponible en: http://localhost:5000

Usar la Interfaz CLI

cd vehicle_database/scripts
python3 query_interface.py

Ejecutar Web Scraping

cd vehicle_scraper
python3 rockauto_scraper_v2.py

Agregar Datos Manualmente

cd vehicle_scraper
python3 manual_input.py

API REST

El dashboard expone los siguientes endpoints:

Endpoint Método Descripción
/api/brands GET Obtiene todas las marcas
/api/models?brand=X GET Obtiene modelos por marca
/api/years GET Obtiene años disponibles
/api/engines GET Obtiene motores disponibles
/api/vehicles GET Búsqueda con filtros

Ejemplo de Uso

# Obtener todas las marcas
curl http://localhost:5000/api/brands

# Buscar vehículos por marca y año
curl "http://localhost:5000/api/vehicles?brand=Toyota&year=2020"

Esquema de Base de Datos

Tablas

brands

Campo Tipo Descripción
id INTEGER Clave primaria
name TEXT Nombre de la marca
country TEXT País de origen
founded_year INTEGER Año de fundación

models

Campo Tipo Descripción
id INTEGER Clave primaria
brand_id INTEGER FK a brands
name TEXT Nombre del modelo
body_type TEXT Tipo de carrocería
generation TEXT Generación
production_start_year INTEGER Año inicio producción
production_end_year INTEGER Año fin producción

engines

Campo Tipo Descripción
id INTEGER Clave primaria
name TEXT Nombre del motor
displacement_cc INTEGER Cilindrada en cc
cylinders INTEGER Número de cilindros
fuel_type TEXT Tipo de combustible
power_hp INTEGER Potencia en HP
torque_nm INTEGER Torque en Nm
engine_code TEXT Código del motor

years

Campo Tipo Descripción
id INTEGER Clave primaria
year INTEGER Año

model_year_engine

Campo Tipo Descripción
id INTEGER Clave primaria
model_id INTEGER FK a models
year_id INTEGER FK a years
engine_id INTEGER FK a engines
trim_level TEXT Nivel de equipamiento
drivetrain TEXT Tracción
transmission TEXT Transmisión

Diagrama de Relaciones

brands ──┐
         │
         ├──< models ──┐
         │             │
years ───┼─────────────┼──< model_year_engine
         │             │
engines ─┴─────────────┘

Scripts Disponibles

Scripts de Datos

Script Descripción
add_toyota_data.py Agrega datos de Toyota
add_honda_data.py Agrega datos de Honda
add_nissan_data.py Agrega datos de Nissan
add_ford_data.py Agrega datos de Ford
add_chevrolet_data.py Agrega datos de Chevrolet
add_audi_data.py Agrega datos de Audi
add_acura_data.py Agrega datos de Acura
... Y más marcas

Scripts de Mantenimiento

Script Descripción
remove_brands_and_cleanup.py Limpia marcas innecesarias
check_and_remove_brands.py Verifica y elimina marcas

Funcionalidades del Dashboard

Panel de Filtros

  • Selección de marca
  • Selección de modelo (dinámico según marca)
  • Filtro por año
  • Filtro por motor

Panel de Resultados

  • Visualización en tarjetas
  • Información detallada del vehículo
  • Especificaciones del motor
  • Datos de transmisión y tracción

Características

  • Diseño responsivo
  • Actualización en tiempo real
  • Animaciones y transiciones suaves
  • Soporte para múltiples idiomas

Arquitectura del Sistema

┌─────────────────┐     ┌──────────────────┐
│   RockAuto.com  │────>│   Web Scraper    │
└─────────────────┘     └────────┬─────────┘
                                 │
                                 v
┌─────────────────┐     ┌──────────────────┐
│  Manual Input   │────>│  SQLite Database │
└─────────────────┘     └────────┬─────────┘
                                 │
         ┌───────────────────────┼───────────────────────┐
         │                       │                       │
         v                       v                       v
┌─────────────────┐     ┌──────────────────┐    ┌──────────────────┐
│   Flask API     │     │   CLI Interface  │    │   CSV Importer   │
└────────┬────────┘     └──────────────────┘    └──────────────────┘
         │
         v
┌─────────────────┐
│   Web Dashboard │
│  (Browser)      │
└─────────────────┘

Contribuir

  1. Fork el repositorio
  2. Crea una rama para tu feature (git checkout -b feature/nueva-funcionalidad)
  3. Commit tus cambios (git commit -am 'Agrega nueva funcionalidad')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Crea un Pull Request

Licencia

Este proyecto es de uso interno.

Contacto

Para más información, contactar al equipo de desarrollo.


Autoparts DB - Sistema de Gestión de Base de Datos de Vehículos

Description
Sistema de gestión de base de datos de vehículos y autopartes con dashboard web
Readme 28 MiB
Languages
Python 61.1%
JavaScript 17.7%
HTML 17.3%
CSS 3.5%
Shell 0.4%