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

Arquitetura

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.

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.

Backend

Backend no Flutter: O backend da aplicação é gerenciado diretamente pelo Flutter, com chamadas diretas aos serviços do Firebase. A integração com o Firebase permite que o Flutter manipule autenticação, consultas de dados e operações diretamente sem a necessidade de um backend separado. Isso simplifica a arquitetura e reduz a complexidade, mantendo a comunicação eficiente entre o frontend e os serviços do Firebase.

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, reduzindo 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 diretamente com o Firebase para realizar operações semelhantes às do aplicativo mobile.

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 Flutter para armazenar ou recuperar dados conforme necessário.

Fluxo de Comunicação

Flutter (Mobile/Web) -> Firebase: O fluxo de dados começa com o aplicativo Flutter (mobile ou web) enviando requisições diretas ao Firebase. Essas requisições podem incluir operações como autenticação, envio de dados ou solicitações de arquivos.

Firebase para Autenticação e Armazenamento: O Firebase lida com as requisições, incluindo autenticação e armazenamento de arquivos no Amazon S3. Uma vez processadas, as respostas são enviadas de volta ao frontend Flutter.

Tecnologias e arquitetura projeto Clarity

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