Presença na WEB

Equipe responsável por pesquisar e desenvolver a solução de presença na web do Fatequino.

Requisitos:

  • Site na web para interação com todas as pessoas.
  • Chatbot para interação na web.
  • Armazenamento de dados para fins estatísticos.
  • Disponibilização de informações da Fatec.

Integrantes

  • Cayque Eler
  • Gustavo Assunção
  • Jean Brito
  • Thiago de Nazare
  • Vinicius Victor

Ferramentas utilizadas

  • HTML5 (HTML, CSS3, JAVASCRIPT)
  • CMS WordPress (O WordPress é um projeto de código aberto que você pode usar para criar sites, blogs ou aplicativos)

Frameworks utilizados:

  • Bootstrap (kit de ferramentas de código aberto para desenvolvimento com HTML, CSS e JS)
  • Jquery (jQuery é uma biblioteca JavaScript rápida, pequena e rica em recursos)

Hospedagem

Duas opções, a escolhida foi o GCP.

VPS – Hostinger / Weblink

VPS é a sigla para Virtual Private Server, que significa Servidor Virtual Privado.

Este serviço é provido por companhias de hospedagem de sites maiores. Hospedagem VPS é uma parte virtual de um servidor físico que é partilhada em partes virtuais menores para emular e virtualizar servidores reais.

Cada VPS executa seu próprio Sistema Operacional e na maioria dos casos os usuários tenham completo acesso root (superusuário) e são capazes de executar a maioria dos softwares sem nenhuma restrição no nível do SO.

Pontos interessantes:

  • Controle completo sobre a infraestrutura e acesso direto a hardware de alto desempenho, como GPUs e SSDs locais.
  • Alterações no nível do SO
  • Suporte Linux.
  • Servidor no Brasil, ou seja, melhor tempo de resposta.

Especificações:

  • 1G de RAM + 1 CPU 2.4Ghz + 20G SSD
  • Custo: R$ 33,89 / mês
  • Limite de banda Mensal de 1000GB (1 TB)
  • Servidor no Brasil (Latência boa)

VM – Google Cloud Engine

Esse serviço nos permite usar a infraestrutura do Google para criarmos os nossos servidores com total autonomia de administração.

No nível gratuito temos direto a utilização de uma máquina de forma totalmente gratuita, basta obedecer algumas regras:

  • Deve ser uma instância pré definida do tipo f1-micro (1 CPU compartilhado e 0,6GB de memória) localizada em qualquer região dos EUA, exceto Virgínia do Norte;
  • 30 GB de armazenamento de disco permanente padrão por mês (HDD);
  • 5 GB de armazenamento de instantâneos por mês (Backup);
  • Limites de tráfego de rede: 1 GB diário de saída de rede da América do Norte para todas as regiões por mês (exceto China e Austrália);

Pontos interessantes:

  • Controle completo sobre a infraestrutura e acesso direto a hardware de alto desempenho, como GPUs e SSDs locais.
  • Alterações no nível do SO
  • Suporte para os modelos mais conhecidos dos sistemas operacionais Linux e Windows.

Especificações:

  • 0,60 GB de RAM + vCPU + 30GB HDD
  • Fora do Brasil – Opção gratuita  ou mais barata (Latência média)
  • Servidor no Brasil (SP) – R$ 26,90
  • 20G SSD (+ R$ 15,17)
  • Limite de banda Diária de 1GB

Construção do servidor e site

Primeira etapa – criação e configuração da instância VM

Os recursos escolhidos para a criação, foram:

  • SO: Ubuntu Minimal 18.10 (ubuntu-minimal-1810-cosmic-v20190320);
  • Hardware: g1-small (1 vCPU e 1,7 G de RAM) para o desenvolvimento, posteriormente planejamos avaliar a redução para o plano g1-micro, o qual é gratuíto;
  • Disco: 20 GB de armazenamento.

Em questão de configuração, instalamos os seguintes recursos:

  • Nano (editor de textos);
  • Vim (editor de textos);
  • Apache2 (Servidor web);
  • MySQL Server (Banco de dados relacional MySQL );
  • PHP (Linguagem de programação para back-end);
  • phpmyadmin (Interface para gerenciamento de banco de dados MySQL);
  • ftp

Na instalação de alguns destes softwares, utilizamos tutoriais fornecidos pela Digital Ocean.

Na configuração do FTP e servidor Web foi necessário criar o grupo www-pub e o usuário equipeweb, atribuir acesso a pasta /var/www para o grupo e usuário. Também adicionamos o usuário fatequino (root) ao grupo www-pub.

Segunda etapa – Instalação e configuração do wordpress

Foi baixado a última versão do wordpress disponível (versão 5.1.1 em março/abril de 2019), e instalamos na pasta web (/var/www/html).

Instalamos o tema Education Institute, versão: 1.0.3 fornecido por wpplayers

Instalamos diversos plugins para facilitar o desenvolvimento, esses são:

  • Akeeba Backup for WordPress (para realizar backups do site e banco de dados)
  • Simple Custom CSS and JS (para customização do site)
  • Tradução Loco (para traduções de plugin e temas)
  • WP-ServerInfo (para exibir informações do servidor e wordpress pelo site)

Terceira etapa – Instalação e Configuração do domínio

O domínio comprado foi o fatequino.com.br fornecido pela empresa registro.br.

O apontamento do domínio para a VM do google foi realizado através do serviço fornecido pelo próprio google, o Cloud DNS, e fizemos as seguintes configurações:

  • Criamos uma zona para o domínio fatequino.com.br;
  • Criamos o registro do tipo A, com o ip externo “35.247.54.68” da VM;
  • Criamos o registro do tipo CNAME, nele preenchemos o Nome do DNS com “www” e nome canônico “fatequino.com.br.”;

Estrutura do site

A estrutura do site inicialmente dispõe das seguintes páginas:

  • Home – Página inicial do site, contendo informações resumidas sobre o projeto
  • Sobre – Página informativa sobre o projeto
  • O Projeto Fatequino
    • Construção do Fatequino – Página com descrição da montagem do robô
    • Controle – Página com informações relacionadas a equipe de Controle
    • Visão – Página com informações relacionadas a equipe de Visão
    • Interação  – Página com informações relacionadas a equipe de Interação
    • Mecânica  – Página com informações relacionadas a equipe de Mecânica
    • Web  – Página com informações relacionadas a equipe de web
  • Fale Conosco – Página com e-mail para contato e formulário de contato

Chatbot

Python 3 e a Biblioteca ChatterBot

Para a funcionalidade do chatbot no Fatequino foi escolhida a linguagem Python 3 com a biblioteca do ChatterBot. O ChatterBot utiliza uma seleção de algoritmos de machine learning para produzir diferentes respostas para os usuários. Uma instância não treinada do chatbot começa sem nenhum conhecimento de comunicação. Com o recebimento de mais entradas enviadas pelo usuário é formada sua base de conhecimento armazenada no banco de dados.

Banco de dados MongoDB

Para o projeto Fatequino, foi utilizada na parte Web do chatbot o banco de dados não relacional MongoDB. Ele foi escolhido pois além de todas suas características funcionais de banco de dados não relacional também é fornecido suporte padrão  pela biblioteca ChatterBot.

Flask e o ChatterBot

Para a criação de um canal de comunicação entre o usuário e chatbot foi escolhido o modelo padrão de cliente-servidor onde o usuário deverá acessar um link do site para ter acesso à conversação com o chatbot. Para a criação deste servidor, foi escolhido um micro-framework Python que servirá como backend da aplicação. O Flask.


Outros Plugins instalados no WordPress

  • Admin Custom Login (Customizar login do site)
  • Akismet Anti-Spam (Evitar Spam)
  • BuddyPress (Funcionalidade de registro de usuários com campos personalizados e perfil)
  • Contact Form 7 (Formulário de contato para a página fale conosco)
  • reSmush.it Image Optimizer (Otimizar imagens reduzindo seu tamanho, a fim de reduzir espaço de armazenamento)
  • Restrict User Access (Restringir páginas específicas para os usuários)
  • rtMedia for WordPress, BuddyPress and bbPress (Galeria de imagens por usuário)
  • SendGrid e Swift Mailer (Configuração de e-mail/SMPT)
  • Wordfence Security e WPS Hide Login (Segurança adicional para o site)