Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • IACC Wiki IACC Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 29
    • Issues 29
    • List
    • Boards
    • Service Desk
    • Milestones
  • 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
  • Instrumento para Avaliacao de Competencias Clinicas
  • IACC WikiIACC Wiki
  • Wiki
  • Arquitetura

Arquitetura · Changes

Page history
Update Arquitetura authored Apr 14, 2024 by Arthur Henrique Henz's avatar Arthur Henrique Henz
Show whitespace changes
Inline Side-by-side
Arquitetura.md
View page @ 4c086781
...@@ -19,14 +19,21 @@ ...@@ -19,14 +19,21 @@
## Arquitetura geral ## Arquitetura geral
## Front-end ## Frontend
### Votação para definição da tecnologia do frontend ### Votação para definição da tecnologia do frontend
A arquitetura do frontend foi baseada no padrão moderno e bastante utilizado na indústria atual de aplicativos - baseado em 2024, o MVVM (Model,View,ViewModel). Utilizando React Native com TypeScript, foram necessárias algumas adaptações e concessões para que o projeto não corresse o risco de ser insustentável, pois a combinação do padrão de funcionamento React Native com a teoria do MVVM vem de encontro com um pouco mais de verbosidade, o que pode ser um entrave para programadores não tão experientes, como AGES I e II. É uma aposta de que seja garantido um projeto sólido.
Já para o Design System, optamos pelo Atomic Design, que é um sistema modular baseado em componentes. Essa metodologia torna o desenvolvimento de produtos digitais ou interfaces no geral mais escalável, uma vez que é mais fácil adicionar novas funcionalidades utilizando esse tipo de sistema ([ref. cursospm3](https://www.cursospm3.com.br/blog/atomic-design-o-que-e-etapas-usos-e-dicas-para-aplicar/#:~:text=O%20Atomic%20Design%20%C3%A9%20um,utilizando%20esse%20tipo%20de%20sistema.)).
Abaixo, uma foto mostrando a divisão de componentes, onde um átomo é algo simples como um componente de `InputText`, e moléculas são jusções de mais de uma célula/componente.
![image](uploads/a47b8b58caff275b732221b3a0649861/image.png)
![image](uploads/12b7faea3a87573ede676075d93bfa68/image.png) ![image](uploads/12b7faea3a87573ede676075d93bfa68/image.png)
![image](uploads/42607813b95ce56b07e916730ccdb6b7/image.png) ![image](uploads/42607813b95ce56b07e916730ccdb6b7/image.png)
## Back-end ## Backend
A arquitetura do projeto foi implementada baseada no tipo cliente-servidor. Onde o cliente é o aplicativo em React Native sendo executado no celular do usuário e o servidor é a aplicação Spring Boot, que é executada dentro de um container Docker dentro de uma máquina virtual EC2, no ambiante de nuvem AWS. A arquitetura do projeto foi implementada baseada no tipo cliente-servidor. Onde o cliente é o aplicativo em React Native sendo executado no celular do usuário e o servidor é a aplicação Spring Boot, que é executada dentro de um container Docker dentro de uma máquina virtual EC2, no ambiante de nuvem AWS.
Já por parte do código utilizamos o design pattern de Layers, este que possibilita a segregação de responsabilidades no backend por meio de camadas que se comunicam utilizando interfaces. Tais camadas implementadas foram a Controller para gerenciar as requisições dos clientes, a Service, encarregada das regras de negócio, e os Repository e Model, que se responsabilizam pela escrita e leitura no banco de dados. Já por parte do código utilizamos o design pattern de Layers, este que possibilita a segregação de responsabilidades no backend por meio de camadas que se comunicam utilizando interfaces. Tais camadas implementadas foram a Controller para gerenciar as requisições dos clientes, a Service, encarregada das regras de negócio, e os Repository e Model, que se responsabilizam pela escrita e leitura no banco de dados.
### Votação para definição da tecnologia do backend ### Votação para definição da tecnologia do backend
......
Clone repository

Áreas das Squads

{\color{darkblue}\mathbb{Página \space Inicial \space do \space BACKEND}}

{\color{darkblue}\mathbb{Página \space Inicial \space do \space FRONTEND}}

{\color{darkblue}\mathbb{Página \space Inicial \space do \space DATABASE}}.