Olá desenvolvedor(a)! Bem-vindo(a) ao Desafio Técnico do OZmap. Este é um projeto que simula um cenário real de nossa empresa, onde você irá desempenhar um papel crucial ao desenvolver uma API RESTful robusta para gerenciar usuários e localizações. Estamos muito animados para ver sua abordagem e solução!
Em um mundo conectado e globalizado, a geolocalização se torna cada vez mais essencial. E aqui no OZmap, buscamos sempre otimizar e melhorar nossos sistemas. Assim, você encontrará um protótipo que precisa de sua experiência para ser corrigido, melhorado e levado ao próximo nível.
- Node.js: Versão 20 ou superior.
- Banco de Dados: Mongo 7+.
- ORM: Mongoose / Typegoose.
- Linguagem: Typescript.
- Formatação e Linting: Eslint + prettier.
- Comunicação com MongoDB: Deve ser feita via container.
- CRUD completo para usuários.
- Cada usuário deve ter nome, email, endereço e coordenadas.
- Na criação, o usuário pode fornecer endereço ou coordenadas. Haverá erro caso forneça ambos ou nenhum.
- Uso de serviço de geolocalização para resolver endereço ↔ coordenadas.
- Atualização de endereço ou coordenadas deve seguir a mesma lógica.
- CRUD completo para regiões.
- Cada região tem um nome, coordenadas e um usuário que será o dono da região.
- Listar regiões contendo um ponto específico.
- Listar regiões a uma certa distância de um ponto, com opção de filtrar regiões não pertencentes ao usuário que fez a requisição.
- Autenticação não é necessária.
- Unitários e de integração.
- Documentação completa da API.
- Interface para visualização de logs.
- Exportação de relatórios (.csv).
- Cobertura de código.
- Organização e clareza do código.
- Estruturação do projeto.
- Qualidade e eficiência do código.
- Cobertura e qualidade de testes.
- Pontos diferenciais citados acima.
- Tempo de entrega.
- Padronização e clareza das mensagens de erro.
- Organização dos commits.
- Implementação de logs.
- Adesão às boas práticas de API RESTful.
- Faça um fork deste repositório.
- Crie uma branch com o padrão
seu-nome-sobrenome
. - Envie um email
[email protected]
informando que o teste foi concluído. - Aguarde nosso feedback.
Estamos ansiosos para ver sua implementação e criatividade em ação! Boa sorte e que a força do código esteja com você! 🚀