... | @@ -17,43 +17,69 @@ |
... | @@ -17,43 +17,69 @@ |
|
|
|
|
|
---
|
|
---
|
|
# $`\mathbb{ARQUITETURA}`$
|
|
# $`\mathbb{ARQUITETURA}`$
|
|
---
|
|
<!-- -->
|
|
|
|
|
|
|
|
Esta seção é dedicada a apresentar a arquitetura definida para o projeto. <br>Sendo esta dividida nas seguintes partes:
|
|
|
|
|
|
Esta seção é dedicada a apresentar a arquitetura definida para o projeto. Ela está dividida em 3 partes:
|
|
- [Frontend Web](#frontend-web)
|
|
|
|
- [Frontend Mobile](#frontend-mobile)
|
|
|
|
- [Backend](#backend)
|
|
|
|
- [Diagrama de Deploy](#diagrama-de-deploy)
|
|
|
|
|
|
- Frontend Web
|
|
---
|
|
- Frontend Mobile
|
|
|
|
- Backend
|
|
|
|
|
|
|
|
## Frontend Web
|
|
## 💻 Frontend Web
|
|
|
|
|
|
**Repositório:** xxx
|
|
Link para o Repositório: [Web](https://tools.ages.pucrs.br/planline/web)
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
## Frontend Mobile
|
|
## 📱 Frontend Mobile
|
|
|
|
|
|
**Repositório:** xxx
|
|
Link para o Repositório: [Mobile](https://tools.ages.pucrs.br/planline/mobile)
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
## Backend
|
|
## ⚙ Backend
|
|
|
|
|
|
**Repositório:** xxx
|
|
Com base nos princípios de *Clean Architecture*[1], estruturamos um projeto *backend* utilizando a seguinte Stack:
|
|
|
|
|
|
---
|
|
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
|
|
|
|
![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB)
|
|
|
|
![Prisma](https://img.shields.io/badge/Prisma-3982CE?style=for-the-badge&logo=Prisma&logoColor=white)
|
|
|
|
![Swagger](https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge&logo=swagger&logoColor=white)
|
|
|
|
|
|
|
|
Do qual possui uma arquitetura em camadas, das quais são caracterizadas pelos seguintes ficheiros:
|
|
|
|
|
|
|
|
### Controllers
|
|
|
|
|
|
|
|
São responsáveis por prover serviços, e por conectar os demais módulos pertinentes do sistema, com a aplicação backend.
|
|
|
|
|
|
|
|
### Services
|
|
|
|
|
|
|
|
Camada intermediária da aplicação, a qual define a comunicação entre *Controllers* e *Repositories*, provendo uma conversão mútua da lógica de sistema, com a lógica de negócio.
|
|
|
|
|
|
Nessa seção, será apresentada uma visão geral da infraestrutura do projeto.
|
|
### Repositories
|
|
|
|
|
|
### Diagrama de Deploy
|
|
Define as lógicas diretamente estruturadas com a troca de dados, entre a aplicação *backend* e o banco de dados.
|
|
|
|
|
|
|
|
### Prisma
|
|
|
|
|
|
|
|
Este ficheiro define a camada de *Models*, a qual tem por função detalhar o formato dos dados transitados com o banco de dados. E o mesmo, é assim denominado por fazer uso do *Prisma*, uma biblioteca de ORM (Object Relational Mapping) que provê serviços de *query* para simplificar a gerência sobre o banco de dados.
|
|
|
|
|
|
|
|
Link para o Repositório: [Backend](https://tools.ages.pucrs.br/planline/backend)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### 🚀 Diagrama de Deploy
|
|
|
|
|
|
O diagrama a seguir apresenta a arquitetura em alto nível e o processo de deploy da infraestrutura do projeto:
|
|
O diagrama a seguir apresenta a arquitetura em alto nível e o processo de deploy da infraestrutura do projeto:
|
|
|
|
|
|
![diagrama_de_deploy](uploads/7215f3154af02a67d156c2b6aec077cc/diagrama_de_deploy.png)
|
|
![diagrama_de_deploy](uploads/7215f3154af02a67d156c2b6aec077cc/diagrama_de_deploy.png)
|
|
|
|
|
|
[diagrama_de_deploy.xml (draw.io)](uploads/039da2d50739cfec82fdb63d6bbe4f1b/diagrama_de_deploy.xml)
|
|
[Arquivo XML para o Diagrams.net](uploads/039da2d50739cfec82fdb63d6bbe4f1b/diagrama_de_deploy.xml)
|
|
|
|
|
|
### Orçamento AWS
|
|
### 💸 Orçamento AWS
|
|
|
|
|
|
Essa seção apresenta o orçamento da infraestrutura na AWS. O orçamento foi feito utilizando a ferramenta [AWS Pricing Calculator](https://calculator.aws/#/) e busca estimar o custo financeiro para manter a infraestrutura do projeto pelo pelo período de 1 semestre, sendo este a duração do projeto e da disciplina da AGES.
|
|
Essa seção apresenta o orçamento da infraestrutura na AWS. O orçamento foi feito utilizando a ferramenta [AWS Pricing Calculator](https://calculator.aws/#/) e busca estimar o custo financeiro para manter a infraestrutura do projeto pelo pelo período de 1 semestre, sendo este a duração do projeto e da disciplina da AGES.
|
|
|
|
|
... | @@ -70,3 +96,7 @@ A seguir serão apresentados os componentes (serviços da AWS) que irão compor |
... | @@ -70,3 +96,7 @@ A seguir serão apresentados os componentes (serviços da AWS) que irão compor |
|
- **Custo Imediato:** 549.25 USD
|
|
- **Custo Imediato:** 549.25 USD
|
|
- **Custo Mensal:** 3.07 USD
|
|
- **Custo Mensal:** 3.07 USD
|
|
- **Custo Semestral:** 18,42 USD
|
|
- **Custo Semestral:** 18,42 USD
|
|
|
|
|
|
|
|
## Referências
|
|
|
|
|
|
|
|
[1] C. Martin, Robert. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Pearson, 2017 |