quenda-chatbot v1.0.50

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
- Requisitos Previos
- Instalación
- Configuración
- Ejecución del Proyecto
- Pruebas
- Análisis de Calidad de Código
- Despliegue
- Mantenimiento
- Contribuir
- 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
Clona el repositorio:
git clone https://github.com/tu-usuario/minerva-plexus.git cd minerva-plexusInstala las dependencias del proyecto:
Usando npm:
npm installO usando Yarn:
yarn installInstala Java JDK 17 (si no lo has hecho):
Usando Homebrew:
brew install openjdk@17Configura la variable de entorno JAVA_HOME:
Agrega lo siguiente a tu archivo
~/.zshrco~/.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 ~/.zshrcInstala 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.
Instala SonarScanner:
brew install sonar-scanner
Configuración
Configuración del archivo
sonar-project.properties:En el directorio raíz del proyecto, asegúrate de que exista un archivo
sonar-project.propertiescon 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:9000Configurar variables de entorno:
Crea 2 archivos
.envy.env.deven 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
Iniciar la aplicación en modo desarrollo:
Usando npm:
npm startUsando Yarn:
yarn startLa aplicación estará disponible en
http://localhost:8612.
Pruebas
Ejecutar pruebas unitarias:
Usando npm:
npm test -- --coverageUsando Yarn:
yarn test --coverageGenerar un informe de cobertura de código:
Asegúrate de que la opción
--coverageesté activada al ejecutar las pruebas para generar un informe de cobertura que se puede enviar a SonarQube.
Análisis de Calidad de Código
Ejecutar análisis de SonarQube:
Ejecuta SonarScanner para analizar el proyecto:
sonar-scannerEsto enviará los resultados del análisis a tu instancia de SonarQube en
http://localhost:9000.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
Compilar la aplicación para producción:
Usando npm:
npm run buildUsando Yarn:
yarn buildLos 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.
Instalar OpenJDK 17:
brew install openjdk@17Configurar JAVA_HOME:
Después de instalar, asegúrate de configurar
JAVA_HOMEpara apuntar a OpenJDK 17. Agrega las siguientes líneas a tu archivo~/.zshrco~/.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 ~/.zshrcVerificar la instalación de Java:
java -versionDeberías ver algo similar a
openjdk version "17.0.x".
2. Descarga e Instalación de SonarQube
Descargar SonarQube:
Descarga la versión más reciente de SonarQube Community Edition desde la página oficial de SonarQube.
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.zipNavegar al directorio de SonarQube:
cd sonarqube-x.y.z/bin/macosx-universal-64Iniciar SonarQube:
./sonar.sh startVerás mensajes indicando que SonarQube ha sido iniciado. Puedes verificar el estado con:
./sonar.sh statusAcceder 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
Instalar SonarScanner:
Usaremos Homebrew para instalar SonarScanner:
brew install sonar-scannerVerificar la instalación:
sonar-scanner --versionDeberías ver la versión de SonarScanner instalada.
4. Configuración del Proyecto con SonarQube
Crear un archivo de configuración para SonarScanner:
En el directorio raíz de tu proyecto, crea un archivo llamado
sonar-project.propertiescon 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:9000Asegúrate de ajustar las rutas y nombres según la estructura de tu proyecto.
Ejecutar SonarScanner:
sonar-scannerEsto iniciará un análisis de tu proyecto y enviará los resultados a SonarQube.
5. Configuración de Calidad en SonarQube
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%).
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
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 ensonar-project.propertiessea correcta.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 developINstalla 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 loginOcultar además el componente ChatListConversations.
DOCKER REMOTO
docker compose up --force-recreate --build
docker system prune //limpiar si es extremadamente necesarioDespliegue 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 build9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago