Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Envio de solução
Gostariamos de entender como você pensa e as decisões que você tomou durante o desenvolvimento, detalhe um pouco mais sobre:
Framework, linguagem e ferramentas
Front-end: TypeScript, Angular, Angular Material, Jasmine, Playwright.
Back-end: TypeScript, Docker, NestJS, Prisma, Jest.
Técnologias X e Y
Foi solicitado que o desafio utilizasse Nest e Angular.
Princípios de software
Clean Code: código limpo e organizado, com nomes de variáveis, métodos e classes que são autoexplicativos.
Testes Automatizados: escrevi testes unitários e end-to-end, garantindo o funcionamento de partes isoladas do sistema, mas também o fluxo completo do usuário.
KISS (Keep It Simple, Stupid): foquei em manter o design e a lógica do código simples e direta, mas funcional.
Desafios e problemas
O principal desafio foi implementar o setup de testes end-to-end no servidor, para que cada suite de teste rodasse isoladamente em um banco de dados separado e não houvesse problemas de race condition.
Melhorias e próximas implementações
Pelo prazo de 4 dias que me foi dado, foquei em implementar o "mvp" e deixar funcional, porém há algumas melhorias que podem ser feitas.
No back-end eu começaria implementando uma documentação com swagger, para que quem fosse utilizar o sistema tivesse uma facilidade em conhecer as rotas, além de autenticação e autorização para maior segurança dos dados. Também deixei comentado em algumas partes do código detalhes de melhorias (// IMPROVEMENT).
No front-end eu investiria meu tempo em um design mais bonitinho :)
Vídeo de apresentação
Grave um vídeo do seu projeto rodando e envie o link:
Sobre você
Queremos te conhecer um pouco melhor, conte um pouco sobre você.
Onde nasceu/De onde você é? Lugares que estudou, empresas que trabalhou, como você se envolveu com desenvolvimento de software.. enfim, Quem é você?
Me chamo Nathan, 23 anos, sou de Rio Preto. Comecei a estudar programação com cursos iniciantes de pyhton, sob influência do meu irmão (já tem um bom tempo de experiência na área), ainda durante o ensino médio (terceirão), até entrar na faculdade de ADS na Fatec. Ao final da graduação entrei como estagiário na PCA Engenharia de Software, no qual me efetivaram no terceiro mês, e é onde me encontro atualmente. Além da programação, sou apaixonado por musculação e alimentação, me considero uma pessoa disciplinada no qual leva rotina e compromissos a sério.
Outros detalhes
email: [email protected]