Avaliação Técnica para Engenheiro de Software
Tendo em mente que somos uma empresa do ramo imobiliário, desenvolva uma aplicação web que disponibilize um CRUD (Create, Read, Update, Delete) para o cadastro de imóveis, com uma funcionalidade adicional: a capacidade de ativar e desativar imóveis. Os campos ficam ao seu critério, mas lembre-se de realizar as validações adequadas às suas escolhas.
- Faça um fork deste repositório para a sua conta pessoal no GitHub.
- Utilize ExpressJs ou Fastify para desenvolver o backend.
- Escolha entre React ou Angular para desenvolver o frontend.
- Siga as boas práticas de codificação e organize o código em camadas (services ou use cases).
- Utilize um banco de dados de sua escolha (recomendamos SQLite ou MongoDB).
- Forneça endpoints RESTful para cada operação do CRUD.
- Implemente validações adequadas para garantir a integridade dos dados.
- Adicione recursos extras (autenticação, pesquisa, responsividade) para destaque adicional (opcional).
- Faça commits atômicos e com mensagens descritivas.
- Ao concluir, abra um pull request de volta para este repositório.
O código deve ser organizado em camadas, como services ou use cases, para garantir uma arquitetura modular e fácil manutenção.
Envie o código completo, incluindo frontend, backend e documentação necessária para rodar os projetos no README por meio de um pull request até a data limite especificada.
Sua solução será avaliada com base na eficiência, legibilidade do código, boas práticas de desenvolvimento, capacidade de resolução de problemas, aderência aos requisitos fornecidos e na organização do código em camadas.
Agradecemos pelo seu interesse e esforço nesta etapa do processo seletivo. Estamos ansiosos para revisar sua contribuição!