Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • R RN-eVote
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • VotacaoOnLine
  • RN-eVote
  • Wiki
  • arquitetura

Last edited by F4NT0 Apr 22, 2020
Page history

arquitetura

Home Quick Start Sprints Progresso Modelagem Protótipos Arquitetura Artefatos

Arquitetura


Acesso rápido:

- Arquitetura - 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.

Ciclo de desenvolvimento: ciclo_de_desenvolvimento

Build do aplicativo: app-building


Diagrama de Deploy

evote-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

evote-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 .

Clone repository
  • QuickStart
  • User Stories
  • arquitetura
  • backend
  • cronograma
  • frontend
  • Home
  • links
  • modelagem
  • progresso
  • prototipos
  • sprints
  • termo de abertura