# @abler/ats-front-resources-api

> Front resources package of Abler front-end workflow

Latest version **4.3.0-components** (published 2024-03-13) · MIT license · 0 weekly downloads

## Install

```sh
npm install @abler/ats-front-resources-api
pnpm add @abler/ats-front-resources-api
yarn add @abler/ats-front-resources-api
bun add @abler/ats-front-resources-api
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 4.3.0-components |
| Published | 2024-03-13 |
| First published | 2021-04-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 43 |
| Unpacked size | 23.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Abler |
| Maintainers | vitor.alves99, matiasleites, ovini, dhouglas, renang, ablerdev |
| Keywords | abler, front-end, resources |

## Links

- npm: https://www.npmjs.com/package/@abler/ats-front-resources-api
- Repository: https://github.com/Abler-Recrutamento-Digital/ats-front-resources-api
- Homepage: https://github.com/Abler-Recrutamento-Digital/ats-front-resources-api#readme
- Issues: https://github.com/Abler-Recrutamento-Digital/ats-front-resources-api/issues
- npm.io page: https://npm.io/package/@abler/ats-front-resources-api

## Dependencies (43)

- [vue](https://npm.io/package/vue.md) ^2.7.16
- [nuxt](https://npm.io/package/nuxt.md) ^2.17.2
- [vuex](https://npm.io/package/vuex.md) ^3.6.2
- [axios](https://npm.io/package/axios.md) ^0.27.2
- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [zxcvbn](https://npm.io/package/zxcvbn.md) ^4.4.2
- [ts-node](https://npm.io/package/ts-node.md) ^10.2.1
- [chart.js](https://npm.io/package/chart.js.md) ^3.7.1
- [@mdi/font](https://npm.io/package/@mdi/font.md) ^5.9.55
- [nuxt-i18n](https://npm.io/package/nuxt-i18n.md) ^6.28.1
- [vue-color](https://npm.io/package/vue-color.md) ^2.8.1
- [typescript](https://npm.io/package/typescript.md) ^4.4.3
- [@vue/compat](https://npm.io/package/@vue/compat.md) ^3.2.19
- [quill-emoji](https://npm.io/package/quill-emoji.md) ^0.2.0
- [vue-chartjs](https://npm.io/package/vue-chartjs.md) ^4.1.0
- [vue2-editor](https://npm.io/package/vue2-editor.md) ^2.10.2
- [@nuxtjs/i18n](https://npm.io/package/@nuxtjs/i18n.md) ^7.0.3
- [vuedraggable](https://npm.io/package/vuedraggable.md) ^2.23.2
- [@nuxtjs/dayjs](https://npm.io/package/@nuxtjs/dayjs.md) ^1.4.0
- [quill-mention](https://npm.io/package/quill-mention.md) ^3.1.0
- [vue-clickaway](https://npm.io/package/vue-clickaway.md) ^2.2.2
- [vue-cropperjs](https://npm.io/package/vue-cropperjs.md) ^4.0.1
- [@nuxtjs/vuetify](https://npm.io/package/@nuxtjs/vuetify.md) ^1.12.2
- [universal-cookie](https://npm.io/package/universal-cookie.md) ^4.0.4
- [vue-quill-editor](https://npm.io/package/vue-quill-editor.md) ^3.0.6
- [@vue/compiler-sfc](https://npm.io/package/@vue/compiler-sfc.md) ^3.2.19
- [vue-lazy-hydration](https://npm.io/package/vue-lazy-hydration.md) ^2.0.0-beta.4
- [@types/vuedraggable](https://npm.io/package/@types/vuedraggable.md) ^2.24.0
- [@tinymce/tinymce-vue](https://npm.io/package/@tinymce/tinymce-vue.md) 3.2.8
- [@vue/composition-api](https://npm.io/package/@vue/composition-api.md) ^1.2.4
- [quill-mention-people](https://npm.io/package/quill-mention-people.md) ^1.0.5
- [@nuxtjs/composition-api](https://npm.io/package/@nuxtjs/composition-api.md) ^0.32.0
- [@mathieustan/vue-intercom](https://npm.io/package/@mathieustan/vue-intercom.md) ^0.0.7
- [vue-password-strength-meter](https://npm.io/package/vue-password-strength-meter.md) ^1.7.2
- [@fortawesome/fontawesome-pro](https://npm.io/package/@fortawesome/fontawesome-pro.md) ^6.4.0
- [@fortawesome/vue-fontawesome](https://npm.io/package/@fortawesome/vue-fontawesome.md) ^2.0.10
- [@fortawesome/pro-light-svg-icons](https://npm.io/package/@fortawesome/pro-light-svg-icons.md) ^6.4.2
- [@fortawesome/pro-solid-svg-icons](https://npm.io/package/@fortawesome/pro-solid-svg-icons.md) ^6.4.0
- [@fortawesome/fontawesome-svg-core](https://npm.io/package/@fortawesome/fontawesome-svg-core.md) ^6.4.0
- [@fortawesome/free-brands-svg-icons](https://npm.io/package/@fortawesome/free-brands-svg-icons.md) ^6.4.0
- [@fortawesome/pro-duotone-svg-icons](https://npm.io/package/@fortawesome/pro-duotone-svg-icons.md) ^6.4.0
- [@fortawesome/pro-regular-svg-icons](https://npm.io/package/@fortawesome/pro-regular-svg-icons.md) ^6.4.0
- [@fortawesome/sharp-solid-svg-icons](https://npm.io/package/@fortawesome/sharp-solid-svg-icons.md) ^6.4.0

## Alternatives

- [jsforce](https://npm.io/package/jsforce.md) — 851.2K weekly downloads
- [react-native-qrcode-svg](https://npm.io/package/react-native-qrcode-svg.md) — 693.5K weekly downloads
- [@salesforce/plugin-data](https://npm.io/package/@salesforce/plugin-data.md) — 394.9K weekly downloads
- [@backstage/plugin-search-common](https://npm.io/package/@backstage/plugin-search-common.md) — 308.5K weekly downloads
- [@chain-registry/types](https://npm.io/package/@chain-registry/types.md) — 38.4K weekly downloads

## Recent versions

- 4.3.0-components (latest) — 2024-03-13
- 4.2.13 — 2024-03-08
- 4.2.12 — 2024-03-06
- 4.2.11 — 2024-03-05
- 4.2.10 — 2024-03-04
- 4.2.9 — 2024-03-01
- 4.2.8 — 2024-03-01
- 4.2.7 — 2024-02-29
- 4.2.6 — 2024-02-27
- 4.2.5 — 2024-02-23
- 4.2.4 — 2024-02-23
- 4.2.3 — 2024-02-22
- 4.2.2 — 2024-02-22
- 4.2.1 — 2024-02-21
- 4.2.0 — 2024-02-21
- … 435 more at https://npm.io/package/@abler/ats-front-resources-api/versions

## README

# ats-front-resources-api
## Pré requisito

- Ter feito a configuração do <a href="https://github.com/Abler-Recrutamento-Digital/ats-monolith">repósitório do monolito</a>

- Utilizar o node na versão v14. <b>Dica</b>: <a href="https://blog.cod3r.com.br/instalando-e-utilizando-o-nvm-no/">nvm</a> auxilia no controle de versões do node

- Ter chave SSH configurada. <a href="https://medium.com/@rgdev/como-adicionar-uma-chave-ssh-na-sua-conta-do-github-linux-e0f19bbc4265">Tutorial de configuração</a>

## Clone do projeto

Escolha uma pasta onde vai ficar o projeto e execute o seguinte comando 

```bash
git clone git@github.com:Abler-Recrutamento-Digital/ats-front-resources-api.git
```
> Clone será feito por SSH

## Comandos de instalação e configuração 

Dentro da pasta do projeto, executar os seguintes comandos:
```bash 
yarn add @abler/ats-front-resources-api
``` 
  > Obs: Este pacote é responsável por fornecer a lógica de negócios e os recursos de infraestrutura para os projetos ATS Frontend da Abler.


```bash
yarn
```

```bash
yarn link
```

```bash
rake candidate_setup
```
  > Obs: se algo deu errado, exclua a pasta~/.ats/ats-front-candidate/


```bash
rake company_setup
```
  > Obs: se algo deu errado, exclua a pasta~/.ats/ats-front-company/


## Compilar e acessar o projeto

Na pasta do projeto, executar o seguinte comando:

Pra compilar a área de empresas:
```bash
yarn dev-company
```

Pra compilar a área de candidatos:
```bash
yarn dev-candidate
```

Acessar ambientes: 
- Candidatos -> http://candidate.lvh.localhost:3001
- Empresas -> http://subdominiodaempresa.lvh.localhost:3002/app/candidates

> Para o acesso a plataforma de empresas será necessário uma configuração a mais que será mostrado no passo seguinte

## Passos para acessar a plataforma de empresas

Vamos utilizar o Nubank como exemplo, mas pode ser feito com qualquer uma.

- Primeiro deve acessar a plataforma admin com o seu login que criou quando fez a configuração do monolito.

- Após faz o login deve ir na opção funcionalidades(quinta opção da sidebar).

- Procurar a opção "Nova plataforma de empresas" e clicar em configurar

- Na seção empresas configuradas, inserir o texto Nubank e clicar no botão de Adicionar

Após esses passos vc conseguirá acessar a plataforma pelo link http://nubank.lvh.localhost:3002/app/sign-in, mas para fazer o login é necessário alterar a senha de um usuário e isso será feito da seguinte forma:

- Acessar a pasta do monolito e rodar o comando `rails c`

- Acessar informações do primeiro usuário do nubank -> `Company.find(402).company_users.first`. É utilizado o 402 pois, é o código do Nubank na plataforma.

- Alterar a senha do primeiro usuário do nubank -> `Company.find(402).company_users.first.update_attribute('password', 'nova-senha')`

Agora irá conseguir fazer o login no link http://nubank.lvh.localhost:3002/app/sign-in utilizando o e-mail admin@nubank.com.br e a senha que alterou no passo anterior. 

## Outros comandos

Configure o servidor e instale as dependências:

```bash
yarn setup
```

Inicie o servidor de API:

```bash
yarn server
```

Para fazer build do código:

```bash
yarn build
```

Vincule o pacote local:

```bash
yarn link
```

Executar o lint:

```bash
yarn lint
```

Execute todos os testes:

```bash
yarn test
```

Gerador de código:

```bash
yarn plop
```

Publicar código do pacote:

```bash
yarn publish
```

Outros comandos do ambiente de desenvolvimento:

```bash
rake
```

## Estrutura de pastas e arquivos

Aqui está descrita a estrutura de pastas adotada para este pacote.

```bash
├── src                                       - Folder with source
│   ├── Application                           - Folder with implementation of bounded context abstraction
|   │   └── Bounded Context                   - Folder with delimited context name
|   │       └── Version                       - Folder with delimited context version application
|   │           └── Domain                    - Folder with domain name
│   ├── BoundedContext                        - Folder with bounded context abstraction
|   │   └── Bounded Context                   - Folder with delimited context name
|   │       └── Domain                        - Folder with domain name
|   │           ├── Use Case                  - Folder with domain use cases
|   │           │   └── Command.ts            - Implementing a use case command
|   │           └── Repository.ts             - Abstract domain repository
│   ├── Domain                                - Folder with domain layer
|   │   ├── Aggregate                         - Folder with domain aggregates
|   │   ├── Authentication                    - Folder with domain authentication
|   │   └── Entity                            - Folder with domain entity
|   │   └── ValueObject                       - Folder with domain value objects
│   └── Infrastructure                        - Folder with infrastructure layer
|       ├── Assets                            - Folder with assets files
|       ├── DataMapper                        - Folder with data mappers from api
|       ├── Nuxt                              - Folder with nuxt UI implmentation
|       ├── Support                           - Folder with support classes
|       └── Vue                               - Folder with vue tools consuming application layer
├── tools                                     - Folder with required projects and tools
|   ├── client                                - Folder with client applications
|   ├── plop                                  - Folder with plop
|   │   ├── Templates                         - Folder with plop templates
|   │   └── plopfile.ts                       - Plop config
|   └── server                                - Folder with Application layouts
|       ├── .env                              - Ats-monolith env
|       ├── backend.backup                    - Ats-monolith backup
|       └── docker-compose.yml                - Docker-composer with required containers
├── .eslintignore                             - Eslint ignore files
├── .eslintrc.js                              - EsLint config file
├── .gitignore                                - Git ignore files
├── .npmignore                                - Npm ignore files
├── *.d.ts                                    - Types config from typescript
├── jest.config.js                            - Test config
├── package.json                              - Dependencies and scripts
├── Rakefile                                  - Rake tasks
├── README.md                                 - This file
├── tsconfig.json                             - Typescript configuration
└── yarn.lock                                 - Dependencies lock versions
```

## Instruções de deploy

Requisitos:

- Permissão no github para fazer push `dev` e `master/main`
- Ter um usuário no **npmjs** (solicitar ao Guizão))
- <font color="red">Atenção: **Todos os testes e lint devem passar**, caso contrário, o CI/CD falhará</font>

Passos:

- `yarn publish` - Isso solicitará a nova versão do projeto. Será necessário usar o usuário **npmjs** e uma **senha** de uso único que será enviada para o seu e-mail da Abler
- `git push` - Para definir a nova versão no repositório Github
- `yarn client-upgrade-resources` -  Ele obterá a última versão do pacote de recursos e definirá os projetos e enviará para `dev`
  - Se for necessário atualizar apenas um projeto. Usar `candidate-upgrade-resources` ou `company-upgrade-resources`
- **Deploy em produção** Abrir Pull Request de `dev` para `master` no ***projeto de candidatos*** e ***projeto de empresa***

---
_Source: https://npm.io/package/@abler/ats-front-resources-api · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
