Caso precise escolher, sugerimos utilizar as seguintes tecnologias :
- Linguagem de programação Typescript (preferencialmente) ou Javascript
- Qualquer Framework de estilo
- Angular 2+ (preferencialmente), Vue.js, React ou Deno
- Flux (Redux, Vuex, etc)
- NodeJS, NestJS e/ou Express
- Testes (Que achar necessário)
- MongoDB, Postgre, CassandraDB, Redis, ou qualquer outra tecnologia NoSQL similar (se necessário)
- Qualquer tecnologia ou padrão complementar as citadas anteriormente são permitidas com as devidas justificativas no README.
Você será avaliado pela qualidade do código, pela modularidade, pela legibilidade, pela criatividade e pela quantidade de funcionalidades básicas e extra. Não se preocupe em cumprir todo o escopo, caso não tenha disponibilidade/habilidade no momento do teste. Importante: Se preocupe mais em cumprir bem e documentar bem tudo que se propor a fazer, e deixar bem claro aquilo que escolheu deliberadamente não desenvolver.
Prazo 1 semana.
No arquivo README do projeto explique o funcionamento e a solução adotada na sua implementação do desafio. É permitido utilizar templates, bibliotecas, e componentes prontos de outros projetos, porém precisam estar explicitamente descritos no README.
Importante: Favor destacar no README os pontos positivos nos quais você deseja ser avaliado, e evidenciar quais as partes você gostaria de excluir da avaliação. Isso permite que você complete o teste mais rapidamente se desejar, dando atenção somente a algumas àreas específicas, sem grandes prejuízos à sua avalização de qualidade do código.
Utilize qualquer ferramenta que achar melhor para realização dos testes unitários. Faça a cobertura de testes que achar necessário, e justifique no README a abordagem utilizada. Caso queira demonstar domínio na metodologia de TDD, faça commits separados para cada uma das fases para cada feature implementada: elaboração dos testes -> codificação -> refação.
Os principais critérios de avaliação são:
- Usabilidade
- Raciocínio lógico na construção da solução
- Qualidade de código
- Documentação do projeto (readme)
- Performance
Serão avaliados também os critérios de:
- Criatividade
- Documentação de código
- Responsividade
- Acessibilidade
- Apresentação visual
- Cobertura de testes
- Documentar antes de desenvolver, sempre que possível
- Fazer commits com frequência, com boa descrição do que foi feito
- Utilizar o Lighthouse (ou similar) para medir a qualidade do frontend da aplicação
- Utilizar as badges no readme (sugestão) para indicar a cobertura de testes, status de build, vulnerabilidades e afins
- Utilizar o Swagger ou similar para facilitar os testes e documentação das APIs (se necessário)
- Utilizar o Inglês como linguagem padrão para o código e documentação
- utilizar o SonarQube (ou similar) para medir a qualidade do código