|
|
| [Home](home) | [**Escopo**](escopo) | [Git Workflow](git-workflow) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Gerência](gerencia) | [BD](Banco de Dados) | [Qualidade](qualidade) |
|
|
|
| :----------: | :-------------------------------: | :------------------: | :--------------: | :--------------------------: | :--------------------: | :------------------------: | :--------------: | :---------------: |
|
|
|
|
|
|
# Definições Arquitetura
|
|
|
|
|
|
## Descrição
|
|
|
|
|
|
- Esta seção irá abordar a arquitetura da aplicação.
|
|
|
|
|
|
## Sumário
|
|
|
- [Arquitetura do Sistema](#arquitetura-do-sistema)
|
|
|
- [Deploy](#deploy)
|
|
|
- [Diagrama de Deploy](#diagrama-de-deploy)
|
|
|
- [Diagrama de Componentes](#diagrama-de-componentes)
|
|
|
- [Definições de Tecnologias](#definições-de-tecnologias)
|
|
|
- [Frontend](#frontend)
|
|
|
- [Backend](#backend)
|
|
|
- [Módulos do Sistema](#módulos-do-sistema)
|
|
|
|
|
|
# Arquitetura do Sistema
|
|
|
|
|
|
- Explicação da Arquitetura e porque da escolha.
|
|
|
|
|
|
# Deploy
|
|
|
|
|
|
- O deploy é o processo de disponibilizar uma aplicação concluída para uso. Esse processo pode ser realizado em diversas fases do projeto, assim como após sua finalização. Utilizamos a plataforma de computação em nuvem TDB.
|
|
|
|
|
|
## Diagrama de Deploy
|
|
|
|
|
|
- O diagrama apresenta o processo de deploy da aplicação Cosmos utilizando a nuvem AWS.
|
|
|
|
|
|
<img src="">
|
|
|
|
|
|
## Diagrama de Componentes
|
|
|
|
|
|
- Para criar um diagrama de componentes eficiente para a aplicação "Cosmos", que ilustre claramente, podemos seguir a descrição a seguir, organizando os elementos conforme suas funções específicas:
|
|
|
|
|
|
- **Componentes de Usuário (User Interface Components)**
|
|
|
- **Texto**
|
|
|
- **Função**: Text.
|
|
|
- **Responsabilidades**: Texto.
|
|
|
- **Plataformas Suportadas**: Texto.
|
|
|
|
|
|
- **Componentes de Servidor (Server-side Components)**
|
|
|
- **Texto**
|
|
|
- **Função**: Texto.
|
|
|
- **Responsabilidades**: Texto.
|
|
|
|
|
|
- **Componentes de Infraestrutura**
|
|
|
- **Docker Containers**
|
|
|
- **Função**: Isolamento e gerenciamento de dependências.
|
|
|
- **Responsabilidades**: Cada componente do servidor (FastAPI, Gitlab Runner, Postgres) é implantado em um contêiner separado.
|
|
|
- **Gitlab Runner**
|
|
|
- **Função**: Automação de CI/CD.
|
|
|
- **Responsabilidades**: Automatizar atualizações e testes do código.
|
|
|
- **AWS EC2**
|
|
|
- **Função**: Hospedagem dos contêineres Docker.
|
|
|
- **Responsabilidades**: Fornecer recursos computacionais.
|
|
|
- **AWS S3**
|
|
|
- **Função**: Armazenamento para dados estáticos ou backups.
|
|
|
- **Responsabilidades**: Integrar-se com a aplicação para armazenamento de dados não-relacionais.
|
|
|
|
|
|
- **Componentes de Comunicação**
|
|
|
- **Texto**
|
|
|
- **Função**: Texto.
|
|
|
- **Responsabilidades**: Texto.
|
|
|
|
|
|
|
|
|
# Definições de Tecnologias
|
|
|
|
|
|
- Logo abaixo todas as tecnologias e linguagens de programação utilizadas no projeto.
|
|
|
|
|
|
## Frontend
|
|
|
|
|
|
- **Repositório**: https://tools.ages.pucrs.br/
|
|
|
|
|
|
- **TypeScript**: Linguagem de programação que estende JavaScript adicionando tipos estáticos, o que ajuda a detectar erros em tempo de desenvolvimento, melhorando a manutenção do código. [Referência](https://typescriptlang.org)
|
|
|
|
|
|
- **JavaScript**: Uma linguagem de programação versátil usada principalmente para criar interatividade em sites e aplicações web. [Referência](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript)
|
|
|
|
|
|
- **Docker**: Plataforma que usa contêinerização para facilitar o desenvolvimento, o teste e a implantação de aplicações, garantindo que elas funcionem da mesma maneira em diferentes ambientes. [Referência](https://docker.com)
|
|
|
|
|
|
- **HTML/CSS**: HTML é usado para estruturar o conteúdo na web, e CSS é usado para controlar a apresentação, formatação e layout. [Referência](https://developer.mozilla.org/en-US/docs/Web)
|
|
|
|
|
|
- **React Navigation**: Biblioteca para lidar com navegação e transição entre as telas em aplicativos usando React Native ou React. [Referência](https://reactnavigation.org)
|
|
|
|
|
|
|
|
|
|
|
|
## Backend
|
|
|
|
|
|
- **Repositório**: https://tools.ages.pucrs.br/
|
|
|
|
|
|
- **TDB**: Texto. [Referência](texto)
|
|
|
|
|
|
- **TypeScript**: Linguagem de programação que estende JavaScript adicionando tipos estáticos, o que ajuda a detectar erros em tempo de desenvolvimento, melhorando a manutenção do código. É amplamente usada em projetos que exigem maior escalabilidade e manutenção. [Referência](https://typescriptlang.org)
|
|
|
|
|
|
- **Postgres (PostgreSQL)**: Sistema de gerenciamento de banco de dados relacional robusto e de código aberto, conhecido por sua confiabilidade, flexibilidade e suporte a recursos avançados, como consultas complexas e transações atômicas. [Referência](https://postgresql.org)
|
|
|
|
|
|
- **Docker**: Plataforma que usa contêinerização para facilitar o desenvolvimento, o teste e a implantação de aplicações, garantindo que elas funcionem da mesma maneira em diferentes ambientes. É essencial para a criação de ambientes isolados e portáteis. [Referência](https://docker.com)
|
|
|
|
|
|
|
|
|
# Módulos do Sistema
|
|
|
|
|
|
- **Frontend:**
|
|
|
- **Estrutura Principal**
|
|
|
- `src`: Diretório principal onde o código-fonte do front-end está organizado.
|
|
|
|
|
|
- **Dentro do diretório src**
|
|
|
- `assets`: Recursos estáticos como imagens, vídeos ou arquivos de som.
|
|
|
- `components`: Componentes reutilizáveis usados em várias partes do aplicativo.
|
|
|
- `constants`: Constantes utilizadas ao longo do projeto, como cores, strings, etc.
|
|
|
- `controllers`: Lógica para manipular a interação entre a UI e o modelo de dados.
|
|
|
|
|
|
- **Arquivos de Configuração e Scripts**
|
|
|
- `Texto`: Texto
|
|
|
|
|
|
- **Backend:**
|
|
|
- **Estrutura Principal**
|
|
|
- `Texto`: Texto.
|
|
|
|
|
|
- **Dentro do diretório APP:**
|
|
|
- `controllers`: Texto.
|
|
|
- `models`: Texto.
|
|
|
- `routes`: Texto.
|
|
|
|
|
|
- **Outros Diretórios e Arquivos**
|
|
|
- `docker-compose.yml`: Define e configura serviços relacionados, volumes e redes utilizando o Docker Compose.
|
|
|
- `Dockerfile`: Script para criar uma imagem Docker do projeto. |
|
|
\ No newline at end of file |