Fatequino

Presença na WEB

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)
Page Reader Press Enter to Read Page Content Out Loud Press Enter to Pause or Restart Reading Page Content Out Loud Press Enter to Stop Reading Page Content Out Loud Screen Reader Support