Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki 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
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • PlanLine
  • WikiWiki
  • Wiki
  • Arquitetura

Arquitetura · Changes

Page history
Update Arquitetura, topic definitions, deploy concepts, and references authored Nov 24, 2023 by Giovanni Gonçalves Migon's avatar Giovanni Gonçalves Migon
Hide whitespace changes
Inline Side-by-side
Arquitetura.md
View page @ 25ccd195
......@@ -27,16 +27,18 @@ Esta seção é dedicada a apresentar a arquitetura definida para o projeto. <br
---
Ambos os projetos seguiram os princípios de *Clean Architecture*[1][2], e cada repositório possui uma arquitetura em camada que condiz com a sua finalidade. Ambos são descritos melhor nos tópicos abaixo.
## ⚙ Backend
Com base nos princípios de *Clean Architecture*[1], estruturamos um projeto *Backend* utilizando a seguinte Stack:
Stacks definidas:
![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)
[![](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB)](https://expressjs.com/pt-br/)
[![](https://img.shields.io/badge/Prisma-3982CE?style=for-the-badge&logo=Prisma&logoColor=white)](https://www.prisma.io/)
[![](https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge&logo=swagger&logoColor=white)](https://swagger.io/)
Do qual possui uma arquitetura em camadas, das quais são caracterizadas pelos seguintes ficheiros:
As camadas do sistema estão descritas abaixo.
### Controllers
......@@ -59,16 +61,16 @@ Link para o Repositório: [Backend](https://tools.ages.pucrs.br/planline/backend
---
## 📱 Frontend Mobile
## 📱 Mobile
Com base nos princípios de *Clean Architecture*[1], estruturamos um projeto *Mobile* utilizando a seguinte Stack:
Stacks definidas:
![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white)
![Expo](https://img.shields.io/badge/expo-1C1E24?style=for-the-badge&logo=expo&logoColor=#D04A37)
![React Native](https://img.shields.io/badge/react_native-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
![Tailwindcss](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)
[![](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![](https://img.shields.io/badge/expo-1C1E24?style=for-the-badge&logo=expo&logoColor=#D04A37)](https://expo.dev/)
[![](https://img.shields.io/badge/react_native-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)](https://reactnative.dev/)
[![](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)](https://tailwindcss.com/)
Do qual possui uma arquitetura em camadas, das quais são caracterizadas pelos seguintes diretórios:
As camadas do sistema estão descritas abaixo.
### Components
......@@ -91,16 +93,16 @@ Link para o Repositório: [Mobile](https://tools.ages.pucrs.br/planline/mobile)
---
## 💻 Frontend Web
## 💻 Web
Com base nos princípios de *Clean Architecture*[1], estruturamos um projeto *Web* utilizando a seguinte Stack:
Stacks definidas:
![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white)
![Vite](https://img.shields.io/badge/vite-%23646CFF.svg?style=for-the-badge&logo=vite&logoColor=white)
![REACT](https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)
![Tailwindcss](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)
[![](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![](https://img.shields.io/badge/vite-%23646CFF.svg?style=for-the-badge&logo=vite&logoColor=white)](https://vitejs.dev/)
[![](https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)](https://react.dev/)
[![](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)](https://tailwindcss.com/)
Do qual possui uma arquitetura em camadas, das quais são caracterizadas pelas seguintes pastas:
As camadas do sistema estão descritas abaixo.
### Components
......@@ -139,9 +141,9 @@ O diagrama a seguir apresenta a arquitetura em alto nível e o processo de deplo
![diagrama_de_deploy](uploads/7215f3154af02a67d156c2b6aec077cc/diagrama_de_deploy.png)
Sobre duas instâncias da AWS, os códigos dos repositórios *Frontend Web* e *Backend* serão carregados pelo *Gitlab Runner* a cada nova contruibuição, e serão armazenados dentro dos respectivos *containers Docker*.
A cada nova versão gerada na branch *main* dos repositórios *Web* e *Backend*, os respectivos códigos serão envolvidos em um *container Docker* e movidos ao *Gitlab Runner* do qual realiza a etapa de *build* e direciona a aplicação executável para cada instância da AWS.
O repositório do *Frontend Mobile* não necessita de um servidor por este utilizar o framework do *EXPO GO*, que é carregado diretamente no smartphone de cada usuário quando o código é executado. O mesmo é apresentado no *Firebase*, sendo um banco de dados provisionado na *Google Cloud*.
O repositório do *Mobile* não necessita estar em um servidor, por conta do sistema poder ser executado em um ou vários dispositivos mobiles. E devido ao framework do *Expo*, é possível executar o *App* em diversos sistemas mobiles, como iOS, Android, e também permite portá-lo em uma versão *Web*.
Os principais módulos do sistema vão dispor de conexões distintas entre sí, das quais sofrerão alterações mediante o andamento dos projetos.
......@@ -149,7 +151,7 @@ Os principais módulos do sistema vão dispor de conexões distintas entre sí,
### 💸 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 sessã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 período de 1 semestre, sendo este a duração do projeto e da disciplina da AGES.
O PDF gerado através do AWS Pricing Calculator com o orçamento para a infraestrutura do projeto pode ser encontrado nesse link: [My_Estimate_-_AWS_Pricing_Calculator.pdf](uploads/618b67190e19034aeb91203cbedbb958/My_Estimate_-_AWS_Pricing_Calculator.pdf)
......@@ -167,4 +169,5 @@ A seguir serão apresentados os componentes (serviços da AWS) que irão compor
## Referências
[1] C. Martin, Robert. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Pearson, 2017
[1] MARTIN, Robert. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Pearson, 2017. P. 161-404.
[2] MARTIN, Robert. The Clean Architecture. 2012. Disponível em: <https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html> Acesso em: 24 nov. 2023.
Clone repository
  • Home
Documentação do negócio
  • Controle de sprints
  • Requisitos de negócio (User Stories)
  • Processo de desenvolvimento
  • Gerenciamento do projeto
  • Horários disponíveis
Documentação técnica
  • Arquitetura
  • Mockups
  • Banco de dados