Este repositório contém um código de exemplo para um desafio de desenvolvimento, no qual o objetivo é criar um sistema 💻 de gestão de clientes com as seguintes funcionalidades:
- Listar clientes
- Pesquisar clientes
- Criar novos clientes
- Editar informações de clientes existentes
- Excluir clientes
☕ Os clientes devem possuir os seguintes atributos:
➡️- Nome (tipo texto, máximo de 100 caracteres permitidos e preenchimento obrigatório)
➡️- E-mail (tipo texto, máximo de 255 caracteres permitidos, preenchimento obrigatório e único)
➡️- Data de Nascimento (tipo data e preenchimento opcional)
➡️- Telefones (possibilidade de adicionar mais de um telefone e classificar por pessoal, comercial, residencial e outros)
➡️ ⚠️ - Permitir a edição e exclusão de telefones
O desafio deve ser desenvolvido considerando os seguintes critérios:
⚠️ - Utilização do .Net Core 7
⚠️ - Utilização do Postgresql 15 ou superior
⚠️ - Uso de um ORM (pode ser NHibernate, Entity ou Dapper - Micro ORM)
⚠️ - Utilização de um dos seguintes frameworks front-end: Angular, React ou Vue.js
⚠️ - Utilização do Bootstrap 5
É permitido escolher o padrão de projeto desejado, no entanto, serão consideradas diferenciais as implementações que contemplem a arquitetura hexagonal e o padrão CQRS.
O prazo para a entrega deste desafio é de 4 dias úteis. Após a conclusão, o candidato deve disponibilizar o código-fonte do desafio, bem como o script de criação do banco de dados (tabelas, índices, etc.) neste repositório do GitHub. Em seguida, encaminhe o link do repositório para o seguinte endereço de e-mail: adrxxx@xxxxx.com.br.
O teste será avaliado em até 2 dias úteis após o recebimento do link do repositório.
Daremos preferência aos testes que atendam aos seguintes critérios:
- Utilização do NHibernate como ORM
- Utilização do Vue.js como framework front-end
- Implementação da arquitetura hexagonal
- Organização cuidadosa das classes e arquivos estáticos (CSS e JS)
- Minificação e técnicas que demonstrem preocupação com a performance no cliente e servidor (aplicação e banco de dados).
🚀 Boa sorte! 🚀
O sciprit de criação do banco foi addicionado somente a título de informação extra. Ele não deverá ser executado, visto que o back-and conta com migrations que deverão ser executadas para a criação do banco. Caso mesmo assim você opte por rodar o script sql de criação do banco, lembre-se de descomentar a linha 16 (\c "MsatecDb"). Neste caso as migrations não deverão ser executadas.