- Migrate from SQLite to PostgreSQL with normalized schema - Add 11 lookup tables (fuel_type, body_type, drivetrain, transmission, materials, position_part, manufacture_type, quality_tier, countries, reference_type, shapes) - Rewrite dashboard/server.py (76 routes) using SQLAlchemy text() queries - Rewrite console/db.py (27 methods) using SQLAlchemy ORM - Add models.py with 27 SQLAlchemy model definitions - Add config.py for centralized DB_URL configuration - Add migrate_to_postgres.py migration script - Add docs/METABASE_GUIDE.md with complete data entry guide - Rebrand from "AUTOPARTS DB" to "NEXUS AUTOPARTS" - Fill vehicle data gaps via NHTSA API + heuristics: engines (cylinders, power, torque), brands (country, founded_year), models (body_type, production years), MYE (drivetrain, transmission, trim) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.2 KiB
5.2 KiB
Guía de Instalación - Nexus Autoparts
Requisitos del Sistema
Software Requerido
| Software | Versión Mínima | Propósito |
|---|---|---|
| Python | 3.8+ | Lenguaje principal |
| pip | 20.0+ | Gestor de paquetes |
| Git | 2.0+ | Control de versiones |
Sistema Operativo
El proyecto es compatible con:
- Linux (Ubuntu, Debian, CentOS, etc.)
- macOS
- Windows 10/11
Espacio en Disco
- Mínimo: 50 MB
- Recomendado: 100 MB (para crecimiento de la base de datos)
Instalación Rápida
# 1. Clonar el repositorio
git clone https://git.consultoria-as.com/[usuario]/Nexus-Autoparts.git
# 2. Entrar al directorio
cd Nexus-Autoparts
# 3. Instalar dependencias
pip install -r requirements.txt
# 4. Iniciar el dashboard
cd dashboard
python3 server.py
Instalación Detallada
Paso 1: Clonar el Repositorio
git clone https://git.consultoria-as.com/[usuario]/Nexus-Autoparts.git
cd Nexus-Autoparts
Paso 2: Crear Entorno Virtual (Recomendado)
# Crear entorno virtual
python3 -m venv venv
# Activar entorno virtual
# Linux/macOS:
source venv/bin/activate
# Windows:
venv\Scripts\activate
Paso 3: Instalar Dependencias
# Instalar todas las dependencias
pip install flask requests beautifulsoup4 lxml
# O usando requirements.txt
pip install -r requirements.txt
Paso 4: Verificar la Base de Datos
La base de datos viene pre-poblada con datos. Para verificar:
cd vehicle_database
sqlite3 vehicle_database.db "SELECT COUNT(*) FROM brands;"
Paso 5: Inicializar (Opcional)
Si necesitas reiniciar la base de datos:
cd vehicle_database
./setup.sh
Dependencias de Python
Archivo requirements.txt
flask==2.3.3
requests>=2.28.0
beautifulsoup4>=4.11.0
lxml>=4.9.0
Instalación Individual
# Flask - Framework web
pip install flask
# Requests - Cliente HTTP
pip install requests
# BeautifulSoup4 - Parser HTML
pip install beautifulsoup4
# lxml - Parser XML/HTML rápido
pip install lxml
Configuración
Variables de Entorno (Opcional)
# Puerto del servidor (default: 5000)
export FLASK_PORT=5000
# Modo debug (solo desarrollo)
export FLASK_DEBUG=1
# Ruta de la base de datos
export DATABASE_PATH=/path/to/vehicle_database.db
Configuración del Servidor
Editar dashboard/server.py:
# Cambiar puerto
app.run(host='0.0.0.0', port=5000, debug=False)
# Para producción
app.run(host='0.0.0.0', port=8080, debug=False)
Verificación de la Instalación
1. Verificar Python
python3 --version
# Debería mostrar: Python 3.8.x o superior
2. Verificar Dependencias
python3 -c "import flask; print(f'Flask: {flask.__version__}')"
python3 -c "import requests; print(f'Requests: {requests.__version__}')"
python3 -c "import bs4; print(f'BeautifulSoup: {bs4.__version__}')"
3. Verificar Base de Datos
cd vehicle_database
python3 -c "
import sqlite3
conn = sqlite3.connect('vehicle_database.db')
cursor = conn.execute('SELECT COUNT(*) FROM brands')
print(f'Marcas en BD: {cursor.fetchone()[0]}')
conn.close()
"
4. Probar el Dashboard
cd dashboard
python3 server.py &
curl http://localhost:5000/api/brands
Solución de Problemas
Error: ModuleNotFoundError
# Verificar que el entorno virtual está activado
which python3
# Reinstalar dependencias
pip install --force-reinstall flask requests beautifulsoup4 lxml
Error: Database is locked
# Cerrar todas las conexiones a la base de datos
# Reiniciar el servidor
pkill -f server.py
python3 dashboard/server.py
Error: Port already in use
# Encontrar proceso usando el puerto
lsof -i :5000
# Matar el proceso
kill -9 [PID]
# O usar otro puerto
python3 server.py --port 5001
Error: Permission denied
# Dar permisos de ejecución a scripts
chmod +x vehicle_database/setup.sh
chmod +x dashboard/start_dashboard.sh
chmod +x QUICK_START.sh
Instalación en Producción
Usando Gunicorn (Recomendado)
# Instalar Gunicorn
pip install gunicorn
# Iniciar servidor
cd dashboard
gunicorn -w 4 -b 0.0.0.0:8080 server:app
Usando systemd
Crear archivo /etc/systemd/system/nexus-autoparts.service:
[Unit]
Description=Nexus Autoparts Dashboard
After=network.target
[Service]
User=www-data
WorkingDirectory=/path/to/Nexus-Autoparts/dashboard
ExecStart=/usr/bin/python3 server.py
Restart=always
[Install]
WantedBy=multi-user.target
Habilitar e iniciar:
sudo systemctl enable nexus-autoparts
sudo systemctl start nexus-autoparts
Usando Docker (Opcional)
FROM python:3.11-slim
WORKDIR /app
COPY . /app
RUN pip install flask requests beautifulsoup4 lxml
EXPOSE 5000
CMD ["python3", "dashboard/server.py"]
docker build -t nexus-autoparts .
docker run -p 5000:5000 nexus-autoparts
Actualizaciones
# Obtener últimos cambios
git pull origin main
# Actualizar dependencias
pip install --upgrade -r requirements.txt
Desinstalación
# Desactivar entorno virtual
deactivate
# Eliminar directorio del proyecto
rm -rf Nexus-Autoparts
# Eliminar entorno virtual (si está separado)
rm -rf venv