devhatt / pet-dex-backend Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Describe the feature
A clear and short description of the feature.
[Explain the use for this feature and how it might benefits the project.]
[Provide any details or suggestions on how this feature could be implemented.]
[Include any visual representations or concepts if those are available and applicable.]
[Provide any additional information, such as context that might be relevant to the implementation of this specific feature.]
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:
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.
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.
Describe the feature
A clear and short description of the feature.
[Explain the use for this feature and how it might benefits the project.]
[Provide any details or suggestions on how this feature could be implemented.]
[Include any visual representations or concepts if those are available and applicable.]
[Provide any additional information, such as context that might be relevant to the implementation of this specific feature.]
Descreva a funcionalidade
Configurar o fluxo de notificações por e-mail utilizando a integração já existente.
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.
[Não aplicável para esta funcionalidade, pois é uma implementação nos bastidores sem uma interface visual explícita.]
É 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.
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".
Descreva a funcionalidade
Configurar o GitHub Actions para automação de tarefas no repositório do GitHub.
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.
[Não aplicável para esta funcionalidade, pois envolve principalmente configurações de scripts e pipelines de automação.]
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.
Descreva a funcionalidade
Criar um arquivo Dockerfile para construir uma imagem Docker da aplicação.
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.
Dockerfile
na raiz do projeto.[Não aplicável para esta funcionalidade, pois envolve principalmente configurações em um arquivo de texto.]
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.
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.
Descreva a funcionalidade
Criar um arquivo Docker Compose para facilitar a execução e a gestão de containers necessários para o projeto.
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.
docker-compose.yml
na raiz do projeto.[Não aplicável para esta funcionalidade, pois envolve principalmente configurações em um arquivo de texto.]
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.
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
Endpoint:
// Exemplo de rota em um framework web em Go (como Chi ou Gorilla Mux)
router.Patch("/api/configuracoes/push-notifications", UpdatePushNotificationSettings)
Lógica do Endpoint:
// 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.
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.
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.
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.
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.
[Não aplicável para esta funcionalidade, pois envolve principalmente configurações em um arquivo de texto.]
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.
Describe the feature
Fazer Conexao de Banco de dados e Muxer Chi
Describe the feature
Melhorar nosso eslint, hoje ele ta muito basico
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.
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.
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.
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.
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.
EmailNotificationRepository
que contém métodos para enviar diferentes tipos de notificações.[Não aplicável para esta funcionalidade, pois é uma implementação nos bastidores sem uma interface visual explícita.]
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.
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.
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.
[Não aplicável para esta funcionalidade, pois envolve principalmente configurações em consoles de nuvem e terminais.]
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.
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.
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".
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.
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.
É 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.
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.
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.
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.
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.
Esta sendo resolvido no PR abaixo:
- https://github.com/devhatt/pet-dex-backend/pull/88
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.
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.
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.
Descreva a funcionalidade
Adicionar autenticação aos fluxos de configuração de usuários.
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.
Esta sendo resolvido no PR abaixo:
- https://github.com/devhatt/pet-dex-backend/pull/88
[Não aplicável para esta funcionalidade, pois está relacionada a uma implementação nos bastidores sem uma interface visual explícita.]
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.
Apenas Trocar no docker compose para maria DB
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.
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
Camada de Repositório:
// 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)
}
Pacote 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.
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.
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".
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.
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".
Describe the feature
A clear and short description of the feature.
[Explain the use for this feature and how it might benefits the project.]
[Provide any details or suggestions on how this feature could be implemented.]
[Include any visual representations or concepts if those are available and applicable.]
[Provide any additional information, such as context that might be relevant to the implementation of this specific feature.]
deixar parecido com esse readme aqui https://github.com/vercel/next.js
Teste do fe
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.