Objetivo do Projeto: Desenvolver um sistema de encurtamento de links Pix, conforme demonstrado nas imagens anexadas. O projeto deve ser desenvolvido com Angular para o front-end e
Node.js para o back-end. O sistema deve armazenar todos os links gerados em um banco de dados PostgreSQL e incluir validações de segurança para garantir que apenas os QR Codes Pix da empresa sejam processados.
Funcionalidades do Sistema:
1. Interface do Usuário (Front-End em Angular):
◦ Tela de input para que o usuário cole o código Pix completo.
◦ Botão para gerar um novo link encurtado a partir do código Pix.
◦ Exibição do link encurtado gerado na interface do usuário.
◦ Opção de copiar o link gerado para a área de transferência.
◦ Botão para enviar o link encurtado diretamente via WhatsApp.
◦ Página para o cliente visualizar o QR Code Pix usando o novo link encurtado.
- Logo da empresa
- Imagem do QR code
- Valor do QR code
- Botão para copiar código do QR code
- Nome da empresa
- CNPJ da empresa
- Banco do QR code
2. Serviços do Back-End (
Node.js):
◦ Receber e processar o código Pix completo enviado pelo front-end.
◦ Implementar lógica de encurtamento de links Pix e gerar um URL único.
◦ Armazenar os links gerados no banco de dados PostgreSQL, junto com metadados como data e hora de criação, e o código Pix original.
◦ Implementar uma validação de segurança que verifique a chave Pix do código inserido, garantindo que apenas os códigos Pix pertencentes à empresa sejam processados. Essa validação deve ser feita por meio de chamadas à API dos bancos Itaú e Bradesco para confirmar a autenticidade da chave Pix.
◦ Fornecer uma API para consultar e recuperar links encurtados existentes.
3. Banco de Dados (PostgreSQL):
◦ Estrutura de tabela que contém as seguintes informações:
▪ ID do link (chave primária)
▪ Código Pix completo
▪ Link encurtado gerado
▪ Data e hora de criação
▪ Status (ativo/inativo)
▪ Resultado da validação de chave Pix (validação com sucesso ou falha)
Tecnologias Utilizadas:
• Front-End: Angular, html, css, typescript.
• Back-End:
Node.js,
Express.js.
• Banco de Dados: PostgreSQL.
• Outras Ferramentas: Git para versionamento de código.
Entrega Esperada:
• Repositório no GitHubcom o código completo.
• Documentação de instalação e configuração do projeto.
• Instruções para execução local e deploy em servidor.
Observações:
Certifique-se de incluir validações nas entradas de dados para evitar erros e proteger o sistema contra tentativas de uso indevido. O sistema deve ser de fácil manutenção e expansível para futuras funcionalidades. A integração com as APIs bancárias deve ser feita de forma segura, utilizando autenticação adequada e métodos recomendados para chamadas de serviços externos.
Delivery term: November 15, 2024