Avaliação Técnica para Engenheiro de Software
Tendo em mente que somos uma empresa do ramo imobiliário, desenvolva uma aplicação web ou mobile 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 utilizando um botão no detalhe do imóvel. 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.
- Caso opte por mobile, utilize react-native ou expo para o app (desconsidere 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 backend, frontend ou app 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!