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
This commit is contained in:
2026-01-19 08:45:03 +00:00
commit f395d67136
59 changed files with 10881 additions and 0 deletions

95
integration_demo.py Normal file
View File

@@ -0,0 +1,95 @@
#!/usr/bin/env python3
"""
RockAuto Data Integration Demo
Shows how to integrate manually extracted RockAuto data into the vehicle database
"""
from vehicle_scraper.manual_input_simple import ManualDataInput
import sqlite3
def demonstrate_integration():
"""Demonstrate the integration of RockAuto data into the database"""
print("RockAuto Data Integration Demo")
print("==============================")
# Create input tool with correct database path
input_tool = ManualDataInput(db_path="vehicle_database/vehicle_database.db")
# Example of data you might extract from RockAuto manually
print("\nExample: Adding data that could be extracted from RockAuto")
# Add some example vehicles that might be found on RockAuto
rockauto_vehicles = [
{"make": "Toyota", "model": "RAV4", "year": 2019, "engine": "2.5L 4-Cylinder"},
{"make": "Honda", "model": "CR-V", "year": 2020, "engine": "1.5L Turbo"},
{"make": "Ford", "model": "Escape", "year": 2021, "engine": "2.0L Turbo"},
{"make": "Nissan", "model": "Rogue", "year": 2018, "engine": "2.5L 4-Cylinder"},
{"make": "Chevrolet", "model": "Equinox", "year": 2020, "engine": "1.5L Turbo"},
]
print(f"\nAdding {len(rockauto_vehicles)} vehicles to database:")
for vehicle in rockauto_vehicles:
print(f" - {vehicle['year']} {vehicle['make']} {vehicle['model']} ({vehicle['engine']})")
input_tool.add_multiple_vehicles(rockauto_vehicles)
# Show the data in the database
print("\nCurrent data in database:")
conn = sqlite3.connect("vehicle_database/vehicle_database.db")
cursor = conn.cursor()
cursor.execute('''
SELECT b.name as brand, m.name as model, y.year, e.name as engine
FROM model_year_engine mye
JOIN models m ON mye.model_id = m.id
JOIN brands b ON m.brand_id = b.id
JOIN years y ON mye.year_id = y.id
JOIN engines e ON mye.engine_id = e.id
ORDER BY b.name, m.name, y.year
LIMIT 15
''')
results = cursor.fetchall()
for i, (brand, model, year, engine) in enumerate(results, 1):
print(f" {i:2d}. {year} {brand} {model} - {engine}")
if len(results) == 15:
print(" ... (showing first 15 results)")
conn.close()
print(f"\nDatabase contains {len(results)} vehicle entries")
# Show how to query specific data
print("\nExample queries you can perform:")
print("1. Find all Toyota models:")
print(" In query interface: Search brand='Toyota'")
print("2. Find all 2020 model year vehicles:")
print(" In query interface: Search year=2020")
print("3. Find all vehicles with 'Turbo' engines:")
print(" In query interface: Search engine='Turbo'")
print("\nTo continue adding RockAuto data:")
print("1. Visit https://www.rockauto.com/catalog/")
print("2. Browse manufacturers and note models/years/engines")
print("3. Use ManualDataInput to add to your database")
def main():
demonstrate_integration()
print("\n" + "="*50)
print("INTEGRATION DEMO COMPLETE")
print("="*50)
print("\nNext steps:")
print("1. Manually browse RockAuto.com for vehicle data")
print("2. Use the ManualDataInput class to add data")
print("3. Query your database using the query interface")
print("4. Build your comprehensive vehicle database")
if __name__ == "__main__":
main()