Arquitetura BotFlow - lappis-unb/rasa-nlu-trainer GitHub Wiki
Arquitetura geral da plataforma BotFlow desenvolvido pelo Laboratório é mostrado na figura abaixo. Desenvolvido com a Licença AGPL3.
Client-Side: JavaScript utilizando o Framework React.JS
Server-Side: NodeJs(JavaScript)
Banco de Dados: MongoDB
Tecnologias
Tecnologias utilizadas para implementação:
Docker: Ferramenta para gerar um ambiente isolado e construído especificamente para a equipe que será utilizado para facilitar o desenvolvimento do projeto.
Rect.JS: Biblioteca JavaScript do Facebook para construir interfaces de usuário.
NodeJs: Interpretador com código aberto, de código JavaScript de modo assíncrono e orientado a eventos, focado em migrar a programação do Javascript do lado do cliente para os servidores
Git: Ferramenta de versionamento que será usada em conjunto com o GitHub para salvar os dados do decorrer do projeto, possibilitando a hospedagem e a geração de backups do mesmo.
Estrutura BotFlow
Repositório dedicado ao desenvolvimento do FrontEnd da Plataforma em React.Js
Estrutura de Pastas BotFlow
Components:
Pasta no qual esta localizado os arquivos referentes a criação de componentes, no qual criamos e separamos os components por módulo/funcionalidade. A nomeação do componente se dá a partir do nomeação dada a classe responsável por definir o componente.
-
Componentes são como funções JavaScript que aceitam entradas arbitrárias (chamadas “props”) e retornam elementos que descrevem o que deve aparecer na tela.
-
Props: Objeto do Componente a ser renderizado.
Pages:
Services:
Pasta no qual contém os arquivos responsáveis pela configuração da API
State:
Pasta responsável pelo gerenciamento de arquivos que apresentão o conceito de estado e ciclo de vida de um componente React. Nesta pasta estão presentes os arquivos de:
-
action.js: Responsável pela ações a serem realizadas na aplicação ou seja por solicitar algo para um reducer. Devem ser funções puras(apenas enviar dados ao reducer). Neste arquivo são criadas as funções referentes as ações a serem exercidas na plataforma como: (Criar, editar, deletar...)
-
reducer.js: Arquivo encarregado de lidar com todas as ações como por exemplo quando um componente solicita alteração de algum dado da store.
-
store.js: Arquivo responsaǘel pelo conjunto de estados da aplicação ou seja o centro de informações no qual possui disponibilidade para receber e entregar exatamente o que o componente requisita. Store é um objeto que possui todos os estados do componente.
Arquivos BotFlow
-
App.js: Arquivo responsável pela renderização da página HTML. Neste Arquivo é importado o arquivo de rotas e de estilo da página.
-
index.js: Arquivo no qual é chamado a biblioteca ReactDom responsável pela implementação do VirtualDom
-
index.css: Arquivo css responsável por carregar os estilos dos componentes
-
routes.js: Arquivo responsável pela criação do componente que será responsável por chamar a tela que será renderizada ou seja responsável pela navegação nas telas da plataforma.
Estrutura BotFlow - API
Repositório dedicado ao desenvolvimento do Backend da Plataforma por meio da implementação da API NodeJs e do banco de dados MongoDB
Estrutura de Pastas BotFlow - API
Server
Pasta responsável pela subdivisão de pastas referentes a configuração e criação de endpoints na API assim como configurações do banco de dados da plataforma.
-
Config: Sub-pasta responsável pelos arquivos de gerenciamento do banco de dados e login
-
Controllers: Sub-pasta de arquivos referente a criação assincronas das funções referentes aos endpoints da API.
-
Models: Sub-pasta de arquivos referentes a criação do modelo de comunicação da API NodeJs com o banco de dados MongoDB por meio da biblioteca 'mongoose'.
-
Private: Sub-pasta referente ao gerenciamento de chaves para autenticação de login dentro do projeto
-
Routes: Sub-pasta de arquivos referente a documentação dos endpoints da API
Arquivos BotFlow - API
- app.js: Arquivo responsável por receber e enviar as requisições da API.