- 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>
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 tokensPOST /api/auth/refresh- Renovar access tokenGET /api/auth/me- Info del usuario autenticado
Catalogo (/api/)
GET /api/brands- Listar marcasGET /api/models?brand=X- Modelos por marcaGET /api/years?brand=X&model=Y- Anos disponiblesGET /api/engines?brand=X&model=Y&year=Z- Motores disponiblesGET /api/categories- Categorias de partes (arbol jerarquico)GET /api/parts?group_id=X- Partes por grupoGET /api/parts/{id}/alternatives- Alternativas aftermarketGET /api/parts/{id}/cross-references- Cross-referencesGET /api/search?q=...- Busqueda combinada (vehiculos + partes + aftermarket)
Inventario (/api/inventory/)
GET/PUT /api/inventory/mapping- Mapeo de columnas CSVPOST /api/inventory/upload- Subir CSV/Excel de inventarioGET /api/inventory/items- Listar inventario propioDELETE /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 usuarioGET /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 APIGET /api/vin/{vin}/parts- Partes para un VIN decodificadoGET /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
Languages
Python
61.1%
JavaScript
17.7%
HTML
17.3%
CSS
3.5%
Shell
0.4%