Teste técnico realizado para o processo de seleção da Br24.
Considerações e decisões tomadas durante o desenvolvimento.
Como o formulário contém informações de duas entidades, foi utilizado recurso de classes de Requests
, que remove código de validação de dentro dos controladores, e permite criação de métodos para separação e renomeação dos dados dos formulários para facilitar utilização do método fill()
nos models.
Para verificar autenticidade dos webhooks, a Bitrix24 envia um token de autenticação em todos os requests de webhooks de saída, que devem ser verificados antes de serem processados.
Para isso foi definido um novo arquivo de rotas, chamado webhooks
, que são carregados com um conjunto de Middleware
semelhantes ao do conjunto API
, com adição de um middleware que realiza a verificação do token de autenticação antes da requisição chegar no controladores.
Para unificar os arquivos carregados pela página de layout, foi utilizado Laravel Mix, onde qualquer dependência CSS ou Javascript, possa ser concatenado e minificado em ambiente de produção.
As regras customizadas de validação de CPF e CNPJ foram importadas utilizando o pacote laravellegends/pt-br-validator
que também validam o formato. Por causa disso a biblioteca inputmask
foi adicionada para manter a formatação nos campos do formulário e auxiliar o usuário ao completar o campo.
Diversas funcionalidades da aplicação poderiam ser facilmente testadas para garantir o funcionamento entre atualizações. Devido ao curto tempo disponível para implementação da aplicação, não foi possível implementar testes automatizados.
O plano inicial era desenvolver um design totalmente novo utilizando o framework TailwindCSS. Essa ideia foi rapidamente descartada devido à falta de tempo. Como substituição, foi utilizado o framework Bootstrap, que conta com diversos componentes prontos e testados em diversos navegadores.
Para uma aplicação final, seria necessário implementar um pacote mais robusto da API da Bitrix24, visto que muitas funcionalidades essenciais dependem nessa integração.
A identificação das colunas customizadas da plataforma Bitrix24 foram passadas como uma configuração manual. Para uma aplicação mais robusta, seria necessário detecção automática dessas colunas pelo nome usando o endpoint de fields
da Bitrix24.
A documentação de toda aplicação foi feita em inglês, com intuito de manter melhor consistência com o código e documentação existente no framework.
Os componentes individuais do formulário podem ser componentizados de uma forma a facilitar manutenção futura da aplicação.