Skip to content

S1 Ponto: Sistema de controle de ponto Open Source para Linux

Nesse artigo abordarei a instalação do programa S1 Ponto na distribuição Slackware Linux 12.1. O S1 Ponto é um software de controle de ponto Open Source em fase inicial de desenvolvimento. Atualmente ele contém módulo de cadastro de funcionários, marcações de ponto e e emissão de relatórios.

O S1 Ponto foi iniciado a pedido de minha esposa, que não queria mais gastar dinheiro com cadernos de ponto na empresa onde trabalha. É um projeto em fase inicial, mas que já possui o básico de um sistema de controle de ponto.

O S1 Ponto usa a biblioteca libfprint[1] para reconhecimento de impressões digitais, o que torna o software compatível com mais de 40 leitores de impressão digital.

O cadastro de funcionários e impressão de relatórios usa interface web desenvolvida com framework django.

Página do projeto: http://s1ponto.opens1.com/

1. A biblioteca libfprint já foi matéria de artigo aqui no Viva o Linux: fprint: Biometria livre, completa e total!

Instalando as dependências

O presente artigo abordará a instalação do S1 Ponto na distribuição Slackware Linux 12.1, no entanto nada impede que o mesmo seja instalado em qualquer outra distribuição, uma vez que todas as dependências sejam resolvidas.

Eis a lista de dependências e seu respectivos sites:

Baixando e instalando o Django, framework de desenvolvimento web/python: $ wget ‘http://s1ponto.opens1.com/download/django-1.0-noarch-1_SBo.tgz?attredirects=0’ -O django-1.0-noarch-1_SBo.tgz
# upgradepkg –install-new django-1.0-noarch-1_SBo.tgz

Baixando e instalando o PySqlite2, pacote com os bindings em Python para base de dados SQLite:

$ wget ‘http://s1ponto.opens1.com/download/pysqlite2-2.3.5-i486-1_SBo.tgz?attredirects=0’ -O pysqlite2-2.3.5-i486-1_SBo.tgz
# upgradepkg –install-new pysqlite2-2.3.5-i486-1_SBo.tgz

Baixando e instalando o SQLite, engine de banco de dados padrão do S1 Ponto (por ser desenvolvido em Django, o sistema pode usar opcionalmente outras bases com MySQL, PostgreSQL ou Oracle).

$ wget ‘http://s1ponto.opens1.com/download/sqlite-3.6.2-i486-1_SBo.tgz?attredirects=0’ -O sqlite-3.6.2-i486-1_SBo.tgz
# upgradepkg –install-new sqlite-3.6.2-i486-1_SBo.tgz

Baixando e instalando o mod_python, módulo do Apache para interpretação de scripts Python:

$ wget ‘http://s1ponto.opens1.com/download/mod_python-3.3.1-i486-1_SBo.tgz?attredirects=0’ -O mod_python-3.3.1-i486-1_SBo.tgz
# upgradepkg –install-new mod_python-3.3.1-i486-1_SBo.tgz

Baixando e instalando a LibFprint, biblioteca Open Source de captura e reconhecimento de impressões digitais:

$ wget ‘http://s1ponto.opens1.com/download/libfprint-0.0.6-i486-1_SBo.tgz?attredirects=0’ -O libfprint-0.0.6-i486-1_SBo.tgz
# upgradepkg –install-new libfprint-0.0.6-i486-1_SBo.tgz

Baixando e instalando o Swig, uma interface de compilação que integra C/C++ com linguagens de script:

$ wget ‘http://s1ponto.opens1.com/download/swig-1.3.35-i486-1_SBo.tgz?attredirects=0’ -O swig-1.3.35-i486-1_SBo.tgz
# upgradepkg –install-new swig-1.3.35-i486-1_SBo.tgz

Baixando e instalando o PyFprint, pacote com os bindings em Python para a biblioteca LibFprint.

$ wget -O ‘http://s1ponto.opens1.com/download/pyfprint-0.0-noarch-1_tla.tgz?attredirects=0’ pyfprint-0.0-noarch-1_tla.tgz
# upgradepkg –install-new pyfprint-0.0-noarch-1_tla.tgz


Instalando o S1 Ponto

Para instalar o S1 Ponto faça o download do software:

$ wget ‘http://sites.google.com/a/opens1.com/s1ponto/download/s1ponto-0.0.1.tar.gz?attredirects=0’ -O s1ponto-0.0.1.tar.gz

Descompacte o arquivo:

$ tar -xpzvf s1ponto-0.0.1.tar.gz

Entre na pasta:

$ cd s1ponto

Como super usuário execute o script “install.sh”, ele perguntará em qual usuário o instalador deverá colocar o ícone no Desktop:

$ su
# sh install.sh

Instalando S1 Ponto:

Criar ícone no Desktop do usuário:
1) ftp
2) teste
#? 2

Configurando o sistema para o uso do software:

* Permitindo acesso ao leitor de impressões digitais.

Para que usuários do grupo “plugdev” tenham acesso ao dispositivo será necessário editar o arquivo: /etc/udev/rules.d/50-udev-default.rules

Alterando a linha que contém SUBSYSTEM==”usb” adicionando os parâmetros MODE=”0664″ e GROUP=”plugdev”. Deixe-a assim:

SUBSYSTEM==”usb”, ACTION==”add”, ENV{DEVTYPE}==”usb_device”, NAME=”bus/usb/$env{BUSNUM}/$env{DEVNUM}”, MODE=”0664″, GROUP=”plugdev”

Configurando o Apache:

Edite o arquivo /etc/httpd/httpd.conf, após a linha:

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

Adicione a seguinte linha:

LoadModule python_module lib/httpd/modules/mod_python.so

Após o bloco:

<Directory “/srv/httpd/htdocs”>

</Directory>

Adicione o seguinte bloco:

<Directory “/opt”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

E por último descomente a linha:

Include /etc/httpd/extra/httpd-vhosts.conf

Edite o arquivo /etc/httpd/extra/httpd-vhosts.conf, remova todo seu conteúdo e adicione o seguinte:

NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /opt/s1ponto/media

<Location “/”>
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE s1ponto.settings
PythonDebug On
PythonPath “[‘/opt’,’/opt/s1ponto’] + sys.path”
</Location>

<Location “/media”>
SetHandler None
</Location>

<Location “/arquivos”>
SetHandler None
</Location>

</VirtualHost>

Após todos estes passos configure o Apache para iniciar automaticamente e inicie o mesmo:

# chmod +x /etc/rc.d/rc.httpd
# /etc/rc.d/rc.httpd start

O programa S1 Ponto está pronto para ser usado!

Para cadastrar os funcionários e emitir os relatórios, use a interface web.

Endereço: http://localhost/
Usuário: s1ponto
Senha: s1ponto

Para cadastrar as impressões digitais, abra o sistema de ponto através do ícone no Desktop e use o atalho Ctrl+Shift+L.
Usuário: s1ponto
Senha: s1ponto

Bom proveito a todos e aguardo contribuições e ideias.

Veja abaixo um pequeno vídeo de demonstração do software:

fonte: http://www.vivaolinux.com.br/artigo/S1-Ponto-Sistema-de-controle-de-ponto-Open-Source-para-Linux?pagina=1

One Comment

  1. Haroldo Furtado Haroldo Furtado

    Muito bom o POST, vi a informação que o código era Open Source, mas não consegui de forma alguma localizar o mesmo, tenho interesse em estar contribuindo e se possível gostaria de realizar algumas modificações. Desde já, agradeço pela atenção.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.