ats-front-resources-api
Pré requisito
Clone do projeto
Escolha uma pasta onde vai ficar o projeto e execute o seguinte comando
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:
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.
yarn
yarn link
rake candidate_setup
Obs: se algo deu errado, exclua a pasta~/.ats/ats-front-candidate/
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:
yarn dev-company
Pra compilar a área de candidatos:
yarn dev-candidate
Acessar ambientes:
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:
yarn setup
Inicie o servidor de API:
yarn server
Para fazer build do código:
yarn build
Vincule o pacote local:
yarn link
Executar o lint:
yarn lint
Execute todos os testes:
yarn test
Gerador de código:
yarn plop
Publicar código do pacote:
yarn publish
Outros comandos do ambiente de desenvolvimento:
rake
Estrutura de pastas e arquivos
Aqui está descrita a estrutura de pastas adotada para este pacote.
├── 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))
- Atenção: Todos os testes e lint devem passar, caso contrário, o CI/CD falhará
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 Ablergit push
- Para definir a nova versão no repositório Githubyarn 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