consultoria-as fb6ea31100 docs: add README, API reference, and architecture documentation
- README.md: project overview, features, quick start, API overview
- docs/API.md: full endpoint reference with examples
- docs/ARCHITECTURE.md: system diagram, DB schema, data pipeline, auth flow

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 22:30:53 +00:00

Nexus Autoparts

Sistema de catalogo de autopartes con navegacion jerarquica, similar a 7zap.com/RockAuto.

Plataforma SaaS que conecta talleres con bodegas/distribuidores. Permite buscar partes OEM y aftermarket por vehiculo (marca, modelo, ano, motor), gestionar inventario de bodegas, y consultar disponibilidad y precios en tiempo real.

Tech Stack

Componente Tecnologia
Backend Python 3, Flask
Base de datos PostgreSQL
ORM / SQL SQLAlchemy (text() raw SQL)
Autenticacion JWT (PyJWT) + bcrypt
Data import TecDoc via Apify, NHTSA VIN API
Frontend HTML/CSS/JS vanilla (sin framework)
Dependencias extra openpyxl (Excel), csv (CSV import)

Estadisticas de la Base de Datos

  • 1.4M+ partes OEM
  • 300K+ partes aftermarket
  • 13M+ cross-references (numeros alternos, supersesiones, intercambios)
  • 12B+ vehicle-part links (fitment)
  • 100+ marcas, miles de modelos, anos 1956-2026

Features

  • Catalogo de autopartes con navegacion jerarquica: Marca > Modelo > Ano > Motor > Categoria > Grupo > Parte
  • TecDoc integration (via Apify) para importar datos OEM y aftermarket de Europa/Mexico
  • SaaS multi-tenant con roles: ADMIN, OWNER, TALLER, BODEGA
  • JWT authentication con access tokens (15 min) y refresh tokens (30 dias)
  • Gestion de inventario para bodegas con mapeo flexible de columnas CSV/Excel
  • Disponibilidad de partes en multiples bodegas con precios comparativos
  • Alternativas aftermarket con cross-references por cada parte OEM
  • Panel de administracion con gestion de usuarios, import/export CSV, CRUD de categorias/grupos/partes/fabricantes/fitment
  • Busqueda full-text en el catalogo de partes (PostgreSQL tsvector)
  • Busqueda combinada vehiculo + parte (e.g., "Toyota Corolla 2020 frenos")
  • VIN decoder via NHTSA API con cache en base de datos
  • Diagramas explosionados con hotspots clickeables
  • Vehicle-to-part linking (12B+ vehicle_parts links)

Quick Start

Requisitos previos

  • Python 3.8+
  • PostgreSQL con la base nexus_autoparts

Instalacion

cd /home/Autopartes
pip install -r requirements.txt

Ejecutar el servidor

cd /home/Autopartes/dashboard
python3 server.py

El servidor arranca en http://localhost:5000.

Importar datos de TecDoc

# Fase 1: descargar datos de TecDoc a JSON
python3 scripts/import_tecdoc.py download

# Fase 2: importar JSON a PostgreSQL
python3 scripts/import_tecdoc.py import

# Ver progreso
python3 scripts/import_tecdoc.py status

Importar partes y linkar vehiculos

# Importar partes TecDoc (OEM + aftermarket)
python3 scripts/import_tecdoc_parts.py

# Importar datos en vivo desde TecDoc API
python3 scripts/import_live.py

# Crear links vehiculo-parte (fitment masivo)
python3 scripts/link_vehicle_parts.py

# Migrar datos aftermarket
python3 scripts/migrate_aftermarket.py

# Aplicar schema SaaS (roles, users, inventory tables)
python3 scripts/migrate_saas_schema.py

Paginas del Dashboard

Ruta Archivo Descripcion
/login.html login.html Login con JWT
/demo.html demo.html Catalogo publico / demo
/admin admin.html Panel de administracion (ADMIN/OWNER)
/bodega.html bodega.html Gestion de inventario para bodegas
/tienda.html tienda.html Vista de tienda/catalogo para talleres
/pos.html pos.html Punto de venta
/captura.html captura.html Captura de partes
/cuentas.html cuentas.html Gestion de cuentas

API Overview

Documentacion completa en docs/API.md.

Auth (/api/auth/)

  • POST /api/auth/register - Registrar usuario (TALLER/BODEGA)
  • POST /api/auth/login - Login, retorna access + refresh tokens
  • POST /api/auth/refresh - Renovar access token
  • GET /api/auth/me - Info del usuario autenticado

Catalogo (/api/)

  • GET /api/brands - Listar marcas
  • GET /api/models?brand=X - Modelos por marca
  • GET /api/years?brand=X&model=Y - Anos disponibles
  • GET /api/engines?brand=X&model=Y&year=Z - Motores disponibles
  • GET /api/categories - Categorias de partes (arbol jerarquico)
  • GET /api/parts?group_id=X - Partes por grupo
  • GET /api/parts/{id}/alternatives - Alternativas aftermarket
  • GET /api/parts/{id}/cross-references - Cross-references
  • GET /api/search?q=... - Busqueda combinada (vehiculos + partes + aftermarket)

Inventario (/api/inventory/)

  • GET/PUT /api/inventory/mapping - Mapeo de columnas CSV
  • POST /api/inventory/upload - Subir CSV/Excel de inventario
  • GET /api/inventory/items - Listar inventario propio
  • DELETE /api/inventory/items - Limpiar inventario

Disponibilidad y Aftermarket

  • GET /api/parts/{id}/availability - Bodegas con stock (auth: TALLER/ADMIN/OWNER)
  • GET /api/parts/{id}/aftermarket - Alternativas aftermarket + cross-refs (publico)

Admin (/api/admin/)

  • GET /api/admin/users - Listar usuarios (auth: ADMIN/OWNER)
  • PUT /api/admin/users/{id}/activate - Activar/desactivar usuario
  • GET /api/admin/stats - Estadisticas del catalogo
  • CRUD completo: categories, groups, parts, manufacturers, aftermarket, crossref, fitment
  • Import/Export CSV: POST /api/admin/import/{type}, GET /api/admin/export/{type}

VIN Decoder

  • GET /api/vin/decode/{vin} - Decodificar VIN via NHTSA API
  • GET /api/vin/{vin}/parts - Partes para un VIN decodificado
  • GET /api/vin/{vin}/match?mye_id=X - Vincular VIN manualmente a vehiculo

Scripts

Script Funcion
import_tecdoc.py Descarga datos de TecDoc API (vehiculos, modelos, marcas) a JSON
import_tecdoc_parts.py Importa partes OEM y aftermarket desde TecDoc
import_live.py Importacion en vivo desde TecDoc API
link_vehicle_parts.py Genera links vehiculo-parte (fitment masivo)
migrate_aftermarket.py Migra datos aftermarket a la estructura normalizada
migrate_saas_schema.py Crea tablas SaaS: sessions, warehouse_inventory, roles, etc.
import_phase1.py Importacion inicial fase 1
run_all_brands.sh Script auxiliar para importar todas las marcas

Configuracion

Archivo principal: config.py

Variable Default Descripcion
DATABASE_URL postgresql://nexus:...@localhost/nexus_autoparts PostgreSQL connection string
JWT_SECRET nexus-saas-secret-change-in-prod-2026 Secreto para firmar tokens JWT
JWT_ACCESS_EXPIRES 900 (15 min) Duracion del access token en segundos
JWT_REFRESH_EXPIRES 2592000 (30 dias) Duracion del refresh token en segundos

Arquitectura

Documentacion detallada en docs/ARCHITECTURE.md.

                  +------------------+
                  |   TecDoc (Apify) |
                  +--------+---------+
                           |
                    download/import
                           |
                           v
+----------+     +--------+---------+     +----------------+
| Frontend |<--->|   Flask Server   |<--->|   PostgreSQL   |
| (HTML/JS)|     |  (server.py)     |     | nexus_autoparts|
+----------+     +--------+---------+     +----------------+
                           |
                     JWT auth (PyJWT)
                           |
              +------------+------------+
              |            |            |
           TALLER       BODEGA       ADMIN
         (consulta)   (inventario)  (gestion)

Nexus Autoparts - Tu conexion directa con las partes que necesitas

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%