Home | Escopo e Cronograma | Processo | Design/Mockups | Configuração | Arquitetura | Código | BD | Qualidade | Utilização |
---|
Arquitetura do Sistema
Descrição
Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend, além dos dados relativos ao deploy.
Sumário
Arquitetura Geral da Aplicação
TBD
Deploy
Recipes API
TBD
Diagrama de Deploy
TBD
Backend
Definições de linguagem e bibliotecas
Pontos-chave:
- Questionário inicial para o time;
- Conhecimento geral do time em Javascript;
- Express mais simples que Spring.
Escolhas:
- Linguagem: TypeScript
- Frameworks: Express e Node.
Antes de começar o desenvolvimento do projeto foi feito um questionário com o time para quantificar o conhecimento dos alunos em diversas tecnologias, frameworks e bancos de dados para determinar quais as tecnologias que seriam usadas de acordo com o conhecimento geral da equipe.
Foi definido a linguagem TypeScript para o desenvolvimento do backend devido a proximidade dos integrantes do time com ela e sua facilidade de uso, muitos já haviam estudado Java por conta das cadeiras do curso, mas não tinham conhecimento de Spring, um framework que possui uma curva de aprendizado alta se comparado com o Express que é um micro framework que foi incrementado com extensões para cumprir com as funcionalidades necessárias para o projeto.
Módulos do Sistema:
-
Routes: Arquivos possuem o nome do serviço que será disponibilizado. Nele ficam registrados os endpointes da aplicação, ou seja, os caminhos após o endereço do servidor como
/user/specialist
e qual o tipo de chamada o endereço irá receberGET
,POST
,PUT
ouDELETE
- Services: Nesta pasta ficam os arquivos que validam nossas regras de negócio, utilizando o repository para fornecer os dados do banco e realizar as validações.
- Repository: Todos os arquivos aqui fazem as chamadas ao banco de dados através das models passando os parâmetros adequados para as funções desejadas.
- Models: Nesta pasta estão todas as representações das tabelas do nosso banco de dados, mas de uma forma com que possamos trabalhar facilmente no código: classes. Os dados são recuperados do banco e convertidos para as classes criadas.
Diagrama de Fluxo
TBD
Frontend
Definições de Tecnologias
TBD
Módulos do Sistema
Estrutura de pacotes do sistema
O sistema foi dividido em camadas
e podemos ver as principais abaixo:
-
Components (
átomo
): Na química, os átomos são os blocos de construção básicos da matéria. Assim, os átomos das nossas interfaces servem como os blocos de construção fundamentais que compõem todas as nossas interfaces de usuário. Esses átomos incluem elementos básicos como labels, inputs, botões etc., sendo a parte mais genérica e reutilizável da interface do usuário. Não contém regra de negócio. -
Containers (
molécula
): Na química, moléculas são grupos de átomos ligados entre si que assumem novas propriedades. Nas interfaces, as moléculas são grupos simples de elementos da interface do usuário funcionando como uma unidade. Por exemplo, um label de formulário, um input de pesquisa e um botão podem se unir para criar uma molécula de formulário de pesquisa. É a parte responsável por agrupar componentes que serão utilizados em uma tela. Contém regra de negócio/lógica. -
Screens (
organismo
): Organismos são componentes de IU complexos, compostos por grupos de moléculas e/ou átomos e/ou outros organismos. Esses organismos formam seções distintas de uma interface. Responsável pela a apresentação dos containers e interage com a navegação entre as telas. Possui pouca lógica/regra de negócio (menos do que o container). Onde são feitas as requisições pra API, geralmente.
Diagramas de Componentes
TBD
Diagrama do Sistema
TBD