# HieChat

HieChat es una empresa de distribución White Label que cuenta con una solución de atención al cliente por WhatsApp que aumenta la productividad y organización del equipo.

## 🚀 Começando

El repositorio de HieChat tiene 3 carpetas importantes:
- backend
- frontend
- instalador

El backend está hecho en Express y tiene toda la estructura organizada dentro de esta carpeta para poder ser aplicada en el entorno del cliente. La carpeta frontend contiene todo el marco React.js que administra toda la interacción del usuario con el sistema.

La carpeta del instalador dentro de este repositorio es una copia del instalador utilizado para que los clientes del sistema puedan clonarlo dentro de la carpeta de inicio de sus servidores y continuar con la instalación automática de todas las dependencias del proyecto.

Enlace al repositorio de instalación actualizado:
- [Instalador](http://hiegit.hiesoft.net/esterlin/HIECHAT/src/master/instalador)

Consulte **[Implantação](#-implanta%C3%A7%C3%A3o)** para saber como implantar el proyeto.

### 📋 Pré-requisitos

```
- Node.js v20.x
- Postgres (release)
- Npm ( latest )
- Docker (bionic stable)
- Redis
```

### 🔧 instalación

Para iniciar la instalación del proyecto, debe tener todas las herramientas necesarias disponibles para su uso.

#### Redis
```
- su - root
- docker run --name redis-${instancia_add} -p ${redis_port}:6379 --restart always --detach redis redis-server --requirepass ${root_password}
```

#### Postgres
```
- sudo su - postgres
- createdb ${instancia_add};
- psql
- CREATE USER ${instancia_add} SUPERUSER INHERIT CREATEDB CREATEROLE;
- ALTER USER ${instancia_add} PASSWORD '${root_password}';
```

#### .env backend
```
NODE_ENV=
BACKEND_URL=${backend_url}
FRONTEND_URL=${frontend_url}
PROXY_PORT=443
PORT=${backend_port}

DB_DIALECT=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USER=${instancia_add}
DB_PASS=${mysql_root_password}
DB_NAME=${instancia_add}

JWT_SECRET=${jwt_secret}
JWT_REFRESH_SECRET=${jwt_refresh_secret}

REDIS_URI=redis://:${mysql_root_password}@127.0.0.1:${redis_port}
REDIS_OPT_LIMITER_MAX=1
REGIS_OPT_LIMITER_DURATION=3000

USER_LIMIT=${max_user}
CONNECTIONS_LIMIT=${max_whats}
CLOSED_SEND_BY_ME=true

GERENCIANET_SANDBOX=false
GERENCIANET_CLIENT_ID=Client_Id_Gerencianet
GERENCIANET_CLIENT_SECRET=Client_Secret_Gerencianet
GERENCIANET_PIX_CERT=certificado-Gerencianet
GERENCIANET_PIX_KEY=chave pix gerencianet

# EMAIL
 MAIL_HOST="smtp.gmail.com"
 MAIL_USER="seu@gmail.com"
 MAIL_PASS="SuaSenha"
 MAIL_FROM="seu@gmail.com"
 MAIL_PORT="465"

```

#### .env frontend
```
REACT_APP_BACKEND_URL=${backend_url}
REACT_APP_HOURS_CLOSE_TICKETS_AUTO = 24
```

#### Instalando dependencias
```
cd backend/
npm install --force
cd frontend/
npm install --force
```

### Ejecutándose localmente
```
cd backend/
npm run watch
npm start

cd frontend/
npm start
```

## ⚙️ Ejecutando las pruebas

//

### 🔩 Analizar pruebas de extremo a extremo

//

## 📦 Despliegue en producción

Para una correcta implementación, es necesario actualizar el código fuente de la aplicación y recrear los archivos en la carpeta dist/.

Atención: es necesario acceder utilizando el usuario de deploy

```
su - deploy
```

```
cd /home/deploy/${empresa_atualizar}
pm2 stop ${empresa_atualizar}-frontend
git pull
cd /home/deploy/${empresa_atualizar}/frontend
npm install
rm -rf build
npm run build
pm2 start ${empresa_atualizar}-frontend
pm2 save
```

```
cd /home/deploy/${empresa_atualizar}
pm2 stop ${empresa_atualizar}-backend
git pull
cd /home/deploy/${empresa_atualizar}/backend
npm install
npm update -f
npm install @types/fs-extra
rm -rf dist 
npm run build
npx sequelize db:migrate
npx sequelize db:migrate
npx sequelize db:seed
pm2 start ${empresa_atualizar}-backend
pm2 save 
```

## 🛠️ Instalacion desde el instalador

echo "Set disable_coredump false" >> /etc/sudo.conf
sudo apt update && sudo apt upgrade
sudo apt install -y git && sudo apt install -y curl && sudo apt install -y wget && sudo apt install -y npm
sudo npm i -g pm2

git clone http://hiegit.hiesoft.net/esterlin/HIECHAT.git && chmod -R 777 HIECHAT && cd HIECHAT/instalador && ./install_primaria

cd /home/deploy/hiesoft/frontend/


npx restart all
## 🛠️ Construído com


* [Express](https://expressjs.com/pt-br/) - O framework backend usado
* [React](https://react.dev/) - Framework frontend usado
* [NPM](https://www.npmjs.com/) - Gerenciador de dependências

## 🖇️ Colaborando

//

## 📌 Versión

Versión 6.0.0

## 📄 Licencia

Este projeto está bajo licencia

⌨️ com ❤️ por [HieChat](https://hiechat.net) 😊

Todos los direchos reservados a https://hiechat.net
