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

Last edited by Mariela Pontes Cordeiro Sep 17, 2024
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Arquitetura

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

Clone repository
  • Arquitetura
  • Banco de Dados
  • Design Mockups
  • Home