... | @@ -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
|
... | | ... | |