Página Inicial |
---|
Página da 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
Devem ser apresentados das seguintes formas:
- Imagens ou Gifs
- Diagramas ou Sistemas
- Descrições ou Textos explicativos
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
A visão geral dos componentes do projeto pode ser visualizada na imagem abaixo.
Diagrama de implantação
A implantação do projeto é realizada utilizando containers Docker. O repositório 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
Rotas do backend
As rotas do backend estão acessíveis no Postman e documentadas utilizando Swagger.