Instalación

Guía completa para instalar y configurar el Extractor de Normas BCN

Requisitos Previos

Antes de comenzar, asegúrate de tener instalado:

Docker Desktop

Docker es necesario para ejecutar PostgreSQL de forma aislada.

Python 3.9+

El proyecto requiere Python 3.9 o superior.

# Verificar versión de Python
python --version
# Debería mostrar: Python 3.9.x o superior

Git

Para clonar el repositorio desde GitHub.

Instalación Paso a Paso

1 Clonar el Repositorio

Clona el proyecto desde GitHub a tu máquina local:

git clone https://github.com/AlexFT257/BCNExtractor.git
cd BCNExtractor

2 Iniciar PostgreSQL con Docker

Levanta la base de datos PostgreSQL usando Docker Compose:

# Iniciar PostgreSQL en segundo plano
docker-compose up -d

# Verificar que el contenedor esté corriendo
docker ps

Tip: El contenedor creará automáticamente la base de datos y las tablas necesarias al iniciarse por primera vez.

3 Instalar Dependencias de Python

Instala las bibliotecas necesarias usando pip:

# Opción 1: Instalación directa
pip install -r requirements.txt

# Opción 2: Usar entorno virtual (recomendado)
python -m venv venv
source venv/bin/activate  # En Windows: venv\Scripts\activate
pip install -r requirements.txt

4 Configurar Variables de Entorno

Copia el archivo de ejemplo y configura tus credenciales:

# Copiar el archivo de ejemplo
cp .env.example .env

# Editar el archivo .env con tus credenciales
nano .env  # o usa tu editor favorito

El archivo .env debe contener:

.env bash
# Configuración de PostgreSQL
POSTGRES_USER=postgres
POSTGRES_PASSWORD=tu_password_seguro
POSTGRES_DB=bcn_normas
POSTGRES_HOST=localhost
POSTGRES_PORT=5432

# Configuración de la API BCN
BCN_API_BASE_URL=https://www.bcn.cl/leychile/ws
BCN_REQUEST_TIMEOUT=30
BCN_MAX_RETRIES=3

# Configuración de Logging
LOG_LEVEL=INFO
LOG_FILE=data/logs/bcn_extractor.log

5 Cargar Instituciones Iniciales

Carga el catálogo de instituciones desde el CSV incluido:

python cli_instituciones.py load data/instituciones.csv

Éxito: Esto cargará aproximadamente 150 instituciones en la base de datos.

Verificar la Instalación

Prueba que todo esté funcionando correctamente:

# Ver estadísticas del sistema
python bcn_cli.py stats

# Listar instituciones disponibles
python cli_instituciones.py list

# Probar la conexión a la BCN
python bcn_cli.py list 17 --limit 5

Si todos los comandos funcionan sin errores, ¡la instalación fue exitosa!

Comandos Útiles de Docker

Ver logs del contenedor:

docker-compose logs -f postgres

Detener el contenedor:

docker-compose down

Reiniciar el contenedor:

docker-compose restart

Acceder a la consola de PostgreSQL:

docker exec -it bcn_postgres psql -U postgres -d bcn_normas

Problemas Comunes

Error: "Puerto 5432 ya está en uso"

Ya tienes PostgreSQL corriendo localmente. Opciones:

  • 1. Detén PostgreSQL local y usa Docker
  • 2. Cambia el puerto en docker-compose.yml (ej: 5433:5432)
  • 3. Usa tu PostgreSQL local y actualiza el .env

Error: "No se puede conectar a PostgreSQL"

Verifica que:

  • • Docker esté corriendo: docker ps
  • • Las credenciales en .env coincidan con docker-compose.yml
  • • El puerto 5432 esté abierto en tu firewall

Error: "ModuleNotFoundError"

Reinstala las dependencias: pip install -r requirements.txt --force-reinstall

Próximos Pasos