Histórico de Versões

Data Versão Descrição Autor
21/09 1.0.0 Inicio do Documento Marcelo Victor e João Paulino
22/09 1.0.1 Correção dos tópicos Marcelo Victor e João Paulino

1. Introdução

1.1 Front_End

1.1.1 Vue

   O vue é uma estrutura progressiva para a construção de interfaces com o usuário. Ao contrário de outras estruturas monolíticas, o Vue é projetado desde o início para ser adotado de forma incremental. A biblioteca principal é focada apenas na camada de visualização e é fácil de entender e integrar com outras bibliotecas ou projetos existentes. Por outro lado, o Vue também é perfeitamente capaz de alimentar aplicativos sofisticados de página única quando usado em combinação com ferramentas modernas e bibliotecas de suporte.

1.1.2 Aframe

   O aframe-ar.js, é uma biblioteca com o objetivo de permitir que o desenvolvedor aplique em seu projeto realidade aumentada de forma fácil e rápida através de tags, que viabilizam o uso da câmera do aparelho para o reconhecimento de marcadores ou até código de barras.

1.1.3 Aframe-gif-shader

   O aframe-gif-shader tem como função permitir que seja visualizado Gifs quando apontado a câmera do dispositivo para um marcador

1.1.4 Axios

   O axios tem como função consumir e exibir dados de uma API. Há várias maneiras de se fazer isso, mas a maneira mais popular é usando axios, um cliente HTTP baseado em Promises, que é um objeto usado para processamento assíncrono.

1.2 Back_End

1.2.1 Django

   Será usado como o principal agente encapsulador das seguintes sub bibliotecas.

1.2.2 Pillow

   Python Imaging Library é uma biblioteca da linguagem de programação Python que adiciona suporte à abertura e gravação de muitos formatos de imagem diferentes. Basicamente o propósito desta biblioteca é auxiliar no armazenamento de ilustrações no banco de dados.

1.2.3 Django-cors-headers

   Esta biblioteca permite que o servidor django seja acessado em outros domínios.

1.2.4 Django-redis

   Biblioteca focada na otimização com relação as requisições de dados da aplicação, ou seja a mesma funciona como um cache entre o servidor e algum cliente qualquer.

1.2.5 Djangorestframework

   É uma ferramenta para construir Web APIs , dado que o front fará requisições http para o servidor django.

1.2.6 Coreapi

   Core API é uma biblioteca focada em facilitar a criação de DOMs (Document Object Model) para os objetos criados na aplicação , dado que estes serão enviados para o front-end.

1.2.7 Werkzeug

   Werkzeug é uma biblioteca que contém utilitários para WSGI(Web Server Gateway Interface). WSGI é um padrão Python descrito na PEP 3333.

1.2.8 Psycopg2-binary

   É uma biblioteca, em sua maior parte escrita em C , para encapsular a comunicação do PostgreSQL com a aplicação em questão.

1.2.9 Awesome-slugify

   Biblioteca focada na parte de auxiliar na criação de uma URL que pode ser legível tanto para humanos quanto para mecanismos de busca, ou seja, torna as URLs mais "amigáveis".

2. Integração

A iteração ideal entre o front-end e o back-end , dar-se-á da seguinte forma:

  1. O front-end irá detectar uma letra/palavra com o auxilio do AFrame e Ar.js , montará um texto referente aos símbolos detectados.
  2. O front-end com auxilio do Axis e Djangorestframework , solicitará através de uma requisição http uma ilustração referente ao texto detectado.
  3. O back-end processará a requisição, enviada pelo front, procurando pelo texto enviado na base de dados (que esta integrada com o django pelo psycopg2-binary).
  4. Caso a base de dados encontre o texto, o mesmo retornará a imagem ( que estava armazenada na base de dados com auxílio do pillow).
  5. Será montado um arquivo json (com auxilio do core-api) e retornado para o front-end.
  6. O front-end receberá a animação e renderizará a mesma na tela do usuário com o AFrame.