|Home|Quick Start|Sprints|Progresso|Modelagem|Protótipos|Arquitetura|Artefatos|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
Arquitetura
* Acesso rápido:Tecnologias utilizadas * Overview * Diagrama de Deploy * Diagrama de Componentes * Build da aplicação
Tecnologias utilizadas
Descrevemos, a seguir, as tecnologias utilizadas no eVote.
Node.js: interpretador, com código aberto, de código JavaScript de modo assíncrono e orientado a eventos.
Versão utilizada: 10.14.1.
npm: gerenciador de pacotes padrão para o ambiente de tempo de execução do JavaScript Node.js.
Versão utilizada: 6.4.1.
React Native: estrutura de aplicativo móvel de código aberto usada para desenvolver aplicativos para Android, iOS e UWP, permitindo que os desenvolvedores usem o React junto com os recursos da plataforma nativa.
Versão utilizada: Expo SDK v32.0.0.
Expo: ferramenta utilizada no desenvolvimento mobile com React Native que permite o fácil acesso às APIs nativas do dispositivo sem precisar instalar qualquer dependência ou alterar código nativo, possibilitando a pronta execução do código desenvolvido no computador e visualizado no celular.
Versão utilizada: 32.0.0.
Firebase: conjunto de tecnologias propostas como “Backend as a Service”:
- Realtime Database: banco de dados NoSQL hospedado na nuvem.
- Storage: armazenador de conteúdo gerado pelo usuário, como fotos e PDFs.
- Authentication: solução de identidade completa, compatível com contas de e-mail e senha.
Overview
Para construir o eVote, nos apoiamos fortemente em serviços externos, em comunicação com nossos dispositivos pela internet, tanto nos momentos de desenvolvimento, quanto de build do aplicativo. Por essas razões, a arquitetura do projeto é baseada em Client-Server.
Diagrama de Deploy
A solução, uma vez gerado o build contendo as dependências de node_modules
(mais informações no final da página), se comunica com o banco de dados (Firebase) através da internet, via protocolo HTTP.
Diagrama de Componentes
A dinâmica de criação de salas de votação é representada no diagrama de componentes acima.
O Realtime Database do Firebase atua como centro de informações do sistema, mantendo dados de usuários cadastrados e logados em i0 e i1, e se alimentando do estado de uma sala de votação recém criada em i6.
Um usuário, Administrador nesse cenário, fornece entradas através de telas para criar a sala de votação, composta de datas de início e fim, informações para contexto (título, descrição, arquivo), questões e convidados. Essas informações são, então, consumidas por usuários cuja ID é referenciada entre os Convidados, e a verificação para o acesso a essa sala é requisitada também ao Firebase, via i4.
Build da aplicação
Tenha o expo instalado na sua máquina.
npm install expo-cli --global
Crie uma conta em expo.io, valide-a, e insira seu usuário e senha também no terminal.
expo login
Se você ainda não instalou as dependências do projeto clonado, instale-as.
npm install
Suba, então, um servidor para o projeto. (e aguarde o bundler se manifestar)
npm start
Concluídas essas etapas, o build está pronto para ser realizado.
expo build:android
Se tudo der certo, o terminal informará o link para acompanhar o build, onde a apk será disponibilizada.
Se algo der errado, sinta-se livre para chamar o @joao.lerina .