Coder Social home page Coder Social logo

bndes / bndestoken Goto Github PK

View Code? Open in Web Editor NEW
28.0 11.0 13.0 6.04 MB

Token para representar as liberações do BNDES de forma a prover mais transparência de recursos públicos.

License: GNU General Public License v3.0

Shell 0.93% JavaScript 45.01% TypeScript 40.15% CSS 1.82% HTML 11.85% Dockerfile 0.23%

bndestoken's Introduction

BNDES TOKEN

Token para representar as liberações do BNDES de forma a prover mais transparência de recursos públicos.
Do you want to know how to install or execute bndestoken? See Instalation-Execution-Guide.md

ATORES

  1. BNDES: Empregado(s) do BNDES responsável(is) por (i) analisar os cadastros de clientes e fornecedores, (ii) realizar as liberações de crédito e (iii) efetivar os resgates.

  2. Cliente: Cliente contratado do BNDES, que obteve um financiamento ou apoio não reembolsável para o desenvolvimento e/ou implantação de um projeto.

  3. Fornecedor: Entidade pessoa jurídica que fornece produtos ou serviços ao Cliente, e por ele é remunerada para o desenvolvimento e/ou implantação de projeto que foi objeto de financiamento ou apoio não reembolsável.

  4. Sociedade: Qualquer cidadão que deseje acompanhar as liberações, transferências e resgates relacionados a financiamentos e/ou apoios não reembolsáveis feitos pelo BNDES.

FUNCIONALIDADES

  1. BNDES:

a. Liberar – Permite que o BNDES libere recursos para um cliente de um financiamento ou apoio não reembolsável. São pré-requisitos que o financiamento ou apoio já tenham sido contratados junto ao BNDES e que o Cliente tenha realizado o cadastro da sua conta Blockchain.

b. Validar Cadastro – Permite que o BNDES valide o cadastro da conta Blockchain de um Cliente ou Fornecedor após a checagem dos dados cadastrados na aplicação e dos documentos enviados.

c. Liquidar Resgates – Permite que o BNDES liquide os resgastes solicitados pelo Fornecedor, ou seja, que os BNDESTokens detidos pelo Fornecedor sejam devolvidos ao BNDES e queimados na sequência, mediante a transferência do valor correspondente em dinheiro fiduciário para a conta corrente do Fornecedor.

  1. Cliente:

a. Associar Conta – Permite que o Cliente associe a sua conta Blockchain ao seu CNPJ e subcrédito, mediante o envio de uma declaração assinada com o seu e-CNPJ.

b. Transferir – Permite que o Cliente transfira BNDESTokens para um Repassador ou para um Fornecedor, mediante o registro da justificativa para transferência e a associação opcional de um documento de suporte à transação, como o link de uma nota fiscal eletrônica ou um recibo digitalizado.

c. Consultar Transferências – Permite que o Ciente visualize as transferências de BNDESTokens realizadas.

d. Trocar Conta – Permite que o Cliente troque a conta Blockchain associada a um subcrédito, mediante o envio de nova declaração assinada com o seu e-CNPJ. O Cliente pode precisar trocar a conta devido à perda ou ao roubo da chave privada.

  1. Fornecedor:

a. Associar Conta - Permite que o Fornecedor associe a sua conta Blockchain e a sua conta corrente ao seu CNPJ, mediante o envio de uma declaração assinada com o seu e-CNPJ.

b. Solicitar Resgate – Permite que o fornecedor solicite o resgate de BNDESTokens que estão sob sua posse junto ao BNDES.

c. Trocar Conta – Permite que o Fornecedor troque a conta Blockchain associada a um subcrédito. O Fornecedor pode precisar trocar a conta devido à perda ou ao roubo da chave privada.

  1. Sociedade:

a. Dashboard Cadastro – Permite que a Sociedade acesse as informações das transações de cadastro de contas Blockchain de Clientes, Repassadores e Fornecedores.

b. Dashboard Transações – Permite que a Sociedade acesse as informações das transações de liberação, transferência, solicitações de resgate e liquidações de resgate entre o BNDES, Clientes, Repassadores e Fornecedores.

COMPONENTES

  1. Front: interface visual da aplicação, com telas para acessar as funcionalidades descritas abaixo. O front está escrito em Angular 4.

  2. Back: camada da aplicação responsável pela integração com os sistemas legados escrita em NodeJS. Hoje, os sistemas legados estão mockados numa base Mongo.

  3. Back-Blockchain: camada da aplicação que é executada on-chain. Os smarts contracts fazem parte dessa camada e são escritos em Solidity.

bndestoken's People

Contributors

diogomoreno avatar josenogueiradalmeida avatar suzigit avatar vanessaalm 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bndestoken's Issues

Bug - 2 - /cliente/consulta-transferencia: página não está funcional

  1. Não consegui utilizar a página.
  2. Não apresenta nenhum resultado e não é possível alterar o fornecedor desejado, ou visualizar lista de fornecedores disponíveis.
  3. Mesmo mudando a conta Metamask, os dados nos campos cinza não se alteram. Não há botão de atualização da conta Metamask na tela.
  4. Botão próximo não leva a nada nessas condições.

image

Bug - 2 - /fornecedor/resgate: permitiu envio para blockchain de resgate para cliente e não executou solicitações corretas

  1. Permitiu envio para blockchain de solicitação de resgate feito por cliente. Posteriormente deu erro na blockchain, mas deveria ser verificado antes de enviar à blockchain.

  2. Blockchain não executou solicitações de resgate de fornecedores com saldo suficiente. Dois testes realizados, com dois fornecedores diferentes

https://rinkeby.etherscan.io/tx/0xc1acf152536167e9c933c5de52c6a27e32c3359e25152fdc4b3126207e3c09c4

https://rinkeby.etherscan.io/tx/0x676d8e89787af3255d7cbcc94a4c5ac7dd9348fb011282020aa506bb1b050c25

  1. retorno deveria ser para página sociedade/dash-resgates

image

Ajustes de interface

  • Tela de transferência ainda apresenta subcrédito ao invés de contrato
  • Tela de liberação poderia mostrar mensagem quando tentar liberar para conta não validada. Falta de mensagem ocorreu com uma conta que havia sido trocada mas ainda não validada. Ao tentar fazer a liberação seguinte, ocorreu não houve mensagem para explicar que conta estava associada mas não validada.

Bug - 1 - bndes/val-cadastro: não reconhece conta BNDES

Ao tentar Validar ou Invalidar, mostra notificação de que é necessário que o Metamask esteja gerenciando a conta do BNDES, mesmo com a conta do BNDES selecionada. Pode estar relacionado ao Issue#9, que está mostrando como Disponível a conta do BNDES.

image

Avaliar feedback de erros para usuário - PRIORIDADE 2

Alguns erros poderiam ser logo informados ao usuário, sem esperar submeter a aplicação. Decidir quais seriam esses tipos de erros e como fazer. Um exemplo é avisar logo ao utilizar uma conta invalidada.

Decidir em que situações o botão de submeter deve ficar desabilitado

Avaliar uso do app_input_validation existente na funcionalidade de troca

Avaliar se é possível apresentar resposta de mensagem que o contrato agora retorna.

Ajustes na invalidação

Atualmente função existe no smart contract uma função para invalidar cliente/fornecedor a qualquer momento, mas é difícil para o responsável por disbursement chamá-la sem uma tela para isso (pois não usa soluções para acesso direto ao contrato).
Perguntas:

  • deveríamos separar a invalidação por cadastro de a invalidação a qualquer momento? Invalidações que não sejam do cadastro podem indicar uma situação de tentativa de fraude com maior probabilidade. Invalidações no cadastro podem muitas vezes ser apenas um erro operacional do cliente/fornecedor.
  • deveria existir outro papel isolado para realizar a invalidação a qualquer momento?
  • a função de invalidação não verifica se a conta é realmente de um cliente/fornecedor. Muito embora não exista consequência prática de invalidar papéis especiais como Responsible for Settelment etc, o método deveria retornar um erro.
  • O método também deveria retornar um erro caso a conta não exista
  • Requires deveriam sempre ter mensagem de erro associada

Melhoria - 5 - bndes/liberacao: opções drop-down subcrédito

  1. uma vez que se altera a opção do drop-down, ao voltar para a opção anterior, não são atualizadas as informações relativas à opção anterior

  2. se não há conta blockchain associada ao subcrédito, entendo que nem deveria aparecer o subcrédito na drop-down list

image

Refactoring no código - DEPOIS DO PILOTO

  • A estrutura do mongo não foi alterada para tirar a associação de contas. Isso se reflete em objetis criados no front que repetem a estrutura do mongo (cliente e fornecedor). Também impacta no server.js

  • Avaliar melhor forma de modularizar sistema fazendo mais uso de async e menos callbacks. Avaliar como não causar problemas de travamento com múltiplos usuários

  • Evitar duplicação do código que ocorre em algumas telas e tentar incorporar métodos a alguns objetos deixando a programação um pouco mais OO.

  • Evitar que os métodos do front sejam repetidas vezes chamados durante renderização da tela

  • Passar código do smart contract para inglês e tratar impacto no front

Dashboard de transações - Mapa - PRIORIDADE 3

Analisar se o mapa não deveria vir carregado com todas as setas e ir mostrando só a seta corrente ao selecionar algum ícone na tabela, pois a seleção da linha não é muito intuitiva.

Melhoria - 1 - sociedade/dash-empresas

Dash cadastro não recupera Razão Social/CNPJ/CONTRATO/SALIC/HASH quando valida e quando invalida conta cadastrada - vide 2 linhas referentes exemplo FORD e HONDA

image

image

Melhoria - 10

  1. Trocar imagem BNDESToken para um sem logo do BNDES

  2. editar campo que dá nome à aba da página "CoinApp"

image

image

Bug - 1 - /cliente/recupera-acesso-cliente: retorno da página e info em drop-downs

B1 . não tem campo SALIC
B2. aparentemente não foi gravado o campo hash na blockchain
B3. não foi tratado o status para Aguardando Validação. Gravou "false".

(a conta antiga consta no dash como trocada)
image

M1. retorno da página deveria ser para sociedade/dash-empresa
M2. não deveria aparecer a conta Artigo 1A, pois não tem conta blockchain validada associada

image

image

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.