Git Product home page Git Product logo

pet-dex-backend's People

Contributors

aalmeida00 avatar clerijr avatar davidspader avatar devlefel avatar dominmfd avatar gabrieltrindadec avatar iasarchi avatar k1nha avatar kvnbg avatar luanc202 avatar lucasvsouza28 avatar mmaysc avatar oswaldo-oliveira avatar piluvitu avatar yuri-silveiraa avatar zoldyzdk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pet-dex-backend's Issues

Pet (Foto, Nome, Raça, Gênero, Idade)

Describe the feature
A clear and short description of the feature.

Description [Describe the new feature requested.]

Use Case

[Explain the use for this feature and how it might benefits the project.]


Implementation Details

[Provide any details or suggestions on how this feature could be implemented.]


Visual Concepts

[Include any visual representations or concepts if those are available and applicable.]


Additional Information

[Provide any additional information, such as context that might be relevant to the implementation of this specific feature.]

Sem autenticação a Pagina mostra 8 pets (sem link para pagina da ong)

Descreva a funcionalidade
Implementação de rota de listagem de pets sem autenticação, exibindo até 8 pets sem links para a página da ONG.
As propriedades do pet sao:

  • Foto
  • Nome
  • Raca
  • Genero
  • Idade

Descrição
A funcionalidade proposta visa oferecer uma visualização limitada da lista de pets para usuários não autenticados. Sem autenticação, a rota de listagem de pets apresentará até 8 animais, sendo que cada um não terá um link direto para a página da ONG responsável.

Cenário de Uso
Essa implementação proporciona uma prévia da variedade de pets disponíveis, promovendo o interesse dos usuários em se autenticarem para obter uma experiência mais completa, incluindo informações detalhadas sobre cada pet e links para as respectivas páginas das ONGs.

Detalhes de Implementação
A implementação dessa funcionalidade envolve a configuração da rota de listagem de pets, limitando a quantidade a ser exibida para usuários não autenticados. Será necessário ajustar a lógica de apresentação na interface, garantindo que os pets sejam mostrados de forma atrativa, mesmo sem links diretos para as páginas das ONGs.

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
É fundamental considerar a usabilidade e a atratividade visual da lista de pets para incentivar a autenticação. A comunicação clara sobre a limitação da visualização sem autenticação também é crucial para orientar os usuários sobre os benefícios de se autenticarem na plataforma.

Estudar como funcionaria uma hierarquia de roles

Descreva a funcionalidade
Conduzir um estudo sobre a implementação de uma hierarquia de funções (roles) de usuários utilizando um repositório de dados, com o objetivo de compreender o funcionamento e os benefícios dessa estruturação para gerenciamento de permissões.

Descrição
Esta funcionalidade propõe uma análise detalhada sobre a criação e administração de uma hierarquia de funções de usuários por meio de um repositório de dados. O intuito é compreender como essa hierarquia pode ser modelada e armazenada eficientemente, facilitando a gestão de permissões e garantindo uma abordagem flexível e escalável.

Cenário de Uso
A implementação de uma hierarquia de funções de usuários é crucial para sistemas nos quais diferentes níveis de autoridade precisam ser estabelecidos. Essa abordagem proporciona uma maneira estruturada de atribuir e gerenciar permissões, adequando-se a ambientes complexos e organizações com diversos níveis hierárquicos.

Detalhes de Implementação
O estudo abordará a modelagem da hierarquia de funções de usuários, levando em consideração aspectos como a relação entre roles, a herança de permissões e a flexibilidade na atribuição de funções a usuários específicos. Será necessário também explorar como essas informações podem ser eficientemente armazenadas e consultadas em um repositório de dados.

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação resultante do estudo deve destacar as melhores práticas na criação de hierarquias de funções de usuários, apresentando possíveis modelos de dados e estratégias para armazenamento em repositórios de dados específicos. As conclusões do estudo devem ser compartilhadas com a equipe de desenvolvimento para orientar futuras implementações relacionadas à gestão de permissões de usuários.

Integrar com o repository e package de email

Describe the feature
A clear and short description of the feature.

Description [Describe the new feature requested.]

Use Case

[Explain the use for this feature and how it might benefits the project.]


Implementation Details

[Provide any details or suggestions on how this feature could be implemented.]


Visual Concepts

[Include any visual representations or concepts if those are available and applicable.]


Additional Information

[Provide any additional information, such as context that might be relevant to the implementation of this specific feature.]

Fazer fluxo de notificações por email

Descreva a funcionalidade
Configurar o fluxo de notificações por e-mail utilizando a integração já existente.

Descrição Implementar um fluxo que permite o envio de notificações por e-mail aos usuários por meio da integração existente com o pacote de e-mail e o repositório específico para notificações por e-mail.

Cenário de Uso

Essa funcionalidade é crucial para manter os usuários informados sobre eventos importantes no sistema. O uso típico inclui situações como confirmações de cadastro, atualizações de preferências, recuperação de senha, entre outros eventos relevantes que requerem notificação imediata por e-mail.


Detalhes de Implementação
  • Integrar o repositório de notificações por e-mail nos pontos do código onde as notificações são necessárias.
  • Utilizar o pacote de e-mail existente, que possui uma implementação concreta do serviço de e-mail.
  • Configurar corretamente as credenciais do servidor SMTP no pacote de e-mail para garantir o correto funcionamento do envio de notificações por e-mail.

Conceitos Visuais

[Não aplicável para esta funcionalidade, pois é uma implementação nos bastidores sem uma interface visual explícita.]


Informações Adicionais

É importante garantir que as notificações por e-mail sejam enviadas de maneira eficiente e que a integração seja testada em diferentes cenários para garantir sua confiabilidade. Documentar o fluxo e as configurações ajudará na manutenção futura.

Fazer Endpoint de Atualizar Pet

Descreva a funcionalidade
Implementação de um endpoint para atualizar informações de um animal (Pet), permitindo que a propriedade "Porte" seja recebida e atualizada.

Descrição
Essa funcionalidade tem como objetivo ampliar a flexibilidade do sistema ao permitir que a propriedade "Porte" de um animal seja atualizada através de um endpoint específico. Isso possibilitará a gestão mais completa das informações sobre o animal, incluindo detalhes sobre o seu tamanho.

Cenário de Uso
A adição da capacidade de atualizar a propriedade "Porte" é útil quando os usuários necessitam modificar informações específicas sobre um animal, como seu tamanho, após o registro inicial.

Detalhes de Implementação
A implementação envolverá a criação de um endpoint dedicado para atualização de pets, permitindo que os clientes enviem uma requisição com as informações do pet, incluindo o novo valor para a propriedade "Porte". A lógica no backend deverá validar e processar a requisição, atualizando o porte do animal no banco de dados.

Exemplo de Requisição

PATCH /api/pets/{id}
{
  "porte": "Médio"
}

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint deve ser atualizada para refletir essa nova capacidade, e os desenvolvedores e usuários finais devem ser informados sobre a existência e uso desse recurso. Testes abrangentes devem ser realizados para garantir o correto funcionamento do endpoint de atualização do pet com a inclusão da propriedade "Porte".

Fazer setup de github actions

Descreva a funcionalidade
Configurar o GitHub Actions para automação de tarefas no repositório do GitHub.

Descrição Implementar um conjunto de workflows no GitHub Actions para automatizar tarefas como testes, build, deploy, ou qualquer outra ação desejada no repositório do GitHub.

Cenário de Uso

Essa funcionalidade é útil para automatizar processos repetitivos, como execução de testes automatizados, criação de builds, ou implantação contínua, melhorando a eficiência do desenvolvimento e garantindo a consistência nas operações do repositório.


Detalhes de Implementação
  • Criar um arquivo de configuração para o GitHub Actions no repositório.
  • Definir workflows que incluem os passos necessários para realizar as tarefas desejadas, como execução de testes, construção de artefatos, ou implantação em ambientes de produção.
  • Configurar gatilhos para acionar os workflows em eventos específicos, como push, pull request, ou cron jobs.

Conceitos Visuais

[Não aplicável para esta funcionalidade, pois envolve principalmente configurações de scripts e pipelines de automação.]


Informações Adicionais

Certifique-se de documentar os workflows criados e fornecer instruções claras sobre como outros colaboradores podem contribuir para e se beneficiar dessas automações. Além disso, teste os workflows em diferentes cenários para garantir a confiabilidade das automações.

Fazer docker file

Descreva a funcionalidade
Criar um arquivo Dockerfile para construir uma imagem Docker da aplicação.

Descrição Definir um arquivo Dockerfile que instrui o Docker sobre como construir a imagem da aplicação, incluindo as dependências e configurações necessárias.

Cenário de Uso

Essa funcionalidade é útil para encapsular a aplicação e suas dependências em uma imagem Docker, permitindo que ela seja distribuída e executada de forma consistente em diferentes ambientes.


Detalhes de Implementação
  • Criar um arquivo chamado Dockerfile na raiz do projeto.
  • Utilizar uma imagem base adequada ao ambiente de execução da aplicação.
  • Incluir instruções para copiar o código fonte da aplicação para o container.
  • Instalar dependências, configurar variáveis de ambiente e realizar outras configurações necessárias.
  • Especificar o comando de inicialização da aplicação.

Conceitos Visuais

[Não aplicável para esta funcionalidade, pois envolve principalmente configurações em um arquivo de texto.]


Informações Adicionais

Certifique-se de documentar claramente as dependências e configurações no Dockerfile. Isso facilitará a manutenção e a compreensão do processo de construção da imagem Docker. Testar a imagem em diferentes ambientes antes de distribuí-la é recomendado.

Estudar Biblioteca de autenticação

Descreva a funcionalidade
Realizar um estudo sobre bibliotecas de autenticação para posterior uso em middleware no contexto da linguagem de programação Go (Golang).

Descrição
Esta funcionalidade envolve uma investigação aprofundada das bibliotecas de autenticação disponíveis para a linguagem Go (Golang). O objetivo é identificar e compreender as melhores opções de bibliotecas que podem ser integradas como middleware para fortalecer a autenticação em rotas específicas de uma aplicação desenvolvida em Golang.

Cenário de Uso
O estudo das bibliotecas de autenticação é crucial para escolher uma solução eficiente e segura que atenda às necessidades específicas da aplicação em questão. O uso posterior dessas bibliotecas como middleware contribuirá para a implementação de um sistema robusto de autenticação, garantindo a proteção das rotas sensíveis.

Detalhes de Implementação
O processo de implementação inicia-se com a pesquisa e avaliação das bibliotecas de autenticação disponíveis para Golang. Após a seleção da biblioteca mais adequada, será necessário entender e seguir as práticas recomendadas para integrar a biblioteca como middleware nas rotas desejadas.

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
É fundamental documentar as conclusões do estudo, destacando os critérios utilizados para a escolha da biblioteca. Além disso, os desenvolvedores envolvidos no projeto devem ser informados sobre as decisões tomadas e instruídos sobre como implementar e configurar o middleware de autenticação com a biblioteca escolhida.

Fazer Docker compose

Descreva a funcionalidade
Criar um arquivo Docker Compose para facilitar a execução e a gestão de containers necessários para o projeto.

Descrição Definir um arquivo Docker Compose que especifica como os serviços (aplicação, banco de dados, cache, etc.) devem ser configurados e executados em containers.

Cenário de Uso

Essa funcionalidade é útil para padronizar e simplificar o processo de execução do projeto em diferentes ambientes. O Docker Compose permite que todos os serviços necessários sejam configurados e iniciados com um único comando.


Detalhes de Implementação
  • Criar um arquivo docker-compose.yml na raiz do projeto.
  • Definir serviços para a aplicação, banco de dados, cache e outros componentes necessários.
  • Configurar as redes, volumes e outras configurações necessárias para a comunicação entre os containers.
  • Utilizar variáveis de ambiente no arquivo Docker Compose para parametrizar configurações.

Conceitos Visuais

[Não aplicável para esta funcionalidade, pois envolve principalmente configurações em um arquivo de texto.]


Informações Adicionais

Documentar as configurações no arquivo Docker Compose e garantir que as variáveis de ambiente sejam configuradas de acordo com os requisitos do projeto. Isso facilitará a colaboração e a reprodução do ambiente em diferentes máquinas.

Fazer opção de on/off no push notification

Descreva a funcionalidade
Implementação de um endpoint para permitir que os usuários controlem a opção de receber ou não push notifications no sistema, fornecendo uma funcionalidade de ativar/desativar esse recurso.

Descrição
Essa funcionalidade permite que os usuários controlem suas preferências em relação às push notifications no sistema. Ao acessar o endpoint correspondente, os usuários podem ativar ou desativar o recebimento dessas notificações.

Cenário de Uso
Os usuários podem utilizar essa funcionalidade para personalizar suas experiências no sistema, decidindo se desejam ou não receber push notifications. Isso é particularmente útil para aqueles que desejam gerenciar o volume de notificações que recebem.

Detalhes de Implementação

  1. Endpoint:

    • Crie um endpoint que aceite requisições do tipo PATCH ou PUT para atualizar as preferências de push notifications do usuário.
    • O endpoint deve ser protegido, exigindo autenticação para garantir que apenas usuários autenticados possam modificar suas configurações.
    // Exemplo de rota em um framework web em Go (como Chi ou Gorilla Mux)
    router.Patch("/api/configuracoes/push-notifications", UpdatePushNotificationSettings)
  2. Lógica do Endpoint:

    • Implemente a lógica do endpoint para receber a preferência de push notification do usuário e atualizar o estado no banco de dados.
    // Exemplo de função de manipulação do endpoint
    func UpdatePushNotificationSettings(w http.ResponseWriter, r *http.Request) {
      // Recuperar o usuário autenticado
      user := GetAuthenticatedUser(r)
    
      // Analisar a requisição para obter a preferência do usuário (ativo ou inativo)
      var requestPayload struct {
        PushNotificationsEnabled bool `json:"pushNotificationsEnabled"`
      }
    
      if err := json.NewDecoder(r.Body).Decode(&requestPayload); err != nil {
        // Tratar erro na decodificação da requisição
        http.Error(w, "Erro na decodificação da requisição", http.StatusBadRequest)
        return
      }
    
      // Atualizar a preferência de push notification no banco de dados para o usuário
      user.PushNotificationsEnabled = requestPayload.PushNotificationsEnabled
      // Salvar as alterações no banco de dados
    
      // Responder com sucesso
      w.WriteHeader(http.StatusOK)
    }

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint deve ser elaborada e disponibilizada aos desenvolvedores e usuários finais. Certifique-se de fornecer instruções claras sobre como usar esse endpoint para controlar as configurações de push notification.

Fazer Sistema de SSO

Descreva a funcionalidade
Implementação do login por Single Sign-On (SSO), permitindo que os usuários acessem o sistema de forma autenticada através de uma única credencial, geralmente fornecida por um provedor de identidade externo.

Descrição
Esta funcionalidade propõe a adoção do Single Sign-On como método de autenticação, eliminando a necessidade de credenciais específicas do sistema. Os usuários serão redirecionados para um provedor de identidade externo, onde realizarão o login uma vez. Após a autenticação bem-sucedida, serão automaticamente autenticados em todos os sistemas conectados via SSO.

Cenário de Uso
O login por SSO oferece uma experiência simplificada aos usuários, evitando a necessidade de lembrar e gerenciar várias credenciais. Isso é especialmente útil em ambientes corporativos com diversos sistemas, nos quais os usuários podem acessar aplicativos e serviços diferentes com uma única autenticação.

Detalhes de Implementação
A implementação do login por SSO envolve a integração com um provedor de identidade externo, configurando a comunicação segura entre o sistema e o provedor. Será necessário estabelecer a lógica de redirecionamento para o provedor de identidade, a manipulação dos tokens de autenticação retornados e a criação/atualização da sessão do usuário no sistema.

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação deve incluir instruções claras sobre como os usuários podem utilizar o login por SSO, além de orientações para a administração do sistema em relação à configuração e manutenção dessa integração. A comunicação com os usuários e a equipe de suporte é fundamental para garantir uma transição suave para essa nova forma de autenticação.

Escolher biblioteca de criptografia

Descreva a funcionalidade
Conduzir um estudo para selecionar e implementar uma biblioteca de criptografia apropriada para armazenar e gerenciar as senhas dos usuários no sistema.

Descrição
Esta funcionalidade visa melhorar a segurança do sistema por meio da escolha cuidadosa e implementação de uma biblioteca de criptografia para proteger as senhas dos usuários armazenadas. A biblioteca selecionada deve oferecer algoritmos robustos e práticas seguras para garantir a integridade das informações confidenciais.

Cenário de Uso
A implementação de uma biblioteca de criptografia para senhas reforça a proteção contra ameaças de segurança, garantindo que as informações sensíveis dos usuários permaneçam confidenciais mesmo em caso de comprometimento do banco de dados.

Detalhes de Implementação
O estudo deve abranger a pesquisa de bibliotecas de criptografia amplamente reconhecidas e utilizadas na comunidade de desenvolvimento. Após a seleção, a integração da biblioteca no sistema requer a adaptação da lógica de armazenamento e validação de senhas para utilizar os métodos fornecidos pela biblioteca.

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação resultante do estudo deve abordar os critérios utilizados para a escolha da biblioteca de criptografia, bem como fornecer instruções claras para a implementação e configuração no sistema. A equipe de desenvolvimento deve ser treinada sobre as melhores práticas para o uso da biblioteca selecionada, e os testes devem ser conduzidos para garantir a eficácia e segurança da solução.

Implementar um build multistage no Dockerfile

Descreva a funcionalidade
Implementar um build multistage no Dockerfile para otimizar a construção da imagem Docker, separando as fases de construção e produção.

Descrição Utilizar um build multistage no Dockerfile para dividir o processo de construção da imagem Docker em estágios, permitindo a criação de uma imagem mais leve e eficiente para produção.

Cenário de Uso

Essa funcionalidade é útil para reduzir o tamanho final da imagem Docker, removendo dependências de construção que não são necessárias para a execução da aplicação em produção.


Detalhes de Implementação
  • Dividir o Dockerfile em estágios, identificando as dependências de construção e os artefatos necessários para a execução da aplicação.
  • Utilizar diferentes imagens base para cada estágio, como uma imagem com todas as dependências de construção e outra apenas com as dependências necessárias em produção.
  • Copiar apenas os artefatos essenciais do estágio de construção para o estágio de produção.

Conceitos Visuais

[Não aplicável para esta funcionalidade, pois envolve principalmente configurações em um arquivo de texto.]


Informações Adicionais

Certifique-se de testar a imagem gerada em diferentes ambientes para garantir que todas as dependências necessárias estejam presentes no estágio de produção. Documentar claramente as etapas e as decisões tomadas durante o processo é recomendado.

Aprimorar eslint

Describe the feature
Melhorar nosso eslint, hoje ele ta muito basico

[UPDATE PET] Incluir campo propriedade Aniversario e Dia de doacao no endpoint de Update Pet

Descreva a funcionalidade
Atualizar o endpoint de atualizar informações de um animal (Pet), permitindo que as propriedades "Aniversário" e "Dia de Doação" sejam recebidas e atualizadas.
Atualizar os campos que nao existem no banco via migrations

Descrição
Essa funcionalidade tem como objetivo possibilitar que os usuários atualizem as informações relacionadas às datas importantes de um animal, como seu aniversário e o dia em que foi adotado (Dia de Doação). Isso permite manter registros precisos e significativos sobre a história do animal.

Cenário de Uso
A inclusão da capacidade de atualizar as propriedades "Aniversário" e "Dia de Doação" é útil quando os usuários desejam manter informações detalhadas sobre os eventos significativos na vida do animal.

Detalhes de Implementação
A implementação envolve a expansão do endpoint de atualização de pets para aceitar uma requisição que inclua as novas datas. A lógica no backend deve validar e processar a requisição, atualizando as propriedades "Aniversário" e "Dia de Doação" do animal no banco de dados.

Exemplo de Requisição

PATCH /api/pets/{id}
{
  "aniversario": "2023-05-15",
  "dia_doacao": "2023-08-01"
}

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint deve ser atualizada para refletir essa nova capacidade, e os desenvolvedores e usuários finais devem ser informados sobre a existência e uso desse recurso. Testes abrangentes devem ser realizados para garantir o correto funcionamento do endpoint de atualização do pet com a inclusão das novas propriedades.

Fazer rota de listagem de pets ter autenticacao e listagem diferenciada para usuarios nao autenticados

Descreva a funcionalidade
Implementação de rota de listagem de pet com autenticação, onde a visualização sem autenticação exibirá apenas 8 animais sem links, enquanto a visualização autenticada apresentará todos os animais com links para as respectivas páginas dos animais.
As propriedades do pet sao:
- Foto
- Nome
- Raca
- Genero
- Idade

Descrição
A funcionalidade proposta visa aprimorar a segurança e controle de acesso à listagem de animais das ONGs. Sem autenticação, os usuários terão acesso a uma visualização limitada, exibindo até seis animais sem links associados. Ao autenticar-se, os usuários terão permissão para visualizar a lista completa de animais, cada um com um link direto para a página específica do animal.

Cenário de Uso
Esta funcionalidade beneficia o projeto ao oferecer uma camada adicional de segurança e personalização da experiência do usuário. A restrição de acesso sem autenticação visa proteger informações sensíveis, enquanto a visualização completa com links proporciona uma experiência mais rica e interativa para os usuários autenticados.

Detalhes de Implementação
A implementação dessa funcionalidade pode envolver a integração de um sistema de autenticação, como JWT, Oauth por exemplo e a configuração de rotas condicionais para lidar com diferentes níveis de acesso. Além disso, será necessário desenvolver a lógica de exibição dos animais, limitando a quantidade e a presença de links com base no status de autenticação do usuário.

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
É importante considerar a experiência do usuário ao implementar essa funcionalidade, garantindo que a transição entre as visualizações autenticada e não autenticada seja intuitiva e compreensível. Além disso, a documentação para os desenvolvedores e usuários finais deve ser atualizada para refletir essas alterações.

Fazer Endpoint de Cadastro de pet (Nome e RacaID e UserID)

Descreva a funcionalidade
Implementação de um endpoint para cadastrar um novo animal (Pet) no sistema, permitindo a inclusão das propriedades "Nome", "RacaID" e "UserID" associado ao proprietário do animal.

Descrição
Essa funcionalidade tem como objetivo possibilitar o cadastro de novos animais no sistema, permitindo que os usuários informem o nome do pet, sua raça e associem o animal ao seu respectivo usuário por meio do "UserID".

Cenário de Uso
O cadastro de pets é útil quando os usuários desejam incluir informações sobre seus animais de estimação no sistema, mantendo um registro organizado e associando cada animal ao seu proprietário.

Detalhes de Implementação
A implementação envolve a criação de um novo endpoint para cadastro de pets. Esse endpoint deve aceitar uma requisição contendo as informações necessárias, como "Nome", "Raça" e "UserID", e inserir os dados do animal no banco de dados, associando-o ao usuário correspondente.

Exemplo de Requisição

POST /api/pets
{
  "nome": "Max",
  "racaID": 1,
  "userID": 123456
}

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint de cadastro de pets deve ser elaborada e disponibilizada aos desenvolvedores e usuários finais. Testes extensivos devem ser conduzidos para garantir a correta funcionalidade do endpoint e a integração adequada dos dados no banco de dados.

Fazer integração com sistema de email

Descreva a funcionalidade
Integrar o sistema de e-mail para enviar notificações, utilizando um pacote de e-mail e um repositório já criados para essa finalidade.

Descrição Implementar uma funcionalidade que permite o envio de notificações por e-mail aos usuários, utilizando um pacote de e-mail e um repositório específico já existentes. O pacote de e-mail encapsula a lógica de envio de e-mails, enquanto o repositório lida com a persistência e recuperação de dados relacionados às notificações por e-mail.

Cenário de Uso

Esta funcionalidade é útil para enviar notificações importantes aos usuários por meio de e-mails. Pode ser usado em cenários como confirmações de cadastro, recuperação de senha ou qualquer outro evento que exija comunicação imediata com o usuário por e-mail. Isso melhora a experiência do usuário e mantém os usuários informados sobre eventos relevantes.


Detalhes de Implementação
  • Utilizar o pacote de e-mail existente, que possui uma implementação concreta do serviço de e-mail.
  • Criar um repositório específico para notificações por e-mail, utilizando a interface EmailNotificationRepository que contém métodos para enviar diferentes tipos de notificações.
  • Integrar o repositório de notificações por e-mail nos pontos do código onde as notificações são necessárias, como confirmação de cadastro, atualização de preferências, etc.

Conceitos Visuais

[Não aplicável para esta funcionalidade, pois é uma implementação nos bastidores sem uma interface visual explícita.]


Informações Adicionais

Certifique-se de configurar corretamente as credenciais do servidor SMTP no pacote de e-mail para garantir o correto funcionamento do envio de notificações por e-mail. Além disso, documente a nova funcionalidade para facilitar a manutenção e compreensão futuras do código.

Fazer Setup do EC2 e de outros sistemas (Mysql, Reddis)

Descreva a funcionalidade
Realizar o setup das Lambdas em GO na AWS e de outros sistemas como MySQL e Redis para suportar a infraestrutura do projeto.

Descrição Configurar e provisionar instâncias do EC2 para hospedar a aplicação, bem como configurar instâncias do MySQL e Redis para armazenamento de dados e cache, respectivamente.

Cenário de Uso

Essa funcionalidade é essencial ao iniciar um projeto que requer infraestrutura em nuvem. Configurar instâncias do EC2 permite hospedar a aplicação, enquanto o MySQL e o Redis fornecem serviços de banco de dados e cache, respectivamente.


Detalhes de Implementação
  • Criar uma instância do EC2 na AWS e instalar as dependências necessárias, incluindo a configuração do ambiente de execução da aplicação.
  • Provisionar instâncias do MySQL e Redis, configurando as credenciais e as configurações adequadas.
  • Configurar as regras de firewall (grupos de segurança) para permitir o tráfego necessário nas instâncias do EC2 e nos bancos de dados.

Conceitos Visuais

[Não aplicável para esta funcionalidade, pois envolve principalmente configurações em consoles de nuvem e terminais.]


Informações Adicionais

Certifique-se de seguir as práticas recomendadas de segurança ao configurar instâncias do EC2 e os bancos de dados. Documentar as configurações e credenciais usadas é crucial para a manutenção futura da infraestrutura.

Cadastro de ONG

Descreva a funcionalidade
Implementação de um endpoint para cadastrar uma ONG no sistema, permitindo a inclusão das seguintes propriedades: CNPJ, e-mail, localização (objeto contendo endereço, cidade, estado), imagem e redes sociais.

Descrição
Esta funcionalidade possibilita o registro de organizações não governamentais (ONGs) no sistema, fornecendo informações essenciais, como CNPJ, endereço de e-mail, localização (objeto contendo endereço, cidade, estado), imagem representativa da ONG e links para suas redes sociais.

Cenário de Uso
O cadastro de ONGs é útil para organizações que desejam se registrar no sistema para divulgar suas atividades, receber apoio e facilitar a adoção de animais.

Detalhes de Implementação
A implementação envolve a criação de um novo endpoint para o cadastro de ONGs. Este endpoint deve aceitar uma requisição contendo as informações necessárias, como CNPJ, e-mail, localização (objeto), imagem e redes sociais, e inserir os dados da ONG no banco de dados.

Exemplo de Requisição

POST /api/ongs
{
  "cnpj": "12345678901234",
  "email": "[email protected]",
  "localizacao": {
    "endereco": "Rua Exemplo, 123",
    "cidade": "Cidade",
    "estado": "Estado"
  },
  "imagem": "https://example.com/ong.jpg",
  "redes_sociais": {
    "facebook": "https://www.facebook.com/ong.example",
    "instagram": "https://www.instagram.com/ong_example"
  }
}

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint de cadastro de ONGs deve ser elaborada e disponibilizada aos desenvolvedores e usuários finais. Certifique-se de que as imagens fornecidas sejam acessíveis e relevantes para representar visualmente cada ONG. Além disso, valide a autenticidade do CNPJ e a formatação correta do e-mail durante o processo de cadastro.

[UPDATE PET] Incluir campo de Cuidados especiais (Sim ou nao e descricao)

Descreva a funcionalidade
Atualizar o endpoint de update (Pet), permitindo que a propriedade "Cuidados Especiais" seja recebida e atualizada, incluindo um campo booleano "Sim ou Não" e uma descrição associada.

Adicionar os campos faltantes no banco via migrations

Descrição
Essa funcionalidade visa oferecer aos usuários a capacidade de atualizar informações sobre cuidados especiais necessários para um animal. Com um campo booleano indicando se são necessários cuidados especiais e uma descrição associada, os usuários podem comunicar detalhes específicos sobre esses cuidados.

Cenário de Uso
A inclusão da propriedade "Cuidados Especiais" é útil quando os usuários precisam compartilhar informações importantes sobre os cuidados específicos que um animal pode precisar.

Detalhes de Implementação
A implementação envolve a expansão do endpoint de atualização de pets para aceitar uma requisição que inclua os novos valores para a propriedade "Cuidados Especiais". A lógica no backend deve validar e processar a requisição, atualizando a indicação e a descrição de cuidados especiais do animal no banco de dados.

Exemplo de Requisição

PATCH /api/pets/{id}
{
  "cuidados_especiais": {
    "necessario": true,
    "descricao": "Requer medicação diária"
  }
}

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint deve ser atualizada para refletir essa nova capacidade, e os desenvolvedores e usuários finais devem ser informados sobre a existência e uso desse recurso. Testes abrangentes devem ser realizados para garantir o correto funcionamento do endpoint de atualização do pet com a inclusão da propriedade "Cuidados Especiais".

Desenvolver endpoint de atualizar usuário

Descreva a funcionalidade
Desenvolver um endpoint para atualizar informações do usuário, permitindo a modificação das propriedades Nome, Sobrenome, Celular, Data de Nascimento, Local, Imagem de Perfil (URL) e E-mail.
Esse endpoint tem que ser coberto por uma camada de autenticacao, para permitir que somente usuarios logados, façam atualizações no perfil deles mesmos.

Descrição Criar um endpoint que aceite solicitações para atualização de informações do usuário, permitindo a modificação de propriedades específicas como Nome, Sobrenome, Celular, Data de Nascimento, Local, Imagem de Perfil (URL) e E-mail.

Cenário de Uso

Esta funcionalidade é útil quando os usuários desejam atualizar ou corrigir informações pessoais em sua conta, como detalhes de contato, data de nascimento ou localização.


Detalhes de Implementação
  • Implementar um endpoint HTTP (por exemplo, PATCH ou PUT) para receber solicitações de atualização de informações do usuário.
  • Validar se o usuario autenticado é o mesmo usuario que está atualizando
  • Validar as informações recebidas, garantindo que estejam de acordo com as regras de negócios e requisitos do sistema.
  • Atualizar as propriedades do usuário no banco de dados com base nas informações fornecidas.

Conceitos Visuais

image


Informações Adicionais

É importante documentar claramente quais propriedades do usuário podem ser atualizadas, as validações aplicadas e os possíveis retornos do endpoint. Certifique-se de garantir a segurança da operação, incluindo autenticação adequada e controle de acesso.

Trazer listagem de Raças com links de fotos e nomes

Descreva a funcionalidade
Implementação de um endpoint para listar as raças de animais (Pet), fornecendo informações como nome da raça, link para foto representativa e identificador único (ID).

Descrição
Essa funcionalidade tem como objetivo oferecer aos usuários uma lista de raças de animais disponíveis no sistema, apresentando detalhes como o nome da raça, um link para uma foto representativa e o identificador único associado à raça.

Cenário de Uso
A listagem de raças é útil para os usuários que desejam explorar as diferentes raças de animais disponíveis no sistema, proporcionando uma visão geral e informativa sobre as características de cada raça.

Detalhes de Implementação
A implementação envolve a criação de um novo endpoint para listar as raças de animais. Esse endpoint deve recuperar as informações necessárias do banco de dados e retornar uma resposta que inclua o nome da raça, um link para uma foto representativa e o identificador único (ID) associado à raça.

Exemplo de Resposta

GET /api/racas
[
  {
    "id": 1,
    "nome": "Labrador Retriever",
    "foto": "https://example.com/labrador.jpg"
  },
  {
    "id": 2,
    "nome": "Bulldog Francês",
    "foto": "https://example.com/bulldog.jpg"
  },
  // ... outras raças
]

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint de listagem de raças deve ser elaborada e disponibilizada aos desenvolvedores e usuários finais. Certifique-se de que as imagens fornecidas nos links sejam acessíveis e relevantes para representar visualmente cada raça.

Endpoint para Mostrar Dados do pet para adocao

Descreva a funcionalidade
Implementação de um endpoint para mostrar os dados de um animal disponível para adoção, incluindo imagem, localização, informações do pet e links para redes sociais da ONG responsável.

Descrição
Essa funcionalidade visa fornecer informações completas sobre um animal disponível para adoção, incluindo uma imagem representativa, a localização da ONG, detalhes específicos sobre o pet e links para as redes sociais da organização responsável.

Cenário de Uso
A exibição de dados de um pet para adoção é útil quando potenciais adotantes desejam obter informações detalhadas sobre um animal específico antes de tomar a decisão de adoção.

Detalhes de Implementação
A implementação envolve a criação de um novo endpoint que recebe o identificador único do pet para adoção como parâmetro. O sistema deve então recuperar as informações do pet e da ONG associada e retornar uma resposta contendo todos os dados relevantes.

Exemplo de Requisição

GET /api/pets-para-adocao/{id}

Exemplo de Resposta

{
  "id": 1,
  "nome": "Bella",
  "imagem": "https://example.com/bella.jpg",
  "localizacao_ong": {
    "endereco": "Rua Exemplo, 123",
    "cidade": "Cidade",
    "estado": "Estado"
  },
  "dados_pet": {
    "raca": "Vira-lata",
    "idade": 2,
    "porte": "Médio",
    // ... outras propriedades
  },
  "redes_sociais_ong": {
    "facebook": "https://www.facebook.com/ong.example",
    "instagram": "https://www.instagram.com/ong_example"
  }
}

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint de exibição de dados do pet para adoção deve ser elaborada e disponibilizada aos desenvolvedores e usuários finais. Certifique-se de que apenas pets disponíveis para adoção sejam acessíveis por meio deste endpoint.

Fazer fluxo de reset de senha

Descreva a funcionalidade
Implementar um fluxo de redefinição de senha que exige a inserção da senha antiga, a nova senha (com confirmação) e realiza verificações de segurança, incluindo a atualização da senha com criptografia.

Descrição Criar um processo de redefinição de senha mais seguro, onde os usuários devem fornecer um email, a nova senha e confirmar a nova senha. Durante o processo, realizar verificações de segurança e garantir que a nova senha seja armazenada de forma criptografada no banco de dados.

Impedimentos

Task


Cenário de Uso

Esta funcionalidade é aplicável quando os usuários desejam alterar suas senhas por motivos de segurança. Exigir uma confirmação por OTP e confirmar a nova senha ajuda a garantir a autenticidade do usuário e a prevenir alterações não autorizadas.


Detalhes de Implementação
  • Implementar um endpoint para solicitação de redefinição de senha, exigindo o email, e enviar um OTP via email.
  • Implementar o envio de email, com a biblioteca ja existente no projeto
  • Verificar a autenticidade do usuário por meio da OTP antes de permitir a redefinição.
  • Utilizar algoritmos de criptografia adequados para armazenar a nova senha no banco de dados.
  • Verificar se as duas senhas Nova e Confirmação são iguais
  • Implementar uma lógica para verificar a complexidade da senha, como requisitos de comprimento mínimo, caracteres especiais, etc.

Impedimentos - Ter todo o fluxo de autenticação feito - Ter todo o fluxo de login feito
 Esta sendo resolvido no PR abaixo:
  - https://github.com/devhatt/pet-dex-backend/pull/88

Conceitos Visuais

image


Informações Adicionais

Garantir que a nova senha seja tratada com segurança, utilizando boas práticas de criptografia. Além disso, fornecer feedback claro aos usuários durante o processo para garantir uma experiência de usuário eficiente.

Listar pets do usuário

Descreva a funcionalidade
Implementação de um endpoint para listar os animais (Pets) associados a um usuário autenticado no sistema.

Descrição
Essa funcionalidade permite que usuários autenticados obtenham uma lista dos seus animais de estimação registrados no sistema, facilitando o gerenciamento e a visualização dos animais associados à sua conta.

Cenário de Uso
A listagem de pets do usuário é útil quando os proprietários desejam revisar ou gerenciar informações específicas sobre os animais que possuem registrados no sistema.

Detalhes de Implementação
A implementação envolve a criação de um novo endpoint que requer autenticação. Este endpoint deve recuperar os dados dos animais associados ao usuário autenticado no sistema e retornar uma resposta contendo a lista de animais.

Exemplo de Requisição

GET /api/meus-pets

Exemplo de Resposta

[
  {
    "id": 1,
    "nome": "Max",
    "raca": "Labrador Retriever",
    "idade": 3,
    // ... outras propriedades
  },
  {
    "id": 2,
    "nome": "Luna",
    "raca": "Siamês",
    "idade": 2,
    // ... outras propriedades
  }
]

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint de listagem de pets do usuário deve ser elaborada e disponibilizada aos desenvolvedores e usuários finais. Certifique-se de que apenas usuários autenticados tenham acesso a este endpoint.

Fazer 2FA via Email

Descreva a funcionalidade
Implementação da autenticação de dois fatores (2FA) via e-mail, integrando essa funcionalidade à camada de envio de e-mails já existente no sistema.

Impedimentos:

Descrição
Esta funcionalidade propõe a adição de uma camada adicional de segurança por meio da autenticação de dois fatores utilizando o e-mail como canal de verificação. Ao realizar o login, os usuários receberão um código de verificação no seu endereço de e-mail registrado, e a autenticação só será concluída com sucesso após a inserção correta desse código.

Cenário de Uso
A implementação do 2FA via e-mail oferece uma camada extra de proteção para as contas dos usuários, mitigando riscos de acesso não autorizado. A integração com a camada de envio de e-mails já existente simplifica o processo, aproveitando a infraestrutura de comunicação já estabelecida no sistema.

Detalhes de Implementação
A implementação do 2FA via e-mail envolverá a geração e envio automático de códigos de verificação para os usuários após a tentativa de login. Além disso, será necessário integrar a lógica de verificação, garantindo que a autenticação seja concluída apenas com a inserção correta do código enviado ao e-mail registrado.

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
É importante documentar o fluxo completo do processo de 2FA via e-mail, destacando as mensagens de comunicação com o usuário e as etapas necessárias para a verificação do código. Além disso, a equipe de suporte e os usuários finais devem ser informados sobre essa nova camada de segurança e como utilizá-la no processo de autenticação.

Adicionar autenticação aos fluxos de configuração de usuários.

Descreva a funcionalidade
Adicionar autenticação aos fluxos de configuração de usuários.

Descrição Implementar um mecanismo de autenticação para os fluxos de configuração de usuários, garantindo que apenas usuários autenticados possam realizar ações de configuração.

Cenário de Uso

Essa funcionalidade é essencial para proteger os fluxos de configuração de usuários contra acesso não autorizado. Ela beneficia o projeto ao garantir que apenas usuários autenticados possam realizar ações como atualizar preferências, alterar configurações de segurança ou acessar informações sensíveis do perfil.


Detalhes de Implementação
  • Implementar um sistema de autenticação que valide as credenciais do usuário antes de permitir o acesso aos fluxos de configuração.
  • Utilizar tokens de autenticação seguros para verificar a identidade do usuário.
  • Integrar a autenticação nos endpoints específicos que lidam com os fluxos de configuração de usuários.

Impedimentos - Ter todo o fluxo de autenticação feito - Ter todo o fluxo de login feito
 Esta sendo resolvido no PR abaixo:
  - https://github.com/devhatt/pet-dex-backend/pull/88

Conceitos Visuais

[Não aplicável para esta funcionalidade, pois está relacionada a uma implementação nos bastidores sem uma interface visual explícita.]


Informações Adicionais

Garantir que a autenticação seja realizada de forma segura, utilizando práticas recomendadas de segurança, como hashing de senhas e gestão adequada de tokens de autenticação. Além disso, documentar os processos de autenticação facilitará a compreensão e manutenção futura do código.

[UPDATE PET] Incluir campo de Peso no endpoint de Update Pet

Descreva a funcionalidade
Atualizar o endpoint de atualizar informações de um animal (Pet), permitindo que a propriedade "Peso" seja recebida e atualizada, incluindo valor e métrica (kg ou lbs).

Adicionar propriedades que nao existem no banco via migrations

Descrição
Essa funcionalidade busca proporcionar aos usuários a capacidade de atualizar a propriedade "Peso" de um animal, fornecendo tanto o valor quanto a métrica (quilogramas - kg ou libras - lbs). Isso permite uma representação mais precisa do peso do animal no sistema.

Cenário de Uso
A inclusão da capacidade de atualizar a propriedade "Peso" com valor e métrica é útil quando os usuários necessitam não apenas modificar o valor do peso, mas também especificar a unidade de medida utilizada.

Detalhes de Implementação
A implementação envolve a expansão do endpoint de atualização de pets para aceitar uma requisição que inclua tanto o valor quanto a métrica do peso. A lógica no backend deve validar e processar a requisição, atualizando a propriedade "Peso" do animal no banco de dados.

Exemplo de Requisição

PATCH /api/pets/{id}
{
  "peso": {
    "valor": 10.5,
    "metrica": "kg"
  }
}

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint deve ser atualizada para refletir essa nova capacidade, e os desenvolvedores e usuários finais devem ser informados sobre a existência e uso desse recurso. Testes abrangentes devem ser realizados para garantir o correto funcionamento do endpoint de atualização do pet com a inclusão da propriedade "Peso" e suas métricas.

Fazer Layer de repositório e package de email

Descreva a funcionalidade
Implementação de uma camada de repositório para o envio de e-mails, utilizando um pacote de e-mail como componente independente para gerenciar a lógica de envio de mensagens eletrônicas.

Descrição
Esta camada de repositório é responsável por utilizar um pacote de e-mail para enviar mensagens eletrônicas em diferentes contextos do sistema, como confirmações de cadastro, notificações e recuperação de senha. O pacote de e-mail encapsula a complexidade do envio de e-mails e permite a substituição fácil do provedor de e-mails.

Cenário de Uso
A camada de repositório é empregada por diferentes partes do sistema para enviar e-mails em diferentes situações. O pacote de e-mail é um componente modular que pode ser reutilizado em diversas partes do sistema sem a necessidade de duplicação de código.

Detalhes de Implementação

  1. Camada de Repositório:

    • Crie uma interface para o repositório de envio de e-mails, contendo métodos para enviar diferentes tipos de e-mails.
    • Implemente a lógica para utilizar o pacote de e-mail no envio de mensagens.
    // Exemplo de interface para o repositório de envio de e-mails
    type EmailRepository interface {
      SendConfirmationEmail(user User) error
      SendNotificationEmail(message string, recipient Email) error
      // ... outros métodos relacionados a e-mails
    }
    
    // Implementação do repositório que utiliza um pacote de e-mail
    type EmailRepositoryImpl struct {
      EmailService EmailService
    }
    
    func (repo *EmailRepositoryImpl) SendConfirmationEmail(user User) error {
      // Lógica específica para enviar e-mail de confirmação usando o EmailService
      return repo.EmailService.SendConfirmationEmail(user)
    }
    
    func (repo *EmailRepositoryImpl) SendNotificationEmail(message string, recipient Email) error {
      // Lógica específica para enviar e-mail de notificação usando o EmailService
      return repo.EmailService.SendNotificationEmail(message, recipient)
    }
  2. Pacote de E-mail:

    • Desenvolva um pacote de e-mail independente que encapsula a lógica de envio de e-mails.
    • Forneça uma interface para facilitar a substituição de provedores de e-mail.
    // Exemplo de interface para o pacote de e-mail
    type EmailService interface {
      SendConfirmationEmail(user User) error
      SendNotificationEmail(message string, recipient Email) error
      // ... outros métodos relacionados a e-mails
    }
    
    // Implementação do pacote de e-mail usando um provedor específico
    type SMTPEmailService struct {
      // Configurações específicas do provedor SMTP
    }
    
    func (service *SMTPEmailService) SendConfirmationEmail(user User) error {
      // Lógica para enviar e-mail de confirmação usando SMTP
    }
    
    func (service *SMTPEmailService) SendNotificationEmail(message string, recipient Email) error {
      // Lógica para enviar e-mail de notificação usando SMTP
    }

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
Documente a camada de repositório e o pacote de e-mail para garantir uma compreensão clara de como essas funcionalidades são projetadas e utilizadas em diferentes partes do sistema. Certifique-se de implementar tratamentos adequados de erros e logging para monitorar e depurar possíveis problemas.

Fazer middleware de Autenticação

Descreva a funcionalidade
Fazer e Implementar um middleware de autenticação utilizando uma biblioteca específica para garantir a segurança nas rotas que exigem autenticação.
A escolha da biblioteca esta a cargo do estudo e escolha do responsavel em conjunto do time

Descrição
Esta funcionalidade propõe a criação de um middleware de autenticação, integrando uma biblioteca especializada para reforçar a segurança em rotas que requerem autenticação. A utilização de uma biblioteca dedicada simplificará e padronizará o processo de autenticação, proporcionando uma solução robusta e eficiente.

Cenário de Uso
A implementação desse middleware é essencial para garantir que apenas usuários autenticados tenham acesso a determinadas rotas, especialmente aquelas que lidam com informações sensíveis, como a listagem completa de pets com links para as páginas das ONGs. Esse middleware contribuirá para a proteção dos dados e a integridade do sistema como um todo.

Detalhes de Implementação
A implementação do middleware de autenticação envolve a escolha e integração de uma biblioteca específica para tratamento de autenticação. Serão necessários ajustes nas rotas existentes para aplicar o middleware quando necessário, validando as credenciais do usuário antes de permitir o acesso às funcionalidades protegidas.

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação para desenvolvedores deve ser atualizada para incluir informações sobre como utilizar e configurar o middleware de autenticação. Além disso, é recomendável realizar testes extensivos para garantir a eficácia e a segurança do sistema após a implementação dessa funcionalidade.

[UPDATE PET] Incluir campo de Castrado no endpoint de Update Pet

Descreva a funcionalidade
Atualizar o endpoint de atualizar informações de um animal (Pet), permitindo que a propriedade "Castrado" (boolean) seja recebida e atualizada.

Adicionar campos faltantes no banco via migration

Descrição
Essa funcionalidade busca possibilitar que os usuários atualizem a informação sobre se um animal é castrado ou não por meio de um endpoint específico. Isso oferece uma maneira direta de manter registros precisos sobre o estado de castração de cada animal.

Cenário de Uso
A inclusão da capacidade de atualizar a propriedade "Castrado" é útil quando os usuários desejam registrar ou modificar o status de castração de um animal no sistema.

Detalhes de Implementação
A implementação envolve a expansão do endpoint de atualização de pets para aceitar uma requisição que inclua o novo valor para a propriedade "Castrado". A lógica no backend deve validar e processar a requisição, atualizando o status de castração do animal no banco de dados.

Exemplo de Requisição

PATCH /api/pets/{id}
{
  "castrado": true
}

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint deve ser atualizada para refletir essa nova capacidade, e os desenvolvedores e usuários finais devem ser informados sobre a existência e uso desse recurso. Testes abrangentes devem ser realizados para garantir o correto funcionamento do endpoint de atualização do pet com a inclusão da propriedade "Castrado".

Criar um middleware de autorização baseado nas roles

Descreva a funcionalidade
Desenvolver um middleware de autorização baseado em funções (roles) utilizando uma biblioteca específica na linguagem de programação Go (Golang).

Necessario o estudo de biblioteca, falar com @Felipeness

Descrição
Esta funcionalidade propõe a criação de um middleware de autorização que se baseia nas funções (roles) atribuídas aos usuários. O objetivo é implementar um sistema robusto que permita restringir o acesso a determinadas rotas com base nas permissões específicas associadas às funções dos usuários. O uso de uma biblioteca especializada em Golang facilitará a implementação e manutenção desse middleware.

Cenário de Uso
O middleware de autorização baseado em funções é essencial para controlar o acesso a recursos sensíveis da aplicação. Isso possibilitará a definição clara de permissões, garantindo que apenas usuários com as funções apropriadas possam acessar determinadas rotas, contribuindo assim para a segurança e integridade do sistema.

Detalhes de Implementação
A implementação desse middleware envolve a escolha e integração de uma biblioteca específica para autorização baseada em funções. Após a seleção, será necessário configurar o middleware para avaliar as funções dos usuários e permitir ou negar o acesso de acordo com as permissões associadas.

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
É crucial documentar as funções disponíveis, suas permissões associadas e como elas serão utilizadas no processo de autorização. Os desenvolvedores devem ser informados sobre como atribuir funções aos usuários e como configurar o middleware de autorização em suas rotas específicas.

[UPDATE PET] Incluir campo de Vacinas (array de vacina tipo, data e nome do doutor)

Descreva a funcionalidade
Atualizar o endpoint de Update PET, permitindo que a propriedade "Vacinas" seja recebida e atualizada como um array de objetos contendo tipo de vacina, data de aplicação e nome do médico responsável.
Atualizar Banco de dados com as propriedades, via migrations.

Descrição
Essa funcionalidade tem como objetivo oferecer aos usuários a capacidade de manter registros detalhados sobre as vacinas aplicadas a um animal. Ao enviar um array contendo informações sobre tipo de vacina, data de aplicação e nome do médico responsável, os usuários podem manter um histórico preciso de imunizações.

Cenário de Uso
A inclusão da propriedade "Vacinas" é útil quando os usuários desejam registrar e manter um histórico completo das vacinações realizadas em um animal, proporcionando uma visão abrangente sobre a saúde do pet.

Detalhes de Implementação
A implementação envolve a expansão do endpoint de atualização de pets para aceitar uma requisição que inclua os novos valores para a propriedade "Vacinas". A lógica no backend deve validar e processar a requisição, atualizando o histórico de vacinas do animal no banco de dados.

Exemplo de Requisição

PATCH /api/pets/{id}
{
  "vacinas": [
    {
      "tipo": "V8",
      "data_aplicacao": "2023-03-01",
      "nome_doutor": "Dr. Veterinário"
    },
    {
      "tipo": "Antirrábica",
      "data_aplicacao": "2023-05-15",
      "nome_doutor": "Dr. Vet"
    }
  ]
}

Conceitos Visuais
[Incluir qualquer esboço ou representação visual, se aplicável.]

Informações Adicionais
A documentação do endpoint deve ser atualizada para refletir essa nova capacidade, e os desenvolvedores e usuários finais devem ser informados sobre a existência e uso desse recurso. Testes abrangentes devem ser realizados para garantir o correto funcionamento do endpoint de atualização do pet com a inclusão da propriedade "Vacinas".

Fazer 2FA via Email

Describe the feature
A clear and short description of the feature.

Description [Describe the new feature requested.]

Use Case

[Explain the use for this feature and how it might benefits the project.]


Implementation Details

[Provide any details or suggestions on how this feature could be implemented.]


Visual Concepts

[Include any visual representations or concepts if those are available and applicable.]


Additional Information

[Provide any additional information, such as context that might be relevant to the implementation of this specific feature.]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.