Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W 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
  • Clarity
  • Wiki
  • Wiki
  • Arquitetura

Arquitetura · Changes

Page history
Update Arquitetura authored Sep 17, 2024 by Mariela Pontes Cordeiro's avatar Mariela Pontes Cordeiro
Show whitespace changes
Inline Side-by-side
Arquitetura.md 0 → 100644
View page @ 32eb0249
### 1. **Desenvolvimento e Integração Contínua (CI/CD)**:
- **GitLab Source Repository**: O código-fonte do projeto é gerenciado no GitLab, onde os desenvolvedores fazem versionamento e colaboram no desenvolvimento.
- **GitLab Runner com Docker**: Na AWS, uma instância EC2 hospeda um GitLab Runner dentro de um container Docker. Esse Runner é responsável por executar pipelines de CI/CD, que automatizam os processos de build, testes e deploy do aplicativo. Isso garante que novas funcionalidades ou correções de bugs sejam entregues de forma ágil e contínua.
### 2. **Autenticação**:
- **Firebase Authentication**: O Firebase é utilizado para autenticar os usuários tanto no aplicativo mobile quanto na versão web. Isso garante que apenas usuários autorizados possam acessar a aplicação e seus dados. A escolha do Firebase simplifica o processo de autenticação, eliminando a necessidade de construir uma solução personalizada de gerenciamento de usuários.
### 3. **Backend (Node.js)**:
- **Node.js em Docker**: O backend da aplicação é executado em um container Docker com Node.js, o que traz flexibilidade e portabilidade para o ambiente. O Node.js é responsável por processar as requisições enviadas pelos clientes (mobile e web), realizar a lógica de negócios e se comunicar com os serviços externos, como o Amazon S3. Esse backend atua como um ponto central para gerenciar as interações entre o frontend e os serviços externos.
### 4. **Frontend**:
- **Flutter Mobile**: O aplicativo é desenvolvido com Flutter para rodar nativamente em dispositivos Android e iOS, aproveitando uma única base de código para ambas as plataformas. O Flutter facilita o desenvolvimento multiplataforma, o que reduz o tempo de desenvolvimento e a complexidade de manutenção.
- **Flutter Web**: O frontend web também é desenvolvido com Flutter e pode ser acessado através de navegadores como Chrome, Firefox, Edge e Safari. A aplicação web interage com o backend Node.js, enviando e recebendo requisições para a mesma lógica de negócios que o aplicativo mobile.
### 5. **Armazenamento de Dados**:
- **Amazon S3 (Simple Storage Service)**: O S3 é utilizado para armazenar arquivos e dados estáticos, como imagens e documentos. Ele fornece escalabilidade automática, alta durabilidade e segurança para os dados armazenados, e é acessado diretamente pelo backend Node.js para armazenar ou recuperar dados conforme necessário.
### 6. **Fluxo de Comunicação**:
- **Flutter (Mobile/Web) -> Node.js**: O fluxo de dados começa com o aplicativo Flutter (mobile ou web) enviando requisições HTTP ao backend Node.js rodando no Docker. Essas requisições podem incluir operações como autenticação, envio de dados ou solicitações de arquivos.
- **Node.js -> Firebase & Amazon S3**: O backend Node.js lida com as requisições, utilizando o Firebase para autenticação e o Amazon S3 para armazenamento de arquivos. Uma vez processadas, as respostas são enviadas de volta ao frontend Flutter.
- **Firebase para Autenticação Direta**: O Flutter também interage diretamente com o Firebase para autenticação, validando os tokens antes de enviar requisições mais complexas ao backend.
### Resumo Final:
Essa arquitetura combina flexibilidade, escalabilidade e simplicidade. O **GitLab Runner** com Docker oferece automação de CI/CD eficiente na AWS, enquanto o **Node.js** continua como a camada de backend para processar lógica de negócios e comunicação entre o frontend e serviços externos. O **Flutter** proporciona uma solução multiplataforma para o desenvolvimento do frontend, reduzindo custos e tempo de desenvolvimento. O **Firebase Authentication** simplifica o controle de acesso dos usuários e o **Amazon S3** cuida do armazenamento de dados e arquivos.
Essa abordagem modular facilita a escalabilidade e manutenção da aplicação, ao mesmo tempo que promove uma infraestrutura robusta e ágil.
![Tecnologias e arquitetura projeto Clarity](uploads/49b206249bd398fd240b51cd64d8b7b4/Cloud_Architecture__1_.png)
\ No newline at end of file
Clone repository
  • Arquitetura
  • Banco de Dados
  • Design Mockups
  • Home