ufrgs / spell

Sistema de Ponto Eletrônico Livre
Apache License 2.0
40 stars 22 forks source link

Sistema de Ponto ELetrônico Livre (SPELL)

Esse sistema foi desenvolvido no Centro de Processamento de Dados(CPD) da Universidade Federal do Rio Grande do Sul(UFRGS) com base no sistema já utilizado na Universidade para ser disponibilizado a outras instituições que estejam necessitando de uma solução para registro e acompanhamento da carga horária dos seus servidores. O sistema foi portado em colaboração com a Universidade Federal Fluminense(UFF).

Funcionalidades

Guia de instalação

Pré-requisitos

Para testar o sistema o computador deve conter os seguintes softwares:

Como configurar

  1. Baixe e mova o código fonte para a pasta de páginas do servidor. No caso do USBWebserver, coloque na pasta root
  2. Baixe e extraia o Yii Framework para a pasta raiz do servidor
  3. Execute o arquivo ponto.sql no banco de dados

Por pardrão, as credenciais de acesso do banco de dados são:

usuário: root
senha: usbw

Como testar

Lista de usuários cadastrados para teste:

Login Senha Tipo Chefia Cadastrado
1 Técnico 4 Departamento
2 Técnico 1 Unidade acadêmica
3 Docente 2 Órgão máximo
4 Técnico 0 Departamento

Observação: pode-se informar qualquer senha para realizar o login

Guia de configuração

Configurações PHP e Apache

Para que o sistema funcione, é necessário habilitar as tags curtas (short_open_tag) no php.ini e habilitar o mod_rewrite nas configurações do Apache.

Conexão com o banco de dados

Os dados de acesso ao banco de dados são especificados no arquivo ponto/protected/config/config.php. Basta alterar os valores contidos na chave db do array components.

'db'=>array(
        'connectionString' => 'mysql:host=localhost:3307;dbname=ponto',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => 'usbw',
        'charset' => 'utf8',
    ),

Segurança do end-point de registros

Para garantir que somente os pontos oficiais possam realizar registros, recomenda-se adicionar o seguinte código no método beforeAction da classe RegistroController realizando as substituições necessárias:

if (($ipv4 != 'Número IPv4 da rede') && ($ipv6 != 'Número IPv6 da rede')) {
    $this->render('mensagem', array(
        'mensagem' => "O registro de Ponto só funciona na rede da Universidade.",
    ));
    return false;
}

Mais informações

Para mais informações, guias e tutoriais sobre o projeto acesse a Wiki do repositório.