1.0.50 • Published 4 months ago

quenda-chatbot v1.0.50

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago

Logo de Minerva

Minerva Plexusdx

Minerva Plexus es un proyecto diseñado para proporcionar una interfaz de usuario interactiva y dinámica para trabajar con la API de OpenAI. Está construida utilizando Vite para un desarrollo rápido y TypeScript para tipado estático. La aplicación sigue una arquitectura hexagonal y está configurada para ser fácilmente dockerizable.

Tabla de Contenidos

  1. Requisitos Previos
  2. Instalación
  3. Configuración
  4. Ejecución del Proyecto
  5. Pruebas
  6. Análisis de Calidad de Código
  7. Despliegue
  8. Mantenimiento
  9. Contribuir
  10. Licencia

Requisitos Previos

Antes de iniciar, asegúrate de tener instalados los siguientes programas en tu entorno de desarrollo:

  • Node.js: Recomendado usar la versión LTS más reciente.
  • npm (incluido con Node.js) o Yarn para la gestión de paquetes.
  • Java JDK 17: Necesario para ejecutar SonarQube.
  • SonarQube: Para análisis de calidad de código.
  • SonarScanner: Para enviar los resultados del análisis a SonarQube.

Instalación

  1. Clona el repositorio:

    git clone https://github.com/tu-usuario/minerva-plexus.git
    cd minerva-plexus
  2. Instala las dependencias del proyecto:

    Usando npm:

    npm install

    O usando Yarn:

    yarn install
  3. Instala Java JDK 17 (si no lo has hecho):

    Usando Homebrew:

    brew install openjdk@17
  4. Configura la variable de entorno JAVA_HOME:

    Agrega lo siguiente a tu archivo ~/.zshrc o ~/.bash_profile:

    export JAVA_HOME="/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home"
    export PATH="$JAVA_HOME/bin:$PATH"

    Luego, recarga el archivo de configuración del shell:

    source ~/.zshrc
  5. Instala y configura SonarQube:

    Descarga SonarQube desde la página oficial, extrae el archivo y sigue las instrucciones de la sección de SonarQube en este documento para iniciar el servidor.

  6. Instala SonarScanner:

    brew install sonar-scanner

Configuración

  1. Configuración del archivo sonar-project.properties:

    En el directorio raíz del proyecto, asegúrate de que exista un archivo sonar-project.properties con el siguiente contenido:

    sonar.projectKey=minerva-plexus
    sonar.projectName=Minerva Plexus
    sonar.projectVersion=1.0
    sonar.sources=src
    sonar.tests=src
    sonar.test.inclusions=**/*.test.ts,**/*.test.tsx
    sonar.typescript.lcov.reportPaths=coverage/lcov.info
    sonar.host.url=http://localhost:9000
  2. Configurar variables de entorno:

    Crea 2 archivos .env y .env.dev en el directorio raíz del proyecto para las variables de entorno específicas del entorno de desarrollo y producción. Ejemplo:

    VITE_API_URL=http://vm-cv-chatbot.westeurope.cloudapp.azure.com:8311
    VITE_API_KEY=ai
    VITE_PORT=8612
    NODE_ENV=production/development
    VITE_BASE_URL=http://localhost:8612/

Ejecución del Proyecto

  1. Iniciar la aplicación en modo desarrollo:

    Usando npm:

    npm start

    Usando Yarn:

    yarn start

    La aplicación estará disponible en http://localhost:8612.

Pruebas

  1. Ejecutar pruebas unitarias:

    Usando npm:

    npm test -- --coverage

    Usando Yarn:

    yarn test --coverage
  2. Generar un informe de cobertura de código:

    Asegúrate de que la opción --coverage esté activada al ejecutar las pruebas para generar un informe de cobertura que se puede enviar a SonarQube.

Análisis de Calidad de Código

  1. Ejecutar análisis de SonarQube:

    Ejecuta SonarScanner para analizar el proyecto:

    sonar-scanner

    Esto enviará los resultados del análisis a tu instancia de SonarQube en http://localhost:9000.

  2. Configurar Quality Gates:

    En la interfaz de SonarQube, ajusta las condiciones de cobertura de código en los Quality Gates para cumplir con los estándares de calidad.

Despliegue

  1. Compilar la aplicación para producción:

    Usando npm:

    npm run build

    Usando Yarn:

    yarn build

    Los archivos compilados estarán en el directorio build/ y estarán listos para ser desplegados en un servidor web.

Mantenimiento

  • Mantén las dependencias actualizadas: Revisa regularmente las dependencias del proyecto para aplicar actualizaciones de seguridad y mejoras.
  • Monitorea los logs de SonarQube: Asegúrate de que SonarQube esté funcionando correctamente revisando los logs en el directorio logs/ de SonarQube.

Aplicar SonarQube

Configuración e Instalación de SonarQube y SonarScanner en macOS

Este documento proporciona una guía paso a paso para instalar y ejecutar SonarQube y SonarScanner en macOS, incluyendo la configuración de Java y otros componentes necesarios.

Prerrequisitos

  • macOS
  • Homebrew (gestor de paquetes para macOS)
  • Conexión a Internet

1. Instalación de Java

SonarQube requiere Java para funcionar. Usaremos Homebrew para instalar OpenJDK 17, que es la versión compatible con SonarQube.

  1. Instalar OpenJDK 17:

    brew install openjdk@17
  2. Configurar JAVA_HOME:

    Después de instalar, asegúrate de configurar JAVA_HOME para apuntar a OpenJDK 17. Agrega las siguientes líneas a tu archivo ~/.zshrc o ~/.bash_profile:

    export JAVA_HOME="/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home"
    export PATH="$JAVA_HOME/bin:$PATH"

    Luego, recarga el archivo de configuración del shell:

    source ~/.zshrc
  3. Verificar la instalación de Java:

    java -version

    Deberías ver algo similar a openjdk version "17.0.x".

2. Descarga e Instalación de SonarQube

  1. Descargar SonarQube:

    Descarga la versión más reciente de SonarQube Community Edition desde la página oficial de SonarQube.

  2. Extraer el archivo:

    Una vez descargado, extrae el archivo en un directorio de tu elección, por ejemplo:

    cd ~/Documents
    unzip sonarqube-x.y.z.zip
  3. Navegar al directorio de SonarQube:

    cd sonarqube-x.y.z/bin/macosx-universal-64
  4. Iniciar SonarQube:

    ./sonar.sh start

    Verás mensajes indicando que SonarQube ha sido iniciado. Puedes verificar el estado con:

    ./sonar.sh status
  5. Acceder a SonarQube:

    Abre un navegador y navega a http://localhost:9000. Deberías ver la interfaz de SonarQube. Por defecto, las credenciales de inicio de sesión son:

    • Usuario: admin
    • Contraseña: admin

3. Instalación de SonarScanner

  1. Instalar SonarScanner:

    Usaremos Homebrew para instalar SonarScanner:

    brew install sonar-scanner
  2. Verificar la instalación:

    sonar-scanner --version

    Deberías ver la versión de SonarScanner instalada.

4. Configuración del Proyecto con SonarQube

  1. Crear un archivo de configuración para SonarScanner:

    En el directorio raíz de tu proyecto, crea un archivo llamado sonar-project.properties con el siguiente contenido:

    sonar.projectKey=minerva-plexus
    sonar.projectName=Minerva Plexus
    sonar.projectVersion=1.0
    sonar.sources=src
    sonar.tests=src
    sonar.test.inclusions=**/*.test.ts,**/*.test.tsx
    sonar.typescript.lcov.reportPaths=coverage/lcov.info
    sonar.host.url=http://localhost:9000

    Asegúrate de ajustar las rutas y nombres según la estructura de tu proyecto.

  2. Ejecutar SonarScanner:

    sonar-scanner

    Esto iniciará un análisis de tu proyecto y enviará los resultados a SonarQube.

5. Configuración de Calidad en SonarQube

  1. Establecer Quality Gates:

    • En la interfaz de SonarQube, ve a Quality Gates y selecciona o crea uno nuevo.
    • Agrega condiciones para el mínimo de cobertura de código (por ejemplo, Cobertura > 80%).
  2. Asignar Quality Gate al Proyecto:

    • Navega a la configuración del proyecto en SonarQube.
    • Asigna el Quality Gate que has configurado.

6. Solución de Problemas Comunes

  1. Problemas con la Cobertura de Código:

    Asegúrate de que SonarScanner esté leyendo correctamente el archivo de cobertura de pruebas (lcov.info). Verifica que la ruta especificada en sonar-project.properties sea correcta.

  2. Errores de SCM:

    Si ves un error de detección automática del proveedor de SCM, añade lo siguiente a tu sonar-project.properties:

    sonar.scm.provider=git

Advertencias de sonar.login:

Si usas autenticación por token, reemplaza sonar.login con sonar.token en tu configuración.

7. Actualizaciones y Mantenimiento

Mantén SonarQube y SonarScanner actualizados para aprovechar las últimas mejoras y correcciones de seguridad. Revisa los logs de SonarQube en caso de problemas. Los logs están ubicados en el directorio logs dentro del directorio de instalación de SonarQube.

Gitlab problems

git checkout main
git merge develop

INstalla Minerva Library:

Crear .npmrc en la raíz del proyecto y añadir al archivo:

@building_blocks:registry=https://repo.plexus.services/api/v4/projects/2724/packages/npm/
//repo.plexus.services/api/v4/projects/2724/packages/npm/:_authToken=<TU TOKEN DE ACCESO GITLAB>

Aplicación MInerva a apps de terceros

Para usar la característica de crear conversación en cada login sin tener listado de conversaciones, se puede usar el valor true en el hook/useAutoCreateConversation.ts

  enableAutoCreate: boolean = false //habilitamos la funcionalidad crear conversacion on login

Ocultar además el componente ChatListConversations.

DOCKER REMOTO

docker compose up --force-recreate --build
docker system prune //limpiar si es extremadamente necesario

Despliegue kubernetes

Documentación en Kubernetes - Tutoriales y herramientas

resultado: kubectl get pods kubectl logs quenda-frontend-65f4fbf45f-gx7jq

docker build --platform linux/amd64 --no-cache -t quenda-frontend:latest . docker tag quenda-frontend:latest cminerva.azurecr.io/quenda-frontend:latest docker push cminerva.azurecr.io/quenda-frontend:latest kubectl apply -f quenda-frontend-deployment.yaml kubectl apply -f quenda-frontend-service.yaml


kubectl delete pod -l app=quenda-frontend

IMPORTANTE

construir con

NODE_ENV=production yarn build
1.0.50

4 months ago

1.0.49

4 months ago

1.0.48

4 months ago

1.0.47

4 months ago

1.0.46

4 months ago

1.0.45

4 months ago

1.0.44

4 months ago

1.0.43

4 months ago

1.0.42

4 months ago

1.0.41

4 months ago

1.0.40

4 months ago

1.0.39

4 months ago

1.0.38

4 months ago

1.0.37

4 months ago

1.0.36

4 months ago

1.0.35

4 months ago

1.0.34

4 months ago

1.0.33

4 months ago

1.0.32

4 months ago

1.0.31

4 months ago

1.0.30

4 months ago

1.0.29

4 months ago

1.0.28

4 months ago

1.0.27

4 months ago

1.0.26

4 months ago

1.0.25

4 months ago

1.0.24

4 months ago

1.0.23

4 months ago

1.0.22

5 months ago

1.0.21

5 months ago

1.0.20

5 months ago

1.0.19

5 months ago

1.0.18

5 months ago

1.0.17

5 months ago

1.0.16

5 months ago

1.0.15

5 months ago

1.0.14

5 months ago

1.0.13

5 months ago

1.0.12

5 months ago

1.0.11

5 months ago

1.0.10

5 months ago

1.0.9

5 months ago

1.0.8

5 months ago

1.0.7

5 months ago

1.0.6

5 months ago

1.0.5

5 months ago

1.0.4

5 months ago

1.0.3

5 months ago

1.0.2

5 months ago

1.0.1

5 months ago