Skip to content

Latest commit

 

History

History
199 lines (155 loc) · 4.09 KB

README.md

File metadata and controls

199 lines (155 loc) · 4.09 KB

pjecz-orion-flask

Frontend de RRHH Personal hecho con Flask

Requerimientos

Los requerimientos son

  • Python 3.11
  • PostgreSQL 15
  • Redis

Instalación

Crear el entorno virtual

python3.11 -m venv .venv

Ingresar al entorno virtual

source venv/bin/activate

Actualizar el gestor de paquetes pip

pip install --upgrade pip

Instalar el paquete wheel para compilar las dependencias

pip install wheel

Instalar poetry en el entorno virtual si no lo tiene desde el sistema operativo

pip install poetry

Configurar poetry para que use el entorno virtual dentro del proyecto

poetry config virtualenvs.in-project true

Instalar las dependencias por medio de poetry

poetry install

Configuración

Crear un archivo .env en la raíz del proyecto con las variables de entorno.

# Flask, para SECRET_KEY use openssl rand -hex 24
FLASK_APP=orion.app
FLASK_DEBUG=1
SECRET_KEY=XXXXXXXX

# Base de datos
DB_HOST=127.0.0.1
DB_PORT=5432
DB_NAME=pjecz_rrhh_personal
DB_USER=adminpjeczrrhhpersonal
DB_PASS=XXXXXXXX
SQLALCHEMY_DATABASE_URI="postgresql+psycopg2://adminpjeczrrhhpersonal:[email protected]:5432/pjecz_rrhh_personal"

# Google Cloud Storage
CLOUD_STORAGE_DEPOSITO=

# Host
HOST=http://127.0.0.1:5000

# Redis
REDIS_URL=redis://127.0.0.1:6379
TASK_QUEUE=pjecz_orion

# Salt sirve para cifrar el ID con HashID, debe ser igual en la API
SALT=XXXXXXXX

# Si esta en PRODUCTION se evita reiniciar la base de datos
DEPLOYMENT_ENVIRONMENT=develop

# Google AI Studio
AI_STUDIO_API_KEY=

Crear un archivo .bashrc que se ejecute al iniciar la terminal.

if [ -f ~/.bashrc ]
then
    . ~/.bashrc
fi

if command -v figlet &> /dev/null
then
    figlet Orion Flask
else
    echo "== Orion Flask"
fi
echo

if [ -f .env ]
then
    echo "-- Variables de entorno"
    # export $(grep -v '^#' .env | xargs)
    source .env && export $(sed '/^#/d' .env | cut -d= -f1)
    echo "   CLOUD_STORAGE_DEPOSITO: ${CLOUD_STORAGE_DEPOSITO}"
    echo "   DB_HOST: ${DB_HOST}"
    echo "   DB_PORT: ${DB_PORT}"
    echo "   DB_NAME: ${DB_NAME}"
    echo "   DB_USER: ${DB_USER}"
    echo "   DB_PASS: ${DB_PASS}"
    echo "   DEPLOYMENT_ENVIRONMENT: ${DEPLOYMENT_ENVIRONMENT}"
    echo "   FLASK_APP: ${FLASK_APP}"
    echo "   HOST: ${HOST}"
    echo "   REDIS_URL: ${REDIS_URL}"
    echo "   SALT: ${SALT}"
    echo "   SECRET_KEY: ${SECRET_KEY}"
    echo "   SQLALCHEMY_DATABASE_URI: ${SQLALCHEMY_DATABASE_URI}"
    echo "   TASK_QUEUE: ${TASK_QUEUE}"
    echo
    export PGHOST=$DB_HOST
    export PGPORT=$DB_PORT
    export PGDATABASE=$DB_NAME
    export PGUSER=$DB_USER
    export PGPASSWORD=$DB_PASS
fi

if [ -d .venv ]
then
    echo "-- Python Virtual Environment"
    source .venv/bin/activate
    echo "   $(python3 --version)"
    export PYTHONPATH=$(pwd)
    echo "   PYTHONPATH: ${PYTHONPATH}"
    echo
    echo "-- Poetry"
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    echo "   $(poetry --version)"
    echo
    if [ -f cli/app.py ]
    then
        echo "-- Ejecutar el CLI"
        alias cli="python3 ${PWD}/cli/app.py"
        echo "   cli --help"
        echo
    fi
    echo "-- Flask 127.0.0.1:5000"
    alias arrancar="flask run --port=5000"
    echo "   arrancar = flask run --port=5000"
    echo
    echo "-- RQ Worker ${TASK_QUEUE}"
    alias fondear="rq worker ${TASK_QUEUE}"
    echo "   fondear"
    echo
fi

if [ -f .github/workflows/gcloud-app-deploy.yaml ]
then
    echo "-- Si cambia pyproject.toml reconstruya requirements.txt para el deploy en GCP via GitHub Actions"
    echo "   poetry export -f requirements.txt --output requirements.txt --without-hashes"
    echo
fi

Arrancar

Antes de usar el CLI o de arrancar el servidor de Flask debe cargar las variables de entorno y el entorno virtual.

source .bashrc

Tendrá el alias al Command Line Interface

cli --help

Para hacer tareas en el fondo, abrir una terminal, cargar source .bashrc y ejecutar

fondear

Para lanzar el front-end Flask, abrir una terminal, cargar source .bashrc y ejecutar

arrancar