/hacknit-saude

Desafio HackNit - Tema Saúde

Primary LanguageJavaScript

VACINA AÇÃO

O projeto Vacina Ação é uma solução integrada de gestão de vacinação, que oferece fluxos de uso para agentes de saúde, gestores públicos e cidadãos, utilizando a tecnologia blockchain para garantir a transparência e inviolabilidade dos dados.

Ambiente

  • O sistema de backend funciona em qualquer Sistema Operacional
  • O aplicativo frontend foi desenvolvido com o framework ionic, e pode ser compilado para qualquer celular (Android, iPhone e Windows Mobile)
  • As linguagens de programação utilizadas foram Solidity, JavaScript, HTML e CSS
  • Foram consumidos dados compartilhados pela Secretaria de Saúde de Niterói e também do sistema SI-PNI do Ministério da Saúde
  • Foi utilizada a API Ropsten Testnet para interação com a blockchain.

Smart Contract

Foi criado um Smart Contract para criar, buscar e atualizar dados do sistema de saúde de Niterói na Blockchain da Ethereum.

Endereço público: 0x11D78F274Bc9FbAfdD1596FB2037a59d7D6FD801

interface ABI do contrato:

[ { "constant": false, "inputs": [ { "name": "cpf", "type": "uint256" }, { "name": "userEmail", "type": "string" }, { "name": "userAge", "type": "uint256" }, { "name": "name", "type": "string" }, { "name": "phone", "type": "uint256" }, { "name": "dueDate", "type": "uint256" } ], "name": "insertUser", "outputs": [ { "name": "index", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x0ddfa81c" }, { "constant": true, "inputs": [ { "name": "userCPF", "type": "uint256" } ], "name": "isUser", "outputs": [ { "name": "isIndeed", "type": "bool", "value": false } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x18a9cc1b" }, { "constant": false, "inputs": [ { "name": "cpf", "type": "uint256" }, { "name": "userEmail", "type": "string" } ], "name": "updateUserEmail", "outputs": [ { "name": "success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x2a27ad26" }, { "constant": false, "inputs": [ { "name": "cpf", "type": "uint256" } ], "name": "deleteUser", "outputs": [ { "name": "index", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x38f14845" }, { "constant": false, "inputs": [ { "name": "cpf", "type": "uint256" }, { "name": "userAge", "type": "uint256" } ], "name": "updateUserAge", "outputs": [ { "name": "success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x7562b210" }, { "constant": true, "inputs": [ { "name": "cpf", "type": "uint256" } ], "name": "getUser", "outputs": [ { "name": "userEmail", "type": "string", "value": "a@b.com" }, { "name": "userAge", "type": "uint256", "value": "10" }, { "name": "name", "type": "string", "value": "nome da pessoa" }, { "name": "phone", "type": "uint256", "value": "27147876" }, { "name": "dueDate", "type": "uint256", "value": "1566735158000" }, { "name": "index", "type": "uint256", "value": "0" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xb0467deb" }, { "constant": true, "inputs": [], "name": "getUserCount", "outputs": [ { "name": "count", "type": "uint256", "value": "1" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xb5cb15f7" }, { "constant": false, "inputs": [ { "name": "cpf", "type": "uint256" }, { "name": "dueDate", "type": "uint256" } ], "name": "updateDueDate", "outputs": [ { "name": "success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0xb9ce5a86" }, { "constant": true, "inputs": [ { "name": "index", "type": "uint256" } ], "name": "getUserAtIndex", "outputs": [ { "name": "cpf", "type": "uint256", "value": "1234" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xffcc7bbf" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "cpf", "type": "uint256" }, { "indexed": false, "name": "index", "type": "uint256" }, { "indexed": false, "name": "userEmail", "type": "string" }, { "indexed": false, "name": "userAge", "type": "uint256" }, { "indexed": false, "name": "name", "type": "string" }, { "indexed": false, "name": "phone", "type": "uint256" }, { "indexed": false, "name": "dueDate", "type": "uint256" } ], "name": "LogNewUser", "type": "event", "signature": "0xf342a36bbe43a8dc7f49c4030f0fd6b066be49db2403b165528c17ef82d7ee1c" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "cpf", "type": "uint256" }, { "indexed": false, "name": "index", "type": "uint256" }, { "indexed": false, "name": "userEmail", "type": "string" }, { "indexed": false, "name": "userAge", "type": "uint256" }, { "indexed": false, "name": "name", "type": "string" }, { "indexed": false, "name": "phone", "type": "uint256" }, { "indexed": false, "name": "dueDate", "type": "uint256" } ], "name": "LogFullUpdate", "type": "event", "signature": "0xd9b0119fabcad066ab00f9144c7554b4b13261937ae1cc50a4c59b77659a924e" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "cpf", "type": "uint256" }, { "indexed": false, "name": "index", "type": "uint256" }, { "indexed": false, "name": "userEmail", "type": "string" } ], "name": "LogUpdateUserEmail", "type": "event", "signature": "0xbbfa434374a125a57178dbed9a2b54cbd7ace85cae47910311235980e0ab665c" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "cpf", "type": "uint256" }, { "indexed": false, "name": "index", "type": "uint256" }, { "indexed": false, "name": "dueDate", "type": "uint256" } ], "name": "LogUpdateUserDueDate", "type": "event", "signature": "0xfac4c808fbf643865c95d5f2507f2e1b20627f5f64a662158a9e214736512858" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "cpf", "type": "uint256" }, { "indexed": false, "name": "index", "type": "uint256" }, { "indexed": false, "name": "age", "type": "uint256" } ], "name": "LogUpdateUserAge", "type": "event", "signature": "0xa6a3e41b0b72d48652bec055bb1e142741be1705ecc34b2312b0d567551a5f50" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "cpf", "type": "uint256" }, { "indexed": false, "name": "index", "type": "uint256" } ], "name": "LogDeleteUser", "type": "event", "signature": "0x223b022b9516cbdc9f2f98166ee2d537ca148adea24d342ae38cf0ce615ec25a" } ]

Equipe

  • Henrique de Andrade
  • Marcos Jardim
  • Pedro Marins
  • Vinicius Bittencourt
  • Wilson Bakudas

Este projeto foi desenvolvido com o suporte da Prefeitura Municipal de Niterói.