Skip to content

Criei uma API RESTful robusta para gerenciar usuários e localizações.

Notifications You must be signed in to change notification settings

DevGabiMrqs/technical-assessment-dev-main

Repository files navigation

Olá bem-vindo a minha API!

Baixando o Projeto!

Você pode baixar usando o seguinte comando no seu terminal:
-> git clone https://github.com/DevGabiMrqs/technical-assessment-dev-main.git

Inicializando o Projeto!

Antes de iniciar o projeto, certifique-se de ter todas as dependências instaladas.

Você pode instalá-las executando:
-> npm install

Depois de instalar as dependências, você pode iniciar o projeto com o seguinte comando:
-> npm run dev

Isso iniciará o projeto e você poderá acessá-lo em http://localhost:3000.

--

OZmap Challenge: Construindo a Geolocalização do Futuro

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!

🌍 Visão Geral

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.

🛠 Especificações Técnicas

  • 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.

🔍 Funcionalidades Esperadas

Usuários

  • 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.

Regiões

  • CRUD completo para regiões.
  • Uma região é definida como um polígono em GeoJSON, um formato padrão para representar formas geográficas. Cada região tem um nome, um conjunto de coordenadas que formam o polígono, 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.
  • Exemplo de um polígono simples em GeoJSON:
    {
      "type": "Polygon",
      "coordinates": [
        [
          [longitude1, latitude1],
          [longitude2, latitude2],
          [longitude3, latitude3],
          [longitude1, latitude1] // Fecha o polígono
        ]
      ]
    }

Testes

  • Unitários e de integração.

🌟 Diferenciais

  • Autenticação não é requisito, podendo então o usuário ser fornecido junto do corpo da requisição. Caso implemente autenticação, o usuário deve ser obtido a partir do token.
  • Interface básica de usuário.
  • Documentação completa da API.
  • Internacionalização.
  • Cobertura de código.
  • Utilização de mongo session

Critérios de Avaliação

  1. Organização e clareza do código.
  2. Estruturação do projeto.
  3. Qualidade e eficiência do código.
  4. Cobertura e qualidade de testes.
  5. Pontos diferenciais citados acima.
  6. Tempo de entrega.
  7. Padronização e clareza das mensagens de erro.
  8. Organização dos commits.
  9. Implementação de logs.
  10. Adesão às boas práticas de API RESTful.

🚀 Entrega

  1. Crie um repositório público com a base desse código.
  2. Crie uma branch para realizar o seu trabalho.
  3. Ao finalizar, faça um pull request para a branch main deste repositório.
  4. Envie um email para [email protected] informando que o teste foi concluído.
  5. 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ê! 🚀

About

Criei uma API RESTful robusta para gerenciar usuários e localizações.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published