Coder Social home page Coder Social logo

jpmoura / meu-icea Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.39 MB

Portal desenvolvido para o campus Instituto de Ciências Exatas e Aplicadas (ICEA) de João Monlevade da Universidade Federal de Ouro Preto (UFOP) onde concentra todos os serviços diponíveis exclusivamente aos corpos docente, discente, técnico e administrativo do campus.

Home Page: https://200.239.152.5/meuicea/public

License: GNU General Public License v3.0

ApacheConf 0.49% PHP 78.37% JavaScript 1.43% HTML 19.71%
ufop icea portal servico sistema laravel php

meu-icea's Introduction

UFOP Boilerplate - Laravel 5.3

Esse projeto se destina aqueles que desejam criar algum sistema dedicado a comunidade da Universidade Federal de Ouro Preto (UFOP) usando o mesmo sistema de autenticação do portal Minha UFOP, tornando a experiência do usuário mais agradável.

Esse boilerplate foi desenvolvido usando o framework Laravel, que é um dos frameworks PHP mais usados no mercado na época de criação desse boilerplate. Além disso, para o painel de controle, foi utilizado uma versão personalizada da dashboard do AdminLTE 2.

Em conjunto ao sistema, para a sessão de autenticação usando os dados do Minha UFOP, foi usada a API LD(AP)I como API de autenticação, que atualmente está hospedada nos servidores do campus do Instituto de Ciências Exatas e Aplicadas (ICEA), localizado na cidade de João Monlevade, Minas Gerais.

Pré-requisitos

Antes de executar os comandos de instalação, é necessário que você tenha instalado no dispositivo onde o sistema irá ser hospedado o Node.js entre as versões 0.12 e 6.9.4 e o gulp.js instalado globalmente. Você pode ver mais detalhes sobre a instalação do Node.js visitando o site da aplicação para ter mais detalhes sobre os procedimentos em cada plataforma.

No caso do gulp.js, você deve instalar previamente o Node.js e então executar o comando npm install --global gulp-cli. Caso você esteje usando um sistema UNIX como MacOS ou uma distribuição Linux, talvez seja necessário executar o comando com permissão de administrador e para isso você pode usar o comando sudo ou su, variando de acordo com o seu sistema operacional.

Como pré-requisitos do próprio Laravel, temos:

  • Versão do PHP igual ou superior a 5.6.4;
  • Extensão OpenSSL do PHP ativada;
  • Extensão PDO do banco de dados utilizado ativada;
  • Extensão Mbstring do PHP ativada;
  • Extensão Tokenizer do PHP ativada;
  • Extensão XML do PHP ativada;

Instalação

Para a instalação são necessários os seguintes comandos:

$ composer install
$ npm install
$ gulp --prod
$ php artisan migrate

O comando composer install é usado para realizar a instalação de todos os pacotes os quais o sistema é dependente para que o mesmo funcione.

O comando npm install é usado para instalar as bibliotecas necessárias para manipulação de assets ou recursos do sistema como arquivos CSS, JavaScript, etc. Caso você esteja usando um sistema Windows para hospedar a aplicação, talvez seja necessário executar o comando npm install --no-bin-links ao invés do npm install devido algumas restrições do sistema operacional.

O comando gulp --prod irá realizar todos os comandos definidos no arquivo gulpfile.js, onde estão definidos todos os procedimentos referentes aos arquivos de recursos do sistema. No caso desse boilerplate todos os arquivos CSS e JavaScript serão mesclados e minificados em um único arquivo, pois isso é uma boa prática para o desenvolvimento de sistemas WEB.

E por último, o comando php artisan migrate faz a migração da tabela que irá conter os usuários para o banco de dados.

Configuração

Dentro da pasta config existe o arquivo ldapi.php que mostra que no arquivo de ambiente, o chamado arquivo .env devem existir as entradas LDAPI_USER que deve conter o sistema usuário da API e o campo LDAPI_PASSWORD. No arquivo .env.example é possível ver um exemplo preenchido. Para obter o seu usuário e senha da LDAPI é necessário entrar em contato com o suporte de informática do ICEA.

Após preenchido o usuário e senha do LDAPI no arquivo .env pode ser necessário executar o comando php artisan config:cache na raiz do diretório do sistema. Esse comando limpa a configuração anterior que foi salva em cache e força um novo carregamento do arquivo de configuração.

Funcionamento da Autenticação

A LDAPI é uma API RESTful e por isso reponde a requisições HTTP. Para realizar tais requisições para a API foi utilizado o pacote GuzzleHttp, que é um dos pacotes HTTP mais conhecidos para PHP.

O controlador LoginController contém toda a lógica da autenticação. Para esse boilerplate, foi tomada como restrição que somente professores e técnicos administrativos seriam capazes de utilizar o sistema.

A autenticação nesse caso depende de dois métodos do LoginController, que são o isPermitted que verifica se o usuário pertence a algum grupo da lista de permitidos e o método postLogin que recebe os dados do formulário da página de login. Usando as credenciais fornecidas, é feita uma requisição para a LDAPI e dependendo da resposta o usuário é autenticado ou não. Caso seja o primeiro acesso do usuário, ele é cadastrado imediatamente e automaticamente no banco de dados, usando os atributos provenientes da resposta da LDAPI caso ele esteja autorizado e autenticado.

Todo o código de autenticação está comentado no corpo dos métodos no LoginController. Existem também o tratamento de eventos, que basicamente somente criam uma entrada no arquivo de log informando o administrador sobre erros de login, logins que foram realizados com sucesso e também logouts feitos, bem como o registro da criação de novos usuários.

meu-icea's People

Contributors

jpmoura avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.