Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 89 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,99 @@
python3 -m venv .venv
source .venv/bin/activate
# Proyecto TSP

pip install -r requirements.txt
## Requisitos previos

---
Construir y levantar los contenedores
Asegúrate de tener instalados los siguientes componentes:

1. PostgreSQL y postgresql-contrib
2. Docker
3. Docker Compose

## Instalación

### 1. PostgreSQL

Para instalar PostgreSQL y postgresql-contrib, ejecuta:

```bash
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib -y
```

### 2. Docker y Docker Compose

Sigue las [instrucciones oficiales de Docker](https://docs.docker.com/engine/install/ubuntu/) para instalar Docker en Ubuntu.

Para instalar Docker Compose, sigue las [instrucciones oficiales de Docker Compose](https://docs.docker.com/compose/install/).

## Configuración

Asegúrate de que los siguientes archivos tengan los permisos correctos (755):

```bash
chmod 755 db-init/init-user-db.sh
chmod 755 scripts/change_user_password.sh
chmod 755 scripts/wait-for-postgres.sh
```

Después de asignar los permisos, puedes cambiar la contraseña del usuario de PostgreSQL ejecutando el script `change_user_password.sh`. Por ejemplo:

```bash
bash scripts/change_user_password.sh postgres nueva_contraseña
```

Asegúrate de reemplazar `nueva_contraseña` con la contraseña que deseas establecer.

## Ejecución del proyecto

### Iniciar los contenedores

Puedes usar cualquiera de los siguientes comandos para iniciar los contenedores:

Para construir las imágenes (usando caché si está disponible) e iniciar los contenedores en un solo comando:
```bash
docker compose up --build
docker compose up --build --no-cache
```

Para construir las imágenes sin usar caché y luego iniciar los contenedores:

```bash
docker compose build --no-cache
docker compose up
```

o para ejecutar en modo detached:

```bash
docker compose up -d
```

### Detener los contenedores

Si algo sale mal y necesitas detener los contenedores, puedes usar:

```bash
docker compose down -v
```

Este comando detendrá y eliminará los contenedores y volúmenes.

Si solo quieres detener los contenedores sin eliminar los volúmenes:

```bash
docker compose down
```

## Pruebas

Para reconstruir la imagen de prueba y ejecutar las pruebas:

```bash
docker compose build test
docker compose run --rm test
```

Verificar el estado
docker compose logs -f

Acceso a los servicios:
## Acceso a los servicios:

Puedes acceder al servicio de traducción en http://localhost:5001.
El servicio de almacenamiento en http://localhost:5002.
Expand Down
30 changes: 10 additions & 20 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
version: '3.8'
services:
# Servicio de almacenamiento
storage:
build: ./storage
container_name: storage
ports:
- "5002:5000"
env_file: .env
environment:
- STORAGE_PATH=${STORAGE_PATH}
- DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME}
- REDIS_URL=redis://redis:6379/${REDIS_DB}
- LOG_LEVEL=${LOG_LEVEL}
- LOG_FILE=${LOG_FILE_STORAGE}
- FLASK_ENV=${FLASK_ENV}
volumes:
- ./data:${STORAGE_PATH}
- ./logs:/app/logs
Expand All @@ -28,11 +26,11 @@ services:
timeout: 5s
retries: 3
start_period: 10s
command: ["/scripts/wait-for-postgres.sh", "-h", "db", "-U", "${DB_USER}", "-P", "${DB_PASSWORD}", "-d", "${DB_NAME}", "-t", "60", "-i", "5", "--", "python", "main.py"]
command: ["/scripts/wait-for-postgres.sh", "-h", "db", "-U", "${DB_USER}", "-P", "${DB_PASSWORD}", "-d", "${DB_NAME}", "-t", "60", "-i", "5", "--", "python", "src/main.py"]

# Servicio para pruebas
test:
build:
build:
context: ./storage
dockerfile: Dockerfile
container_name: storage_test
Expand All @@ -43,25 +41,17 @@ services:
condition: service_healthy
environment:
- TESTING=True
# Incluye estas variables solo si tus pruebas las necesitan
# - DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME}
# - REDIS_URL=redis://redis:6379/${REDIS_DB}
- FLASK_ENV=testing
env_file: .env
networks:
- app_network
#command: ["pytest", "-v", "/app/tests", "--import-mode=importlib"]
command: ["python", "-m", "pytest", "-v", "/app/tests"]

# Base de datos PostgreSQL
db:
image: postgres:13
container_name: postgres_db
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
DB_USER: ${DB_USER}
DB_PASSWORD: ${DB_PASSWORD}
DB_NAME: ${DB_NAME}
env_file: .env
volumes:
- postgres_data:/var/lib/postgresql/data
- ./db-init:/docker-entrypoint-initdb.d
Expand Down Expand Up @@ -98,7 +88,7 @@ services:
image: adminer
container_name: adminer
ports:
- "9090:8080" # Puerto para acceder a Adminer
- "9090:8080"
depends_on:
- db
networks:
Expand Down
22 changes: 0 additions & 22 deletions requirements.txt

This file was deleted.

2 changes: 1 addition & 1 deletion scripts/change_user_password.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash

set -e
: '
Este script se utiliza para cambiar la contraseña de un usuario en PostgreSQL.
Haz el script ejecutable:
Expand Down
18 changes: 0 additions & 18 deletions src/extract/interface.py

This file was deleted.

37 changes: 0 additions & 37 deletions src/extract/pdf_extractor.py

This file was deleted.

40 changes: 0 additions & 40 deletions src/main.py

This file was deleted.

74 changes: 0 additions & 74 deletions src/translators/gpt_translator.py

This file was deleted.

Loading