INTRODUÇÃO ================================================================================ Este é o código fonte do Sistema de Atendimento. O sistema é distribuído em diferentes módulos, segue uma lista dos módulos do sistema: Fila-Administracao: Interface Web para gestão das configurações do local de atendimento. Fila-Agendamento: Interface Web para a realização de agendamentos de atendimentos. Fila-Opiniometro: Módulo de sistema para comunicação com dispositivo de registro da avaliação dos atendimentos realizados. Fila-Painel: Módulo de sistema para a notificação utilizando o sistema de visualização da praça. Fila-Senha: Módulo do sistema para a comunicação com o dispositivo emissor de senha. Fila-Servico: Módulo de regras de negócio responsável por todo o controle do atendimento. Fila-Web: Interface Web para o sistema de atendimento, incluindo atendente, gerente e interface para emissão de senhas manual. Adicionalmente, os códigos-fonte do projeto incluem os seguintes diretórios: Apache2: contém uma configuração de exemplo da interface Web doutiliza sistema para o sistema de atendimento. DJabberd: contém uma configuração de exemplo para o servidor Jabber DJabberd, parte fundamental do funcionamento do sistema. patches: contém dois Patches a serem aplicados em bibliotecas instaladas no sistema. Esses patches já foram enviados aos autores originais das bibliotecas, mas ainda não estão incluídos nas versões atuais. ltsp: contém um template para a geração automática de uma página de entrada para cada usuário no ltsp, já preenchendo a mesa onde o atendente entrou e o login, para que o usuário precise apenas preencher a senha. documentacao: contém um conjunto diverso de documentações geradas sobre o sistema, incluindo materiais utilizados em treinamentos. DESCOMPACTANDO OS ARQUIVOS ================================================================================ Uma vez que você tenha o arquivo do sistema, vc pode descompactá-lo em qualquer lugar utilizando o comando: tar xzf "Sistema de Atendimento - v1.3.tar.gz" Depois que descompactar, como root execute: mv sistemadeatendimento /usr/share/fila Isso é importante porque as configurações padrão que vêm com o sistema indicam essa localização. PREPARACAO DAS DEPENDENCIAS ================================================================================ Em uma máquina recém-instalada Debian Lenny, baixar o arquivo dependencias.tar.gz e descompactá-lo no diretório /srv/, criando então um diretório /srv/debs-pm. Alterar o arquivo /etc/apt/sources.list (como root) adicionando a seguinte linha: deb file:///srv/debs-pm . . Depois disso, rodar (como root) o comando apt-get update Baixar o arquivo Dependencias e salvá-lo no /tmp. Depois disso, executar o comando (como root): apt-get install `cat /tmp/Dependencias` Com esse comando, todos os pacotes necessários deverão ser instalados. Sempre que for mencionado alguma pasta do sistema, entende-se que é a partir do diretório /usr/share/fila. Existe um patch que precisa ser aplicado (foi submetido aos autores do módulo mas ainda não foi aceito), isso é fundamental para o correto funcionamento do sistema. Para isso execute: cd /usr/share/perl5 patch -p4 /usr/share/fila/patches/DBIx-Class-ResultSource.patch Ele deve dar uma mensagem como "Hunk xxxx succeeded", o que indica que funcionou. INSTALACAO DO BANCO DE DADOS ================================================================================ O sistema de atendimento sugere a utilização do banco de dados PostgreSql devido ao uso extensivo de cálculos temporais, funcionalidade essa que é uma das características fortes desse banco de dados. O sistema de atendimento está homologado apenas com o Postgresql 8.3 (versão disponível no Debian Lenny). O servidor de banco de dados já foi instalado com as dependências. O sistema de atendimento está configurado por padrão para utilizar o usuário "fila" com a senha "senha" no banco de dados, conectando-se ao banco "fila". Para configurar o servidor de banco de dados execute (como root): su -c 'su postgres' O comando acima vai abrir um novo prompt de comando, agora com o usuário administrador do postgres, então poderemos criar o usuário "fila" no banco de dados utilizando o comando. createuser -P fila Primeiro ele vai pedir a senha para o novo usuário. Digite "senha" e depois dê enter. Ele vai perguntar se o usuário deve ser um superusuário, você pode responder que não. Ele vai perguntar se ele pode criar outras "roles" (como o postgres chama os usuários), você pode responder que não, e finalmente ele vai perguntar também se ele pode criar bancos de dados, aí você responde que sim. Depois disso você pode digitar "exit" e dar enter, para sair do prompt do usuário postgres. Para criar o banco de dados execute o seguinte comando (pode ser como usuário normal): createdb -Ufila -h127.0.0.1 fila Ele vai pedir a senha do usuário "fila", então é só digitar "senha". Então ele terá o banco de dados criado. Para popular os bancos de dados, você pode usar o script, (pode ser como usuário comum). De dentro do diretório Fila-Serviço, execute: ./script/fila_servico_db.pl | psql -Ufila -h127.0.0.1 fila Ele irá pedir a senha do banco de dados novamente, digite "senha", depois "enter" Esse script gera um conjunto de instruções sql que podem ser utilizadas como entrada para o psql para a criação das estruturas de dados, incluindo alguns dados de exemplo. EXECUTANDO O SISTEMA ================================================================================ O sistema de atendimento utiliza como "barramento" de comunicação o servidor DJabberd, e como pode ser visto na configuração de exemplo, o uso desse servidor especificamente possibilita, através do uso do plugin DJabberd::Plugin::Balancer, a implementação de um balanceamento de carga para os serviços. Desta forma, em primeiro lugar é necessário iniciar o servidor DJabberd. Para fazer isso, pode-se executar: LOGLEVEL=DEBUG screen -dmS djabberd djabberd -conf DJabberd/djabberd.conf É importante reiniciar o apache depois de iniciar o DJabberd para que as conexões do Apache sejam estabelecidas corretamente. Uma vez o servidor Jabber rodando, é possível iniciar o módulo de regras de negócio. Para isso, pode-se executar: cd /usr/share/fila/Fila-Servico FILA_SERVICO_HOME=. screen -dmS servico ./script/fila_servico_xmpp.pl Neste momento, pode-se então iniciar o Apache2, utilizando a configuração de exemplo, que presume a cópia desse diretório para o diretório /usr/share/fila. INSTALACAO DO AMBIENTE WEB ================================================================================ Para configurar o ambiente web, execute (como root): cp /usr/share/fila/Apache2/fila-vhost.conf /etc/apache2/sites-available a2ensite fila-vhost.conf Depois disso é só reiniciar o apache: apache2ctl stop apache2ctl start A tela do gerente e do atendente é acessível através do endereço: http://localhost/ Todos os usuários vem com senha "password" por padrão. Vem o usuário "gerente" e os usuários "atendente01" até "atendente10" para você testar. A tela do emissor de senhas manual é acessível através do endereço: http://localhost/emissor Usuário "emissor", senha "password". Para habilitar a interface de administração modifique o arquivo /etc/apache2/ports.conf e adicione a linha Listen 8081 logo depois de "Listen 80". Reinicie o apache novamente. A interface fica então disponível no endereço: http://localhost:8081/ É recomendável implantar um mecanismo de autenticação para essa interface, que deve ser acessível apenas para manutenção. DOCUMENTACOES ================================================================================ O sistema de atendimento é desenvolvido em Perl, e dessa forma, para olhar a documentação de cada um dos arquivos, você pode utilizar a ferramenta "perldoc", que irá exibir de uma maneira intuitiva a documentação de cada um desses arquivos.