
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)