A aplicação Cidadão de olho é uma ferramenta que facilita a transparência no governo do estado de Minas Gerais, utilizando somente dados abertos oferecidos pelo próprio governo, sendo eles:
- Dados sobre os deputados em exercício.
- Dados sobre cada deputado individualmente.
- Dados sobre verbas indenizatórias de cada deputado.
A aplicação é separada em dois módulos principais e dependentes entre si, portanto para utilizar a aplicação em sua totalidade é necessário instalar e configurar estes módulos, sendo ambos feitos em laravel e que tem seu funcionamento sintetizado na imagem a seguir.
Neste módulo é onde ocorre a interação com usuários, sendo sua parte principal o front-end e conexão com a API. Cidadão de Olho.
Neste módulo é onde ocorre a interação incial com o web service do governo de Minas Gerais, sendo sua parte principal o back-end e as regras de negócio. Cidadão de Olho API.
Para instalar a aplicação será necessário:
- PHP 7.2.*
- Composer
- MySQL 5^
Após clonar o projeto você deverá utilizar os seguintes comandos:
Para instalar os pacotes do composer
composer install
As configurações necessárias para utilizar a aplicação são as seguintes:
- Crie um banco de dados nomeado laravel
- Copie o arquivo .env.example para .env
cp .env.example .env
- Altere as configurações do banco no arquivo .env
DB_USERNAME=<usuario_do_banco>
DB_PASSWORD=<senha_do_banco>
- Gerar a chave da aplicação
php artisan key:generate
- Migrar as tabelas
php artisan migrate
- Popular as tabelas
php artisan popular:tabelas
Para utilizar a aplicação em localhost basta rodar o seguinte comando no terminal
- Iniciar servidor php local
php artisan serve --port=8001
A API utiliza o framework swagger para gerar documentação, para acessa-la siga os seguintes passos:
- Comando para gerar documentação
php artisan l5-swagger:generate
- Abrir navegador em http://localhost:8001/api/documentation
Ao utilizar o comando php artisan popular:tabelas podem ocorrer alguns erros por conta de um bloqueio que o servidor do web service faz devido a grande quantidade de requisições em um curto período de tempo. Como tentativa de amenizar o problema foi adiciona a função sleep() no código, mas o erro pode ocorrer e neste caso espere entre ~1-2 minutos para executar novamente.