Somos uma Fintech que atua em segmentos financeiros onde ainda não foram explorados pelas demais empresas. Por isso, gostamos de compor nossos times com profissionais multidisciplinares, que tenham alta capacidade de aprendizado, sejam detalhistas, resiliêntes, questionadores e curiosos. Você, como Dotnet Developer, será o responsável por implementar, dar manutenção, aplicar correções e propor soluções em arquiteturas RESTFul API, baseadas em Micros serviços ou WebApp sempre buscando a melhor composição de tecnologias para cada cenário.
O desafio para Dotnet Developer, tem o objetivo de analisar como você constrói uma RESTFul API e como a sua estrutura de aplicações pode ser escalável e maleável as mudanças de escopo.
Para executar o desafio de Dotnet Developer, você poderá utilizar qualquer framework ou biblioteca e banco de dados SQL Server, seguindo o passo-a-passo para a execução, atendendo aos critérios de aceitação.
Você é o responsável por construir uma RESTFul API que seja capaz de efetuar o CRUD de produtos e categorias. O produto deve conter obrigatoriamente os campos id, nome e preço e a categoria deve conter id e nome. Cada produto, pode estar relacionado a várias categorias e este não pode estar relacionado a mesma categoria mais de uma vez, bem como, cada categoria pode estar relacionada a vários produtos. A implementação deve iniciar com apenas o CRUD de produtos, sem relação ao CRUD de categorias e então, deve ser implementado o CRUD de categorias após implementado o CRUD de produtos.
É imprescindível que o CRUD de categorias seja implementado após o CRUD de produtos, pois analisaremos como você executa e automatiza as alterações na sua base de dados.
Dica: Utilize Migrations.
#1 - Fazer um fork desse repositório
git checkout -b Alan Fratti
Crie uma pasta na raíz da aplicação chamada docs/ contendo o a modelagem entidade-relacionamento (em imagem ou pdf) da sua aplicação. Você deve também, substituir o conteúdo do arquivo README.md e escrever a documentação da sua aplicação, com os seguintes tópicos:
Projeto: Descreva o projeto e como você o executou. Seja objetivo. Tecnologias: Descreva quais padrões foram utilizadas, enumerando versões (se necessário) e os links para suas documentações, bem como, qual guia de estilos de código você utilizou com o link para a sua documentação. Como rodar: Descreva como iniciar a sua aplicação. Observações: Escreva a documentação em formato Markdown.
Após implementada a solução, crie uma pull request com o seu projeto para esse repositório.
Para que seu teste tenha o mínimo necessário que atenda aos requisitos esperados, ele deve:
Atender ao que foi proposto no Desafio. Ter documentação de aplicação e modelos de banco de dados. Utilize o paradigma de orientação a objetos. Sua RESTFul API deve se comunicar em JSON e apenas nele. Utilize corretamente os códigos de retorno HTTP. Gostamos dessa abordagem. Manter uma estrutura de aplicação concisa e coerente. (Simples é melhor que complexo) Utilizar padrões semânticos em mensagens de commit. (Gostamos do padrão de commits do repositório AngularJS)
Testar ele localmente com dotnet run
e validar os endpoints.
Convenção de nome em classes, objetos, variáveis, métodos e etc.
Um planejamento de entrega das tarefas do seu desafio. (Gostamos de Trello).
Que sua estrutura de linguagem e tecnologias seja compatível com ambiente Linux.
Testes unitários.
Observação: Nenhum dos itens acima é obrigatório.
Saber que não foi você quem implementou. Processos manuais de inicialização da aplicação e banco de dados. Fraco relacionamento entre colunas nas tabelas (falta de Foreign Key e Constraints). Falta de organização de código. Falta de documentação. Histórico de commits desorganizado e despadronizado.