Especificação
- list Lexico
- phone_android Prototipo
- date_range Roadmap
- map Mapa de Requisitos
- visibility Visão
- folder_open Arquitetura
- timeline Mindmap de interação
- note Requisitos de Qualidade
- color_lens Identidade Visual
Documento de Arquitetura
Sumário
- Introdução
- Finalidade
- Escopo
- Referências
- Representação da Arquitetura
- Metas Restrições de Arquitetura
- Visão de implementação
- Bibliografia
1. Introdução
1.1 Finalidade
O documento de arquitetura tem a função de especificar decisões arquiteturais relevantes na produção e implementação do projeto Dulce, empregando a tecnologia React Native, descrevendo seus aspectos e funcionalidades do sistema de forma clara e objetiva.
1.2 Escopo
Este documento se aplica à produção do aplicativo Dulce, implementado para as plataformas IOS e Android, representando a arquitetura utilizada.
1.3 Referências
Documento de VisãoGlossário.
2. Representação da Arquitetura
2.1 Diagrama de relações:
O diagrama apresenta cada etapa que será seguido para que o aplicativo DULCE funcione. Relacionando o front-end com o Back-end.
2.2 Diagrama React/Redux/Microsserviços:
React-Native
O front-end do aplicativo, feito em React-Native, é dividido em pastas, Screens, Navigators e Components. A pasta de Screens armazena todas as telas do aplicativo que são formadas utilizando componentes criados na pasta Components, como botões, áreas de texto e logos. A navegação de telas é feita pelo react-navigator, que utiliza da pasta Navigators para nomear e conectar as telas de acordo com o caminho estabelecido.
Redux
O Redux armazena as informações obtidas no uso do aplicativo em uma store, para facilitar o acesso dessas informações em outras telas. Para a implementação do redux, dividimos os arquivos em Actions e Reducers. Um Reducer é um objeto que é salvo na store durante o uso do aplicativo de forma q possa ser chamado e modificado em toda a aplicação sem a necessidade de ser transitado entre as telas. A Store é um Reducer onde armazenamos todos os outros reducers ultilizados para facilitar o acesso. Para acrescentar ou retirar alguma informação da store, é necessário o uso das funções declaradas nas Actions que manipulam o conteúdo da Store.
Microsserviços
Os microsserviços, produzida em Node.js, controlam e fornecem as informações visualizadas no aplicativo. Para qualquer manipulação de dados feita pelo aplicativo é necessário que ela seja chamada. Para implementar essa aquitetura de microsserviços, utilizamos a ferramenta Seneca JS, que fornece plugins que cuidam das fundações dos microsserviços.
Cada microsserviço contém um Client e um Server. O Client é o intermediário entre o aplicativo e o Server. Ele recebe as informações enviadas do aplicativo, faz os devidos tratamentos e envia para o Server. O Server possui contato com o banco de dados e nele ocorre a manipulação dos dados a serem enviados ao aplicativo por meio do Client.
3. Metas Restrições de Arquitetura
Para o desenvolvimento deste projeto serão ultilizadas as seguintes tecnologias:
- React-native: Utilizado para a construção do aplicativo em IOS e Android;
- Node.js: Plataforma de desenvolvimento dos microsserviços;
- SenecaJS: Conjunto de ferramentas para implementação de microsserviços em Node.js;
- RabbitMQ: Barramento de Serviços entre os microsserviço e o aplicativo;
- MongoDB: Banco de Dados não relacional;
- Manutenibilidade: O código deve ser facilmente modificado e corrigido.
4. Visão de Implementação
4.1 Modelagem de dados
4.2 Diagrama de Pacotes
A) Front-end
B) Back-end
5. Pipeline
A) App:
B) Microsserviços:
5. Bibliografia
Secretaria de Estado de Saúde do Distrito Federal, Acesso em: 23/03/2018, 11:36, Horário de Brasília.
React-native, Acesso em: 23/03/2018, 11:20, Horário de Brasília.
Node.js, Acesso em: 03/04/2018, 12:33, Horário de Brasília.
React Native Architecture: Explained! Acesso em: 22/03/2018, 12:05, Horário de Brasília.
Secretaria de Estado de Saúde do Distrito Federal, Acesso em: 23/03/2018, 11:36, Horário de Brasília.
React-native, Acesso em: 23/03/2018, 11:20, Horário de Brasília.
Node.js, Acesso em: 03/04/2018, 12:33, Horário de Brasília.
React Native Architecture: Explained! Acesso em: 22/03/2018, 12:05, Horário de Brasília.