Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • C cineclube-wiki
  • 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
  • Cine Clube
  • cineclube-wiki
  • Wiki
  • arquitetura

Last edited by Patrick Flores Jun 24, 2021
Page history
This is an old version of this page. You can view the most recent version or browse the history.

arquitetura

Home Sprints Requisitos Arquitetura Configuração Mockups BD Instalação GP Horários Processo

Arquitetura do Sistema

Esta é a página onde irá ficar todas as informações da Arquitetura do seu projeto, Como:

  • Segurança
  • Rotas de Backend (Arquitetura funcional)
  • Objects – Backend API
  • Methods – Backend API
  • Arquitetura Não Funcional)
  • Diagrama de Pacotes / Componentes (Arquitetura de software)
  • Diagrama de Deploy
  • Documentação sobre aplicação de Design do Projeto
  • Análise dos principios SOLID
  • Code Review

Diagrama de Deploy

No diagrama apresentado, temos a definição de como será a arquitetura física da aplicação em um alto-nível. Válido notar que estaremos construindo uma aplicação que utiliza contâiners, via Docker.

Imagens do sistema

  • Aplicação Front-End : Imagem da aplicação React.
  • Aplicação Back-End : Imagem da aplicação Node.
  • MySQL : Imagem do SGBD MySQL. Importante notar que esse utiliza um volume de banco de dados associado.
  • Firebase : API externa para obtenção de informações da conta Google.

Nós do sistema

  • Device do usuário : Dispositivo mobile utilizado pelo usuário como cliente.
  • Servidor AWS/DO : Ambiente de homologação da aplicação.
  • Cloud da Google : Ambiente da API Firebase.

Back-end

Definição da Linguagem e Frameworks

No início do semestre, ou seja, na primeira semana da Sprint 0, todos integrantes do time responderam um Formulário de Mapeamento de Tecnologias. A partir dos resultados desse formulário, pudemos avaliar qual linguagem (que era adequada para o uso no projeto) era a mais dominada pelo time como um todo e quais delas que os integrantes gostariam de trabalhar. Para a tecnologia do Back-end, o resultado foi o seguinte:

Conhecimentos Back-end

Gostaria Back-end

Também foi feito o mesmo questionamento em cima de Frameworks de Back-end. O resultado foi o seguinte:

Conhecimentos Framework Back-end

Gostaria Framework Back-end

A partir dos resultados obtidos, fizemos as seguintes escolhas:

  • Linguagem: TypeScript;
  • Frameworks: Node.js + Express.

Para informações sobre o Banco de Dados, basta clicar aqui.

Módulos do Sistema

  • Routes: Responsável pelo roteamento das requisições para seus respectivos Controllers. Essa parte do sistema é auto-gerado pelo pacote TSOA
  • Controllers: Responsável pela validação das requisições do usuário.
  • Services: Responsável pelo tratamento dos dados e também das regras de negócio.
  • Repository: Manipulação e comunicação com o Banco de Dados.
  • Models: Modelo das instâncias do banco.

Pacotes relevantes

  • NodeJS: Ambiente de execução de JavaScript no lado de servidor.
  • TypeScript: Linguagem de programação baseada em JavaScript, com adição de inúmeras funcionalidades que permitem maior segurança à aplicação, como a possibilidade de tipagem de dados.
  • Express.JS: Framework que permite a criação de servidores web.
  • firebase-admin: Permite a conexão entre a aplicação e a API do firebase. Muito importante para a obtenção de dados da conta do Google.
  • TSOA: Automatiza a criação de rotas e suas documentações via Swagger. Também conta com funcionalidades que permitem que essas rotas tenham configurações específicas, como a criptografia e selecionar o tipo de retorno de cada rota.
  • typeORM: Conexão com o banco de dados, além de outras funcionalidades, como a especificação de models do projeto.

Diagrama de Componentes

Front-end

Definição da Tecnologia

Para decisão sobre as tecnologias a serem utilizadas no Front-end, levamos em consideração os resultados do mesmo formulário apresentado no item do Back-end. Para a tecnologia do Front-end, obtivemos o seguinte resultado:

Conhecimentos Front-end

Gostaria Front-end

A partir dos resultados obtidos, fizemos as seguintes escolhas:

  • Linguagem: TypeScript Web;
  • Frameworks: React JS.

Módulos do Sistema

  • Components: Definição dos componentes reutilizáveis pela aplicação.
  • Pages: Definição das páginas usadas pela aplicação.
  • Routes: Definição das rotas e suas respectivas páginas usadas pela aplicação.
  • Services: Definição das funções usadas para comunicar com a API e com o Firebase.
  • Assets: Definição das imagens e estilos usadas pela aplicação.

Pacotes Relevantes

  • React: Biblioteca dedicado à construção de aplicações SPA (Single Page Application).
  • Material-UI: Biblioteca dedicado à componentes e estilos.
  • Axios: Utilizado para realizar troca de mensagens com a API.
  • Firebase: Permite a conexão entre a aplicação e a API do firebase. Muito importante para a obtenção de dados da conta do Google.

Diagrama de Componentes

Clone repository
  • Imagens
    • cineclube cronograma.pdf
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • configuracao
  • gp
  • Home
  • horarios
  • instalacao
  • mockups
  • processo
  • requisitos
  • sprints