Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • garbus-wiki garbus-wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 35
    • Issues 35
    • 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
  • GarbUs
  • garbus-wikigarbus-wiki
  • Wiki
  • arquitetura

arquitetura · Changes

Page history
Update arquitetura authored Jun 24, 2021 by Angelo Calebe Araujo da Rocha's avatar Angelo Calebe Araujo da Rocha
Show whitespace changes
Inline Side-by-side
arquitetura.md
View page @ c1759719
...@@ -25,11 +25,35 @@ Devem ser apresentados das seguintes formas: ...@@ -25,11 +25,35 @@ Devem ser apresentados das seguintes formas:
* Diagramas ou Sistemas * Diagramas ou Sistemas
* Descrições ou Textos explicativos * Descrições ou Textos explicativos
## Rotas do backend
[![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/15973252-f44b1278-8442-4898-8778-4e37501d7f38?action=collection%2Ffork&collection-url=entityId%3D15973252-f44b1278-8442-4898-8778-4e37501d7f38%26entityType%3Dcollection%26workspaceId%3D23e543fe-3382-4e89-af71-2692db9c051a#?env%5BGarbus%5D=W3sia2V5Ijoiand0VG9rZW4iLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoibG9naW4iLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoicGFzc3dvcmQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9XQ==)
# Arquitetura
O projeto está dividido em 2 partes:
- **Frontend**: É uma Progressive Web Application, ou seja, uma aplicação web que pode ser instalada, utilizando a tecnologia *Service Worker*, presente nos principais navegadores web do mercado. Desenvolvido em React.js com linguagem Typescript.
- **Backend**: É uma RESTful API construída utilizando Spring, que é um dos frameworks Java mais populares do mercado.
Também estão sendo utilizadas as seguintes tecnologias como partes integrantes do projeto:
- **PostgreSQL**: Banco de dados relacional *open source* com mais de 30 anos de desenvolvimento. Um dos mais utilizados no mundo. Utilizado no projeto como persistência de dados.
- **Hashicorp Vault**: Uma ferramenta para armazenar senhas e outros segredos de forma segura, com forte criptografia e controle de acesso, e acessível de várias formas (REST API, linha de comando, bibliotecas para várias linguagens de programação). Utilizado no projeto para armazenar senhas e configurações.
- **Firebase**: Uma plataforma do Google utilizada para desenvolvimento de aplicativos móveis e web. Possui vários recursos prontos para integração, como banco de dados, autenticação, *analytics* e notificações push. Utilizado no projeto para enviar e exibir notificações push.
## Diagrama de componentes ## Diagrama de componentes
A visão geral dos componentes do projeto pode ser visualizada na imagem abaixo.
![](https://tools.ages.pucrs.br/garbus/garbus-wiki/raw/master/Images/component_diagram.png) ![](https://tools.ages.pucrs.br/garbus/garbus-wiki/raw/master/Images/component_diagram.png)
## Diagrama de implantação ## Diagrama de implantação
A implantação do projeto é realizada utilizando containers Docker. O repositório [garbus-orchestration](https://tools.ages.pucrs.br/garbus/garbus-orchestration) contém a configuração do *docker-compose*, responsável pela implantação, que hoje é feita em uma única máquina. Para distribuir em vários hosts, algumas alterações seriam necessárias (provavelmente mudar para o *Docker Swarm* ou mesmo *K8s*).
Os componentes Frontend, Backend e Vault são acessíveis apenas pelo Nginx. Endereços:
- Frontend: https://ages-garbus.duckdns.org
- Backend: https://ages-garbus.duckdns.org/api/garbus/<rotas\>
- Vault: https://ages-garbus-vault.duckdns.org
![](http://tools.ages.pucrs.br/garbus/garbus-wiki/raw/master/Images/deploy_diagram.png) ![](http://tools.ages.pucrs.br/garbus/garbus-wiki/raw/master/Images/deploy_diagram.png)
## Rotas do backend
As rotas do backend estão acessíveis no Postman e documentadas utilizando Swagger.
[![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/15973252-f44b1278-8442-4898-8778-4e37501d7f38?action=collection%2Ffork&collection-url=entityId%3D15973252-f44b1278-8442-4898-8778-4e37501d7f38%26entityType%3Dcollection%26workspaceId%3D23e543fe-3382-4e89-af71-2692db9c051a#?env%5BGarbus%5D=W3sia2V5Ijoiand0VG9rZW4iLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoibG9naW4iLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoicGFzc3dvcmQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9XQ==)
<a href="https://ages-garbus.duckdns.org/api/garbus/swagger-ui.html"><img src="https://static1.smartbear.co/swagger/media/assets/images/swagger_logo.svg" alt="Swagger" width="123" /></a>
Clone repository
  • Backend
  • Gerenciamento do Projeto
  • Solução de Problemas: Prettier e quebras de linha
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • Workshops
  • arquitetura
  • banco_dados
  • configuracao
  • Home
  • horarios
  • instalacao
  • mockups
  • requisitos
View All Pages