SkillAgentSearch skills...

Sire

Sistema de Reserva de Salas e Equipamentos (SiRe) do Instituto de Ciências Exatas e Aplicadas (ICEA) Campus João Monlevade da Universidade Federal de Ouro Preto (UFOP)

Install / Use

/learn @jpmoura/Sire
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

SiRe - Sistema de Reserva de Salas e Equipamentos

<p align="center"> <img src="overview.gif" alt="Imagens do sistema" /> </p>

O Sistema de Reserva de Salas e Equipamentos (SiRe) é o sistema usado pelos corpos acadêmico e administrativo presentes no Instituto de Ciências Exatas e Aplicadas (campus João Monlevade) da Universidade Federal de Ouro Preto. Essa é a segunda versão do sistema, que foi ao ar no dia 09/06/2016. A primeira versão foi ao ar em meados de fevereiro de 2012.

Dentre as motivações para tal atualização, estão:

  • Atualização da lógica de processamento para a última versão do PHP (7.0);
  • Atualização da interface com usuário, usando os conceitos de responsividade, onde a mesma se adapta de acordo com o espaço de tela disponível;
  • Correção de bugs da versão anterior;
  • Uso da arquitetura MVC para desenvolvimento, com o objetivo de facilitar a manutenção e atualização;
  • Utilização do padrão mais recente do HTML (HTML5) de acordo com o W3C;

O sistema foi desenvolvido usando a versão 5.2 do framework Laravel para aplicações web, um dos mais usados no mercado durante o período de desenvolvimento. Uma restrição do desenvolvimento foi a necessidade de usar o banco de dados original da primeira versão, o que limitou alguns pontos no desenvolvimento da interface com o usuário.

Índice

  1. Versão de Uso Geral
  2. Funcionamento
  3. Versões de Teste
  4. Instalação
  5. Changelog
  6. TODO

Versão de Uso Geral

Existe uma versão de uso geral, que não está limitada pelos requisitos da UFOP, que é adaptável para qualquer instituição que assim deseje utilizar o sistema.

Para utilizar a versão de uso geral, certifique-se de utilizar a versão do branch generico, que é o branch que contém o sistema de autenticação tradicional, baseado em dados existentes no banco de dados da aplicação.

Funcionamento

O sistema é baseado na funcionalidade CRUD de banco de dados para a inserção, leitura, atualização e remoção de informações de salas, equipamentos e alocações feitas.

Para o layout, foi usado como base o design AdminLTE desenvolvido por Abdullah Almsaeed, alterando-se basicamente só a palheta de cores do tema.

O sistema é focado para uso de instituições do ramo educacional, logo, limita-se a ter somente três tipos de usuários, sendo eles:

  • Administrador;
  • Professor / Técnico administrativo;
  • Usuário especial.

Atualmente não está implantado uma forma de se alterar estes tipos de usuários dentro do sistema. O administrador é responsável por fazer todo e qualquer tipo de cadastro no sistema, desde outros usuários até os recursos passíveis de serem reservados bem como seus tipos. Essa abordagem foi escolhida devido aos requisitos da UFOP para centralização do gerenciamento e foi mantida para o sistema de uso geral.

A versão de uso geral conta com alguns dados já preenchidos no banco para o pontapé inicial do sistema. As regras de negócio de exemplo já estão presentes assim como um usuário administrador padrão, com e-mail o admin@admin.com e senha admin.

Antes de se criar um recurso, é necessário criar tipos de recursos. Com o tipo criado, na tela de criação de recurso é possível selecionar um tipo para o mesmo e completar sua criação.

Exite também a funcionalidade de lista de softwares, que pode ser útil para que professores e técnicos verifiquem quais são os softwares instalados em laboratórios, facilitando a escolha de qual laboratório reservar, por exemplo.

Outra funcionalidade é o reporte de bugs, onde os usuários de todos os tipos podem detalhar algum problema que encontrarem no sistema para que os administradores possam corrigí-los.

Versões de Teste

Para a comodidade dos interessados em testar o sistema, existem diferentes tipos de artefatos que implementam o sistema. Nas subseções seguintes são apresentados mais detalhes sobre cada um deles.

VM com Sistema Operacional com Interface Gráfica

Essa Appliance contém o sistema operacional Linux na distribuição Debian 9. Ela já está totalmente configurada e já possui todos os pré-requisitos para o funcionamento do sistema. O usuário padrão para o login no Debian é sire e a senha também sire. O usuário root possui a senha root. Esses usuários são de acesso do sistema operacional e não do sistema deste projeto, os usuários para acesso do SiRe estão descritos adiante.

Para acessar o sistema basta abrir o navegador e acessar o endereço localhost/sire/index.php. O usuário já adicionado para o login é admin@admin.com com senha admin.

~~A imagem em formato OVA do sistema pode ser baixada através desse link.~~

Link temporariamente indisponível por falta de hospedagem para o arquivo que tem aproximadamente 7GB.

VM somente com o essencial, sem interface gráfica

O link para download é este e, após fazer a importação da imagem no seu gerenciador, confira o IP atribuído a máquina criada e acesse o sistema usando o IP da máquina na rede com o sufixo /sire/index.php. Por exemplo, se o IP gerado for 192.168.2.2 você deverá acessar o endereço http://192.168.2.2/sire/index.php.

A imagem foi gerada a partir do Ubuntu Server 22.04 e caso seja necessário realizar o login no próprio Ubuntu o usuário é sire e a senha é admin.

IMPORTANTE: O sistema está com a flag de debug ativa, esta é uma imagem criada apenas para testes, nenhuma configuração foi adotada envolvendo segurança do host e da própria máquina virtual.

:construction: Container (Docker)

Em desenvolvimento.

Instalação

É valido lembrar que todos os pré-requisitos do Laravel são também pré-requisitos deste sistema.

Para a instalação é necessário ter previamente instalados o gerenciador de dependências Composer, Node.js entre as versões 0.12 e 6.9.4 e também o Gulp.js instalado globalmente através do Node.js. Com todas essas três dependências instaladas, executam-se os seguintes comandos:

composer install
npm install
gulp --prod
php artisan migrate
php artisan db:seed

Enquanto o comando php artisan migrate cria as tabelas no banco de dados, o comando php artisan db:seed é o comando que preenche as tabelas de usuário e de regras com alguns dados padrões que possibilitam o uso do sistema sem a necessidade de inserir dados no banco por aplicações de terceiros, assim o administrador já pode utilizar o sistema usando as credenciais padrão de e-mail e senha no login. Tais credenciais são:

  • E-mail: admin@admin.com
  • Senha: admin

Para usuários de sistemas UNIX, será necessário conceder permissão de leitura, gravação e execução da pasta em que se encontra o sistema para o grupo www-data que pode ser dado pelo seguinte comando usando a permissão de administrador:

chown -R USUARIO:www-data PASTA

Basta usar o comando sudo ou su dependendo da distribuição Linux juntamente com este comando.

É necessário configurar as variáveis de ambiente do Laravel a partir do arquivo sem nome na raiz do projeto mas de extensão ENV. Existe um arquivo de exemplo aqui que pode ser editado e depois renomeado apropriadamente apenas para .env, onde nele devem-se encontrar todas as configurações do banco de dados.

Changelog

Esse changelog está organizado na ordem de mais recente para o mais antigo, ou seja, a versão mais nova aparece como primeira subseção e a versão mais antiga como a última subseção.

Versões terminadas com o carácter g refere-se ao branch generico, para uso geral. O changelog das versões específicas para a UFOP estão mantidas com o objetivo de se manter dados históricos sobre a evolução do sistema.

Versão 1.0g

  • Remoção do Login por LDAPI usando dados da UFOP por login tradicional baseado em tabela de usuários para aplicação geral;
  • Adição de testes par CRUD de usuário;
  • Remoção de modelos de usuários e reservas legados;
  • Uso de SASS para processamento de CSS;

Versão 2.3.1

  • Adição de testes de unidade;
  • Adição de funcionalidade de softwares instalados em recursos de informática;
  • Adição de funcionalidade de adição, remoção e edição de tipos de recursos;
  • Adição de migrations;
  • Refatoração de views, modularizando várias delas;
  • Refatoração no nomes de rotas;
  • Correção de bugs;

Versão 2.3

  • Refatoração de modelos e controllers;
  • Adição de validação de formulários no back-end;
  • Otimização da estrutura do banco de dados;
  • Atualização da biblioteca Chart.js para geração de gráficos;
  • Adicionada obrigatoriedade do uso de HTTPS;
  • Atualização da LDAPI para comunicação em HTTPS com certificados auto-assinados;
  • Correção de bugs.

Versão 2.2

  • Refatoração massiva de toda a estrutura do back-end;
  • Mudança no sistema de autenticação, usando a autenticação nativa do framework aliada com a API de autenticação LDAPI. Agora também é possível o usuários optar por ser lembrado e assim o login é renovado automaticamente;
  • Melhoria no sistema de Log, agora registrando informações mais estruturadas e sendo feito através de eventos;
  • Alteração em todo sistema de rotas, usando grupos e middlewares;
  • Migração para o uso de modelos ao invés de execução de queries, atingindo as
View on GitHub
GitHub Stars24
CategoryDevelopment
Updated3mo ago
Forks10

Languages

HTML

Security Score

92/100

Audited on Dec 18, 2025

No findings