Projeto de sistema para digitalizar e gerenciar documentos

652 views
Skip to first unread message

Márcio Sancho

unread,
Feb 28, 2013, 11:43:53 AM2/28/13
to python...@googlegroups.com, pug...@googlegroups.com
Boa tarde pessoal,


Esses dias estive pesquisando soluções para digitalização e gerenciamento de documentos, algo que fosse simples e prático, mas não encontrei.
Encontrei sim, algumas aplicações enooormes, algumas open, outras pagas (e caras), em Java, PHP e principalmente .NET. Ainda tentando, entrei em contato com algumas empresas, mas nada me agradou.
Como estou iniciando meus estudos em Python, resolvi então meter a mão na massa e criar o que preciso, e aqui estou para pedir ajuda e algumas dicas, e também se alguém se interessar, colaborar comigo.
Vamos lá.
Todos os softwares que encontrei funcionam basicamente da mesma forma. Você tem um aplicativo desktop que faz a digitalização do documento. Nesse aplicativo você também tem opções de anexar outros documentos ou fotos ao arquivo, adicionar indexadores (tipo palavras chaves para buscas) e fazer o upload dos documentos para o servidor web. Além deste aplicativo desktop, você tem a parte web, onde o cliente vai acessar os documentos, com opções de busca, relatórios, etc.
Um dos softwares que analisei tem uma lógica muito boa de trabalho. Então já fiz vários mockups baseados nele, pra facilitar o entendimento.
Minhas dúvidas e questionamentos:

  1. No aplicativo desktop, o que seria mais fácil e prático (para um iniciante) pra trabalhar a interface?  Qt, Tkinter, etc?
  2. Falando nisso, não tem como acessar o scanner via browser né?
  3. Fora a imagescanner, tem outra biblioteca pra fazer essa conversa com o scanner ou essa já tá legal?
  4. Opções como rotacionar imagem, e opções do scanner como frente e verso, colorido ou não, como eu faço? Uso o quê?
  5. Sugestão de SGBD: MySQL, PostgreSQL?
  6. Uma aplicação como essa teria um trabalho "especial" a ser feito no banco de dados, em vista da questão de quantidade de dados x busca, ou só na aplicação mesmo?
  7. A parte web seria mais prático utilizar um framework tipo web2py ou outro?
  8. Pra funcionar tanto em GNU/Linux quanto em Windows, muda muita coisa? Tem como já ficar multiplataforma o app desktop?
  9. No browser posso visualizar imagens (gif, jpg, png, etc) e pdfs, mas arquivos do tipo doc, xls, tem algo que pelo menos mostre o conteúdo? E se for odt?
  10. A parte de auditoria é tranquilo, fácil? Usuário 1 subiu o documento, usuário 2 alterou, como seria esse controle de versão?
  11. ...
Desculpem o canhão de palavras...rs
É isso pessoal, como ainda não vi nada assim em Python, quero que seja livre, vou abrir um projeto no GitHub e quem quiser vai poder colaborar.
Quero fazer algo simples, prático, que você não tenha que ter um derrame pra fazer funcionar e utilizar. E também acredito que vai ser muito bacana como aprendizado.
Desde já agradeço a todos, abraços,


--
Márcio Sancho

Alexandre Andrade

unread,
Feb 28, 2013, 11:51:48 AM2/28/13
to python...@googlegroups.com
Vou responder só com relação ao item 5.

Normalmente é bom evitar armazenar arquivos em banco de dados, por uma série de questões. O mais tradicional é armazenar os arquivos em disco (um Network Storage) e armazenar apenas as referencias (caminho das pastas e arquivos) no banco. 

Se fosse desenvolver uma solução dessas, já pensaria em utilizar o RIAK como banco de dados, pois é voltado para a escalabilidade e me parece gerenciar melhor o armazenamento de arquivos no próprio banco. 

Alexandre Andrade

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "python-brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para python-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Atenciosamente


Alexandre Andrade
Hipercenter.com Classificados Gratuitos

Fábio Barrionuevo

unread,
Feb 28, 2013, 12:52:12 PM2/28/13
to python...@googlegroups.com
O mais projeto mais próximo que conheço em python/django é o Mayan EDMS[1][2]

"Open source, Django based document management system with custom metadata indexing, file serving integration, tagging, digital signature verification, text parsing and OCR capabilities."

[1] http://www.mayan-edms.com/
Fábio C. Barrionuevo da Luz
Acadêmico de Sistemas de Informação na Faculdade Católica do Tocantins - FACTO
Palmas - Tocantins - Brasil - América do Sul

Fábio Montefuscolo

unread,
Feb 28, 2013, 1:52:24 PM2/28/13
to python...@googlegroups.com
Olá,

Tem uma galera da Poli que fez algo parecido para a Biblioteca Brasiliana. (http://www.brasiliana.usp.br/)

Se não me engano, o líder do desenvolvimento chama-se Edson Satoshi Gomi.

Fabio Montefuscolo



2013/2/28 Fábio Barrionuevo <bna...@gmail.com>

Savio Sabino

unread,
Mar 11, 2013, 11:09:54 AM3/11/13
to python...@googlegroups.com, pug...@googlegroups.com
 No aplicativo desktop, o que seria mais fácil e prático (para um iniciante) pra trabalhar a interface?  Qt, Tkinter, etc?
Acho que não adianta pensar em mais fácil nesse caso, pois o acabamento conta. Talvez o Tkinter ou wxwidgets sejam bem simples. Mas não são tão mais simples que pyqt ou gtk que ficam mais bacanas
 
Falando nisso, não tem como acessar o scanner via browser né?
Veja se tem alguma implementação de DEVICE em html5 para isso. Nesse caso, a app poderia ser totalmente web.


Fora a imagescanner, tem outra biblioteca pra fazer essa conversa com o scanner ou essa já tá legal? 

Opções como rotacionar imagem, e opções do scanner como frente e verso, colorido ou não, como eu faço? Uso o quê?
Para imagem: PIL

Sugestão de SGBD: MySQL, PostgreSQL?
A teu gosto, ou multiDB

Uma aplicação como essa teria um trabalho "especial" a ser feito no banco de dados, em vista da questão de quantidade de dados x busca, ou só na aplicação mesmo?
Como sempre, tem que se verificar a modelagem e índices. E se as queries usam bem o que foi modelado.
 
A parte web seria mais prático utilizar um framework tipo web2py ou outro?
Web2py pode ser uma boa pedida. Certamente será ótimo usar um framework contemporâneo. Não apenas pelas automatizações, mas também pelas pessoas que irão contribuir e usar o aplicativo. Não escolha um framework apenas pela sua praticidade. Boa parte da praticidade é apenas para iniciantes e na hora de customizar deixa de ser necessário. Procure praticidade que sempre faz a diferença. E um framework que te agrade na forma como ele implementa as coisas e como você tem que escrever código para usar suas ferramentas. É mais uma questão de gosto. E que não diz respeito ao gosto de uma pessoa e sim da galera que vai meter a mão na massa.

 Pra funcionar tanto em GNU/Linux quanto em Windows, muda muita coisa? Tem como já ficar multiplataforma o app desktop?
Não muda nada se escolher uma bibioteca multiplataforma e embarcar possíveis bibliotecas necessárias. E também não usar código exclusivo de um SO. Ex: threads, file paths.

 No browser posso visualizar imagens (gif, jpg, png, etc) e pdfs, mas arquivos do tipo doc, xls, tem algo que pelo menos mostre o conteúdo? E se for odt?
Não conheço, mas imaginaria que o que fosse digitalizado seria apenas pdf. Mas se tiver outro aplicativo que apenas mostre os documentos no browser, pode colocar junto no seu projeto, ou apenas aproveitar o front end e começar a fazer o seu.


 A parte de auditoria é tranquilo, fácil? Usuário 1 subiu o documento, usuário 2 alterou, como seria esse controle de versão?
Auditoria é muito pessoal. A princípio, vai da sua modelagem, e não será muito difícil. Mas caso queira ver algo parecido, veja código fonte de sistemas de wiki, e  o admin do django faz um controle que pode ser customizado também.

 ...
Nos 3 pontinhos vou dar a vivência pessoal:
Hoje em dia, para controlar meus documentos, uso git ou hg para dev e ubuntu one para docs em geral. Dessa forma, o único recurso via web são fron ends no github ou bitbucket e ubuntuone que raramente uso. Isso nem sempre agrada a um usuário final, e usar o banco do hg pode ficar pesado se usar muitos binários grandes. Mas aprendi algumas coisas:
Na prática, um software para desktop é mais especialista do que um na web para edição de documentos. E mais estável. E um software via console é melhor ainda. Edição pela web é legal, mas não sei se chegará e ter a estabilidade do vim, ou openoffice, ou gimp. Mas isso é uma questão de gosto, pois blogueiros conseguem ficar horas digitando em um campo RichText. Portanto, ter um cara para ver/editar pela web é legal, mas de preferência, deve ser tido como opcional. Tão opcional que pode até implantar vários visualizadores/editores web para o usuário escolher.
Até o google docs deixa subir e descer documentos em vários formatos por conta disso, nunca se sabe o gosto de um usuário.
Ter uma cópia local dos documentos em um dirétório e subir eles automaticamente é muito bom. Aí o versionamento fica por conta de um serviço em background e sua visualização em um front end via web ou um app desktop ou console.
Fica a dica e boa sorte. Qualquer coisa estamos aí.
 

Reply all
Reply to author
Forward
0 new messages