Comments (30)
Oi matheus-vieira.
A parte de ser serverless muito me agrada.
Não conheço esse baço de dados, mas parece ser uma boa forma de fazer o que se necessita.
Lembrando esse projeto não está em "produção" mas se essa implementação for realmente boa, pode ser utilizado em outros casos de usos
valeu pelo comentário. posso enviar um pull-request sobre isso?
from solicitar.
Oi matheus-vieira.
Na real não havia pensado sobre isso na época.
entendo.
A ideia era basicamente agilizar a solicitação de itens em supermercado.
Por mais que foi solicitado a quarentena, e toda a ideia de ficar em casa, ainda precisávamos ir ao mercado comprar coisas como pão, leite, carne, etc.
Então pensei em algo assim:
fluxo ideal
- o usuário 1 pode solicitar itens, serviços ou doações. Esse tipo de usuário deve também registrar o estabelecimento, assim como a quantidade de itens. (esse processo inicial é a cópia local interna de cadastro - utiliza-se localstorage/session para enviar dados entre as páginas, isso evita ter que preencher a página novamente em caso de alguma falha de conexão ou problema geral) cópia 1
- Após isso, o usuário 1 clica na parte de solicitar compra. Então é enviado uma cópia dos dados para um servidor externo, isso é feito através de uma chamada ajax via uma api rest para armazenar os dados do cadastro no momento do submit. (esse processo é conhecido como cópia remota) cópia 2
- Após a cópia dos dados ser enviado a um servidor externo, é avisado ao usuário 1 que todos os dados de solicitação de compras são disponíveis e acessíveis publicamente. Ao confirmar este aviso, é enviado uma cópia da solicitação da compra pelo orbit-db. cópia 3
- Após ser feita a cópia do arquivo para o acesso público, é avisado ao usuário 1 que deve fazer o backup das informações de forma privada para não perder os dados. Nesse caso final, é enviado uma cópia da solicitação da compra pelo google drive ou dropbox. cópia 4
- Após isso, é avisado ao usuário que deve deixar uma cópia para acesso temporário (esse processo é conhecido como "cópia do arquivo para o acesso temporário" - isso é feito para que uma ou mais pessoas possam compartilhar um link de uma cópia do arquivo seja para sua mídia social de preferência ou conhecimento. bem como, pode compartilhar o link desse arquivo para uma ou mais pessoas também. cópia 5
- por fim é gerado o pdf local com as demais informações da solicitação de compra. (esse processo é a "cópia local externa de cadastro", onde é gerado uma cópia dos dados locais registrados em localstorage/session para o formato de arquivo .pdf) cópia 6
como podemos ver esse é o processo do "múltiplo cadastro" (O que você pensa desse fluxo de trabalho?)
from solicitar.
Opa, se quiser contribuir fique a vontade.
Na real acabou sendo mais uma ideia do que um projeto
from solicitar.
Oi matheus-vieira.
Opa, se quiser contribuir fique a vontade.
Na real acabou sendo mais uma ideia do que um projeto
Na real gostei da ideia e quero contribuir de alguma forma. valeu pelo contato e tenha um ótimo dia ou semana. Vou fechar essa issue já que respondeu minha dúvida.
from solicitar.
Que tipo de ideias tens?
from solicitar.
Oi matheus-vieira.
Que tipo de ideias tens?
tem uma biblioteca em js que gera pdf. pensei em utilizar a biblioteca js-pdf para gerar pdfs sobre o que cada estado, região precisa para alguma possível pandemia, ou qualquer coisa do tipo. pensei em adicionar suporte ao js-pdf no projeto solicitar.
o que pensa da ideia de adicionar suporte ao gerar pdf no projeto solicitar?
from solicitar.
Parece uma ideia bacana, mas precisa realmente integrar com uma biblioteca de pdf?
Acho que é possível fazer o JS ler o json gerado e criar uma página para ser impressa.
Que acha?
from solicitar.
Oi matheus-vieira.
Parece uma ideia bacana, mas precisa realmente integrar com uma biblioteca de pdf?
Acho que é possível fazer o JS ler o json gerado e criar uma página para ser impressa.
Que acha?
sou bem preguiçoso, gosto de coisas fáceis rs. prefiro utilizar um framework que tudo funciona da forma como é esperado, aguardado. a biblioteca js-pdf já tem suporte json, então não seria necessário codificar para isso.
from solicitar.
Além disso teria que ter uma forma de armazenar os dados solicitados.
Hoje esses dados apenas pegam as informações e a encaminham por e-mail/WhatsApp.
Como é utilizado coisas exclusivamente estáticas, podemos realizar uma chamada um um endpoint (alguma função em uma nuvem) para realizar o armazenamento.
Tendo isso podemos ter a geração do pdf
from solicitar.
Oi matheus-vieira.
Além disso teria que ter uma forma de armazenar os dados solicitados.
Hoje esses dados apenas pegam as informações e a encaminham por e-mail/WhatsApp.
Como é utilizado coisas exclusivamente estáticas, podemos realizar uma chamada um um endpoint (alguma função em uma nuvem) para realizar o armazenamento.
Tendo isso podemos ter a geração do pdf
algumas ideias ou sugestões
- minha ideia é gerar o pdf pelo client mesmo, e as pessoas de forma descentralizada encaminham por e-mail, whatsapp, telegram isso(o pdf gerado) de forma pública/privada, aberta.
- Ou podemos ter uma api para encaminhar a ONGS(organizações não governamentais) essas solicitações.
- Outra ideia é utilizar o banco de dados orbit-db, que é público, de código aberto e descentralizado. o banco de dados orbit-db utiliza o protocolo ipfs que funciona como se fosse o torrent, a ideia é que uma ou mais pessoas sejam fontes de dados distribuído.
- Existe a implementação orbit-db em js que funciona pelo client, não haveria necessidade de servidor.
- a vantagem disso, é que uma vez o dado público, essa informação/dado não pode ser apagada, já que existem nós de rede com a cópia integral dessa informação/dado. isso é interessante para ter uma linha do tempo, sobre o que foi solicitado e encaminhado.
o que pensa dessas 3 ideias?
from solicitar.
A parte de ser serverless muito me agrada.
Não conheço esse baço de dados, mas parece ser uma boa forma de fazer o que se necessita.
Lembrando esse projeto não está em "produção" mas se essa implementação for realmente boa, pode ser utilizado em outros casos de usos
from solicitar.
Claro que pode sim
from solicitar.
Oi matheus-vieira.
Claro que pode sim
fiz o fork, ainda hoje envio o pull-request.
from solicitar.
Fiz umas alterações no projeto:
- adicionei a gem "webrick" no Gemfile to avoid erros on build
- o json de estabelecimentos é um array de verdade agora
from solicitar.
As alterações já podem ser visualizadas:
A página que utiliza esse json continua funcionando Selecionar Estabelecimento.
from solicitar.
Oi matheus-vieira.
Novidades: fiz o site https://solicitacoes.github.io/solicita/
vou fazer alguns testes da implementação aqui, e depois disso encaminhar na main desse projeto.
from solicitar.
O texto que aparece inicialmente efetuei uns ajustes:
Devido à pandemia causado pelo coronavírus espalhando o covid-19 mundo afora, profissionais de saúde e governantes recomendam que as pessoas fiquem em quarentena e que se mantenha um distanciamento social. Porém, ainda precisamos de itens, serviços, e em alguns casos, doações. Com a necessidade informada acima foi disponibilizado esse site para conectar pessoas e estabelecimentos virtualmente. Precisa comprar pão, solicite a uma padaria ou mercado. Você dono de estabelecimento, utilize esse site para receber encomendas. Dessa forma evitamos superfaturamentos de plataformas de entregas. E ainda ajudamos os pequenos comerciantes. Portanto, fique em casa!
from solicitar.
Se quiser, no meu site tem outras formas de conato comigo.
Talvez seja melhor do que aqui.
from solicitar.
Oi matheus-vieira.
Se quiser, no meu site tem outras formas de conato comigo.
Talvez seja melhor do que aqui.
viu o site novo? passa o feedback aqui: https://solicitacoes.github.io/solicita/
from solicitar.
eu vi, inclusive o comentário anterior foi sobre esse site novo
from solicitar.
Oi matheus-vieira.
eu vi, inclusive o comentário anterior foi sobre esse site novo
o que achou? viu o guia-passo a passo de cadastro? (ficou bom ou ruim?)
comenta aqui por favor o que acha dessa ideia
essa mesma ui/ux que desenvolvi vou utilizar para o cadastro através do endpoint
from solicitar.
Ficou bacana, bootsrap clássico!
Se for alterar layout recomento alterar tudo, somente o “miolo” da página vai ficar estranho, digo isso por que o cabeçalho está com outro estilo.
Na página inicial eu não sei ainda o que o usuário do sistema quer, se é solicitar ou cadastrar um estabelecimento.
Não sei qual seria o teu objetivo nesse início.
from solicitar.
Eu também acredito que o usuário precisa de micro decisões.
No meu exemplo eu alteraria o texto "Comece aqui" por "Solicite Aqui", por questões de claridade, já o Cadastre um estabelecimento acho que está claro o suficiente.
Aliás vou altera isso já e colocar os botões para cima também.
from solicitar.
Oi matheus-vieira.
Ficou bacana, bootsrap clássico!
valeu mano.
Se for alterar layout recomento alterar tudo, somente o “miolo” da página vai ficar estranho, digo isso por que o cabeçalho está com outro estilo.
já alterei o header e tirei o styles.css, deixei apenas a lib do boostrap pq é algo estático e não precisa está localmente como um arquivo na pasta assets. a vantagem disso, é que é aplicado a todos os arquivos sem vc precisar apontar no diretório da pasta assets.
Na página inicial eu não sei ainda o que o usuário do sistema quer, se é solicitar ou cadastrar um estabelecimento.
tó seguindo o fluxo do solicitar como era.
Não sei qual seria o teu objetivo nesse início.
- entendi.
- então... minha ideia é tipo adicionar uma camada de passo a passo, e depois do cadastro o usuário ter uma cópia local dos dados de cadastro, uma cópia pública no orbit-db e uma cópia externa no google drive/dropbox - caso o usuário tenha a conta num desses serviços.
- no caso de uma cópia temporária, existe serviços como o file-io que dá um link do arquivo em até 24 horas ou é até 1 semana, não lembro.
- agora se ele quiser armazenar os dados, existem coisas como airtable/baserow que são no-code apps que possuem tabelas com linhas ilimitadas, até o plano free mesmo. ou com goorm-ide, que é um serviço de nuvem gratuito com 10gb de armazenamento.
o que acha da ideia de oferecer suporte múltiplo ao cadastro?
No meu exemplo eu alteraria o texto "Comece aqui" por "Solicite Aqui", por questões de claridade, já o Cadastre um estabelecimento acho que está claro o suficiente.
acho uma ótima ideia, farei isso agora.
atualização: fiz a correção do texto e do menu como pode ver aqui
primeiro o usuário ler sobre o projeto e como seus dados serão processados. depois de ler e confirmar que leu, vai na parte de análise onde envia os dados
*após enviar os dados, ele pode ir para a parte de selecionar estabelecimentos ou confirmação dos dados. caso não confirme os dados, o processo/análise é anulado/arquivado. Ou seja, só é enviado após uma confirmação final.
from solicitar.
Atualizei a minha versão com os links duplicados, podes ver aqui.
from solicitar.
então... minha ideia é tipo adicionar uma camada de passo a passo, e depois do cadastro o usuário ter uma cópia local dos dados de cadastro, uma cópia pública no orbit-db e uma cópia externa no google drive/dropbox - caso o usuário tenha a conta num desses serviços.
Será que precisamos disso? E se utilizar um local-storage para realizar esse armazenamento apenas local, sem dependências externas para o usuário.?
o que acha da ideia de oferecer suporte múltiplo ao cadastro?
o que seria essa ideia de "múltiplo cadastro"
from solicitar.
Hoje já uso o local storage para fazer alguns armazenamentos.
Pode ser que seja interessante ter no local storage os dados do cara para ele não ficar inserindo toda vez.
No momento que o usuário solicitar, verifica se tem informações no local storage,
- se tiver vai direto para a seleção do estabelecimento
- caso contrário solicita os dados
- tem que ter uma informação dizendo que os dados são salvos localmente no navegador e será somente compartilhado com o estabelecimento selecionado
from solicitar.
Oi matheus-vieira.
o que seria essa ideia de "múltiplo cadastro"
- múltiplo cadastro: significa ter várias versões integrais do mesmo cadastro
porque ter esse recurso?
- eu ando lendo coisas como algoritmos em sistemas bancários para evitar fraudes, e algoritmos mais inteligentes e sofisticados para evitar fraudes também. o recurso "múltiplo cadastro" envolve essa ideia.
- isso garante maior auditabilidade.
- se por ventura alguém perder o acesso ao google drive ou dropbox - e não tiver acesso aos dados. pode solicitar isso novamente, com uma cópia pública ou uma cópia local ou até mesmo uma cópia temporária ou uma cópia remota.
- falei que evita "fraude", quando você tem maior cópia de arquivos aumenta a confiabilidade pelo documento. pois, você pode checar as diferentes versões do mesmo documento. por exemplo, documentos históricos geralmente são verificados ou autenticados com várias versões. Isso permite verificar se houve uma alteração grande ou pequena em diversas versões de um mesmo documento.
- se não houver uma grande alteração ou pequena alteração, qualquer versão do documento é tida como integral. isso só é possível ao ter o recurso de múltiplo-cadastro.
- como se trata de doação e isso requer confiabilidade pública, penso em adotar esse recurso para isso.
- de modo geral, as pessoas podem ver todas as solicitações de forma pública. ou podem solicitar de forma privada, ao ter uma cópia local. caso ela não tenha acesso por causa da internet ou qualquer eventual falha em algum roteador ou coisa assim, como ela tem uma cópia remota e uma cópia no google drive, alguém poderia acessar e ajudar-la.
- podemos ter um hash id para cada uma dessas cópias baseada no tempo e também em algum hash autogerado.
código fonte
// Salvar localmente
const doc = new jsPDF();
doc.setProperties({
title: 'Solicitar',
subject: 'Documento de exemplo de solicitar',
author: 'James Hall',
keywords: 'generated, javascript, web 2.0, ajax',
creator: 'Codehangen'
});
document.getElementById('cadastro').onsubmit = betterOnsubmit(values => {
// gera o pdf a partir do client quando efetuar o submit
doc.text(values.nome, 20, 20);
doc.text(values.telefone, 20, 30);
doc.text(values.whatsapp, 20, 40);
doc.text(values.logradouro, 20, 50);
doc.text(values.cidade, 20, 60);
doc.text(values.estado, 20, 70);
doc.text(values.bairro, 20, 80);
doc.text(values.categoria, 20, 90);
doc.save("cadastro.pdf");
})
o que você pensa da ideia de maior auditabilidade? de uma maior verificação dos dados de cadastro?
fluxograma
.
├── app "página inicial"
│ └── acessar
│ │ └── estabelecimento
| | └── email
| | └── whatsapp
│ └── registro
│ │ └── registrar contato
│ │ └── registrar estabelecimento
│ │ └── registrar solicitação
from solicitar.
o que você pensa da ideia de maior auditabilidade? de uma maior verificação dos dados de cadastro?
Na real não havia pensado sobre isso na época.
A ideia era basicamente agilizar a solicitação de itens em supermercado.
Por mais que foi solicitado a quarentena, e toda a ideia de ficar em casa, ainda precisávamos ir ao mercado comprar coisas como pão, leite, carne, etc.
from solicitar.
Gostei da ideia do fluxo, faz total sentido.
Mas o dado salvo externamente deve ser configurado para não ser armazenado por X tempo, sendo um tempo curto como dias.
Além de tudo estar como plano "de graça" e avisar antes de fazer um pagamento.
from solicitar.
Related Issues (1)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from solicitar.