Comex Stat

Comex Stat

  • Docs
  • Sprints

›Arquitetura

Comunidade

  • Code of Conduct
  • Contribuindo para o projeto

Gerência

  • Plano de Comunicação
  • Processo Definido
  • Indicadores e Métricas
  • Política de Branches
  • evm

Capacitação

  • Treinamentos
  • Microsserviços
  • DevOps
  • Pipeline DevOps
  • Como executar comandos Django

Visão de Produto

  • Documento de Visão
  • Termo de Abertura do Projeto
  • Estrutura Análitica do Projeto
  • Canvas
  • Protótipo de Baixa Fidelidade
  • Guia de Estilo
  • Roadmap Release 2

Arquitetura

  • Definição Arquitetural
  • Documento de Arquitetura

Sprints Release 2

  • Sprint 7
  • Sprint 8
  • Sprint 9
  • Sprint 10
  • Sprint 11
  • Sprint 12
  • Sprint 13
  • Sprint 14

Definição Arquitetural

1. Introdução

A arquitetura que vamos utilizar será a de microsserviços. Os microsserviços são um estilo de arquitetura de aplicativo em que programas autônomos independentes, com uma única finalidade, podem se comunicar entre si por meio de uma rede. Normalmente, esses microsserviços podem ser implantados independentemente porque eles têm uma forte separação de responsabilidades por meio de uma especificação bem definida com compatibilidade reversível significativa para evitar a quebra súbita de dependência.

Com base na arquitetura microserviços, foram definidas as seguintes tecnologias.

2. Tecnologias que Serão Utilizadas

Todas as tecnologias adotadas foram escolhidas em conjunto com o cliente, por meio de reuniões que fazermos semanalmente.

2.1. Django

O Django é um framework web na linguagem Python, que permite rápido desenvolvimento e design claro e objetivo de aplicações web..

O Django será utilizado no back-end do projeto por apresentar uma adequeda estrutura base para projetos, por ser a maior comunidade e ter maior aceitação entre os frameworks web Python, além de acarretar em um boa curva de aprendizado para a equipe.

2.2. Angular

Angular é um framework para construção da interfaces de usuário usando HTML, CSS e JavaScript, através de suas bibliotecas facilita o desenvolvimento de aplicações web.

O Angular será aplicado como o front-end do projeto por ser um framework completo e por possuir diversos componentes disponíveis para as várias necessidades da aplicação.

2.3. GraphQL

GraphQL é uma linguagem de consulta para APIs, o GraphQL fornece uma descrição completa e compreensível dos dados contidos na API.

Características principais:

  • Permite que o cliente especifique exatamente quais dados deseja obter.
  • Facilita a agregação de dados de várias fontes.
  • Usa um sistema de tipos para descrever dados.

GraphQL foi escolhido por oferecer características arquiteturais que vão de acordo com a aplicação.

2.4. PostgreSQL

O PostgreSQL é um sistema de gerenciamento de banco de dados do tipo objeto-relacional (ORDBMS) com ênfase em extensibilidade e em padrões de conformidade.

Como um servidor de banco de dados, sua principal função é armazenar dados de forma segura, apoiando as melhores práticas, permitindo a recuperação dos dados a pedido de outras aplicações de software.

O PostgreSQL sará usado por ter muitos recursos destinados a ajudar os desenvolvedores a gerenciar e a proteger a integridade dos dados.

3. Relacionamento das Tecnologias

3.1. GraphQL com Django

O ComexStat contará com a implementação do GraphQL e Python, para essa integração onde será utilizado a biblioteca Graphene. Será utilizado basicamente o query do GraphQL, para fazer buscas de informações do banco de dados.

3.2. GraphQL com Angular

O Apollo Client possui uma implementação em Angular para GraphQL. O Apollo Client foi projetado desde o início para facilitar a construção de componentes de interface do usuário que buscam dados com o GraphQL.

O Apollo Client é flexível para a plataforma Angular, onde foi cuidadosamente desenvolvida para funcionar bem com todas as ferramentas usadas pelos desenvolvedores Angular.

3.3. Diagrama

Diagrama_Representacao_Arquitetural

4. Arquitetura do Software

Foi decidido junto ao cliente a posibilidade de uma arquitetura monolítica, visto que o escopo do projeto está bem acoplado e que vamos utilizar bibliotecas externas para as funcionalidades da aplicação.

Uma arquitetura monolítica é o modelo unificado tradicional para o design de um programa de software.

O software monolítico é projetado para ser independente, os componentes do programa são interconectados e interdependentes, em vez de fracamente acoplados, como é o caso dos programas de software modulares. Em uma arquitetura bem acoplada, cada componente e seus componentes associados devem estar presentes para que o código seja executado ou compilado.

4.1. Diagrama

Diagrama-Monolitico

5. Referências

  • GraphQL. Disponível em: https://graphql.org/. Acessado em 13/09/2018.
  • GREIF, Sacha. Disponível em: https://medium.freecodecamp.org/so-whats-this-graphql-thing-i-keep-hearing-about-baf4d36c20cf. Acessado em 13/09/2018.
  • AFONSO, Alexandre. Disponível em: https://blog.algaworks.com/o-que-e-angular/. Acessado em 13/09/2018.
  • Edson. Disponível em: https://www.devmedia.com.br/postgresql-tutorial/33025. Acessado em 13/09/2018.
  • PostgreSQL. Disponível em: https://www.postgresql.org/about/. Acessado em 13/09/2018.
  • SCARPA, João Mateus. Disponível em: https://blog.designa.com.br/padr%C3%B5es-de-arquitetura-de-software-voc%C3%AA-sabe-do-que-estamos-falando-4858967c4054. Acessado em 19/09/2018.
← Roadmap Release 2Documento de Arquitetura →
  • 1. Introdução
  • 2. Tecnologias que Serão Utilizadas
    • 2.1. Django
    • 2.2. Angular
    • 2.3. GraphQL
    • 2.4. PostgreSQL
  • 3. Relacionamento das Tecnologias
    • 3.1. GraphQL com Django
    • 3.2. GraphQL com Angular
    • 3.3. Diagrama
  • 4. Arquitetura do Software
    • 4.1. Diagrama
  • 5. Referências
Universidade de Brasília
BackendFrontendContribuindo
Ministério da Indústria - MDIC
Sistema AntigoBase de DadosSite Oficial
Outros
Últimas SprintsGitHubStar
Facebook Open Source
Copyright © 2021 ComexStat