Conecta Ensina

Conecta Ensina

  • Docs

›Documentos do Produto

Documentos do Projeto

  • EAP
  • Roadmap do produto
  • Documento de comunicação
  • Pipeline Devops
  • Plano de gerenciamento de riscos
  • Plano de gerenciamento de custos
  • Plano de GCS
  • Sobre nós

Documentos do Produto

  • Backlog do produto
  • Documento de arquitetura
  • Documento de visão
  • Especificação dos casos de uso
  • Modelagem do banco de dados
  • Protótipo de baixa fidelidade
  • Protótipo de alta fidelidade

Documentos de Sprint

  • Planejamento Sprint 0
  • Fechamento Sprint 0
  • Planejamento Sprint 1
  • Fechamento Sprint 1
  • Planejamento Sprint 2
  • Fechamento Sprint 2
  • Planejamento Sprint 3
  • Fechamento Sprint 3
  • Planejamento Sprint 4
  • Fechamento Sprint 4
  • Planejamento Sprint 5
  • Fechamento Sprint 5
  • Planejamento Sprint 6
  • Fechamento Sprint 6
  • Planejamento Sprint 7
  • Fechamento Sprint 7
  • Planejamento Sprint 8
  • Fechamento Sprint 8
  • Planejamento Sprint 9
  • Fechamento Sprint 9
  • Planejamento Sprint 10
  • Fechamento Sprint 10
  • Planejamento Sprint 11
  • Fechamento Sprint 11
  • Planejamento Sprint 12
  • Fechamento Sprint 12
  • Planejamento Sprint 13
  • Planejamento Sprint 14
  • Fechamento Sprint 14
  • Planejamento Sprint 15
  • Fechamento Sprint 15
  • Planejamento Sprint 16
  • Fechamento Sprint 16

Releases

  • Release 1
  • Release 2

Documento de arquitetura

Histórico de Versão

DataVersãoDescriçãoAutor
07/09/20200.1Criação do documentoPaulo
08/09/20200.2EscopoDenniel William
09/09/20200.3PreenchimentoDenniel e Paulo
10/09/20200.4Finalização dos demais diagramasDenniel
11/09/20200.5Arrumando linksPaulo
04/12/20200.6Modificação do escopo, representação arquitetural e metasJoão Vitor
09/12/20200.7Revisão do documentoJoão Vitor

Introdução

Objetivos

Este documento fornece uma visão geral da arquitetura abrangente do Conecta-Ensina. Apresenta várias visualizações de arquitetura para descrever os diferentes aspectos do sistema. Destina-se a transmitir aos interessados as decisões arquiteturais significativas que foram tomadas.

Escopo

O Conecta Ensina é um projeto de aulas particulares dadas por professores formados ou alunos de graduação. O usuário terá a possibilidade de agendar aulas de acordo com o horário e disciplina desejados.

Abreviações, acrônimos e definições

AcrônimoDefinição
APIApplication programming interface
iOSSistema operacional Apple
MVCModel-View-Controller
UUIDIdentificador único universal

Referências

  • Documentação do Vsign
  • Documento de arquitetura de Software do “Sistema de Paginação de Esportes Universitários”

Representação arquitetural

Implementação

O modelo de arquitetura proposta no projeto é um modelo multicamada, possuindo três camadas principais, sendo elas:

  • Visão: camada em que os dados são visualizados a partir de uma interface gráfica implementada.
  • Controladora: camada em que há o tratamento e interpretação dos eventos gerados por dispositivos de entrada.
  • Modelo: camada em que há persistência dos dados, sendo composto pelo banco de dados relacional PostgreSQL.

A comunicação entre as camadas é feita pelo modelo de arquitetura cliente-servidor. O servidor é representado pela camada intermediária (Controladora), tendo a responsabilidade de lidar com a camada de persistência (Modelo), que fornece os dados para manipulação, e com a camada de visualização (Visão), que apresenta por meio da interface gráfica os dados manipulados, no qual são requisitados por meio do protocolo de comunicação http com as outras camadas. O cliente nesse modelo realiza as requisições interagindo com a interface gráfica.

Arquitetura do Back-End

  • Node.js: Pode ser definido com um ambiente de execução Javascript server-side, sendo possível rodar uma aplicação standalone em uma máquina, não dependendo de um browser parar a execução.

  • React Native: Biblioteca Javascript criada pelo Facebook, que é utilizada para o desenvolvimento da interface gráfica para os sistemas de Android e iOS de forma nativa. Por conta do desenvolvimento ocorrer de forma nativa, o desempenho do software se torna superior às demais tecnologias concorrentes.

  • Express JS: Framework para Node.js, utilizado no back-end para o gerenciamento de rotas, middleware e de outras funções, facilitando a criação de API 's. Sendo responsável por realizar a conexão entre as camadas de persistência e de controle com a camada de visão.

  • Jest: Framework de testes criado pelo Facebook projetado para garantir a correção de código Javascript.

  • ESLint: Ferramenta de análise de código estática para identificar padrões problemáticos encontrados em código Javascript, auxiliando no processo de refatoração do código.

  • Sequelize: Definido como um ORM(Object-Relational Mapper) para Node.js, o sequelize tem suporte para PostgreSQL, realizando o mapeamento de dados relacionais (tabelas, colunas e linhas) para objetos Javascript.

  • PostgreSQL: O banco de dados escolhido para o projeto, pois possui excelente integração com a Node.js. Isso permite a utilização de UUID para colunas ID do tipo primary key, além oferecer uma gama de tipos de dados, auxiliando no desenvolvimento de um bom projeto de banco de dados.

Back-End

Estrutura de pacotes do back-end.

Arquitetura do Back-End

Front-End

Estrutura de pacotes do front-end.

Arquitetura do Front-End

Modelagem do Banco de Dados

Metas e restrições arquiteturais

Metas

Criação de um aplicativo para aparelhos móveis com a finalidade de permitir o usuário contratar aulas particulares de acordo com o horário e disciplina desejados.

  • Acoplamento: Foi separado as views da API de forma a atender qualquer exigência do cliente a novas tecnologias integradas em um mesmo banco de dados. Dessa forma, podemos focar em fazer uma API concreta para utilização em diversas plataformas, assim como diversas aplicações que integradas.

  • Evolução: A necessidade do desenvolvimento de novas funcionalidades poderá ser feita de forma independente na API e na interface de usuário, inclusive, adotando outras tecnologias, desde que a integração entre as duas frentes seja mantida.

Restrições

  • Expertise: A equipe não possui muito experiência de desenvolvimento nas tecnologias escolhidas. Entretanto, sabendo de tal restrição, buscou-se elaborar um Plano de Gerenciamento de Riscos para que o projeto possa ser desenvolvido com êxito.

  • Tecnologia: Se tratando de tecnologias emergentes, há muitas mudanças de versões que devem ser levadas em consideração na hora de adotar qualquer biblioteca.

Visualização dos casos de uso

Especificação dos casos de uso

Especificação dos casos de uso

Qualidade

Na API, os padrões adotados no projeto seguirão convenções do framework NodeJS, que são amplamente utilizados por projetos de diversos tamanhos.

Na interface de usuário, a utilização do React, permitirá que o desenvolvimento seja realizado de forma eficiente e componentizado, com facilidade de integração com outras bibliotecas e serviços.

Os desenvolvedores do projeto também farão uso das folhas de estilo das linguagens de programação adotadas e contarão com ferramentas de análise estática, para assegurar que o desenvolvimento está de acordo com os requisitos de boas práticas de desenvolvimento de software.

← Backlog do produtoDocumento de visão →
  • Histórico de Versão
  • Introdução
    • Objetivos
    • Escopo
    • Abreviações, acrônimos e definições
    • Referências
  • Representação arquitetural
    • Implementação
  • Metas e restrições arquiteturais
    • Metas
    • Restrições
  • Visualização dos casos de uso
    • Especificação dos casos de uso
  • Qualidade
Conecta Ensina
Documentos
Documentação do ProjetoDocumentação do ProdutoDocumentação das Sprints
Comunidade
Issues do projetoSobre Nós
Mais
Repositório da nossa WikiRepositório da nossa APIRepositório do nosso APP MobileStar
Facebook Open Source
Copyright © 2020 Conecta Ensina