Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 32
    • Issues 32
    • 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
  • O Turismo Rural em São Francisco de Paula
  • WikiWiki
  • Wiki
  • arquitetura

Last edited by Daniela Suttoff Apr 08, 2024
Page history

arquitetura

🏠Home

Documentação de Negócio

Escopo Processo Gerência Design

Documentação Técnica

Arquitetura Banco de Dados Analytics

Arquitetura do Sistema

Descrição

A arquitetura do nosso sistema consiste em uma API para comunicação entre o front-end desenvolvido com Flutter e o back-end desenvolvido com Java. Para o gerenciamento do banco de dados iremos utilizar MySQL, sendo executado em um container no Docker, uma instância EC2 da AWS usada para para hospedar e executar os diferentes componentes do sistema e S3 para armazenamento de imagens.

Sumário

  • Tecnologias
    • Front-end
    • Back-end
    • Banco de dados
  • Outras tecnologias
  • Diagramas
    • Diagrama de Deploy
  • AWS
    • AWS
    • EC2
    • S3

Tecnologias

Front-end

Google-flutter-logo

O Flutter que é um framework de código aberto do Google para desenvolvimento multiplataforma de aplicativos nativos. Com Dart como linguagem principal, oferece desempenho de alta performance e Hot Reload para iteração rápida. Sua vasta biblioteca de widgets personalizáveis, comunidade ativa e suporte nativo a APIs proporcionam uma experiência de desenvolvimento eficiente e uma interface de usuário fluida em iOS, Android, web e desktop.

Docker-Logo m

Back-end

Java-Logo_resized j2out

Java é uma linguagem de programação de alto nível, orientada a objetos, desenvolvida pela Sun Microsystems (agora Oracle). Com uma sintaxe simples e robusta, amplamente utilizado em uma variedade de aplicações, desde desenvolvimento web até sistemas embarcados. Sua portabilidade é uma de suas características mais marcantes, permitindo que os programas escritos em Java sejam executados em diferentes plataformas sem a necessidade de recompilação. Além disso, a JVM (Java Virtual Machine) oferece segurança, gerenciamento de memória e tratamento de exceções.

Docker-Logo s 1_8NlEgepIbuSTa_C5YyKa5w

Banco de dados

MySQL-Logo_resized

MySQL é um sistema de gerenciamento de banco de dados relacional, conhecido por sua confiabilidade e desempenho. Desenvolvido pela Oracle Corporation, é de código aberto e oferece recursos robustos de consulta e manipulação de dados usando SQL. Suporta transações ACID e oferece recursos avançados, como replicação e particionamento, para escalabilidade. É frequentemente usado em aplicações web e empresariais, devido à sua facilidade de integração e alta disponibilidade.

Outras tecnologias

logo-full-black_resized__1_

No nosso projeto escolhemos utilizar o Vercel para ter um preview do projeto antes de realizar os merges request. A Vercel oferece uma funcionalidade de pré-visualização que permite aos desenvolvedores criar URLs temporárias para visualizar as alterações feitas em pull requests antes de mesclá-las no código principal. Essas pré-visualizações facilitam a revisão de alterações por parte de colegas de equipe ou clientes, garantindo que as mudanças sejam revisadas e aprovadas antes de serem implantadas na produção.

Diagramas

Diagrama de Deploy

Utilizamos a plataforma de computação em nuvem da Amazon, EC2, para alocar os runners do GitLab e manter a execução da pipeline do projeto. Além disso e armazenamos as imagens no Amazon S3. Abaixo, encontra-se o diagrama da infraestrutura utilizada.

dp

AWS

com038-scaled_resized

A AWS (Amazon Web Services) é uma plataforma de serviços em nuvem oferecida pela Amazon. Ela fornece uma ampla gama de serviços de computação em nuvem, armazenamento, banco de dados, análise, inteligência artificial, Internet das Coisas (IoT), segurança e muito mais. A AWS é uma das principais provedoras de serviços em nuvem do mundo.

EC2

EC2 (Elastic Compute Cloud) é um dos serviços mais populares da AWS. Ele oferece capacidade de computação escalável na nuvem, permitindo que os usuários executem aplicativos em servidores virtuais (também conhecidos como instâncias) conforme necessário. Os usuários podem escolher entre uma variedade de tipos de instâncias, com diferentes configurações de CPU, memória, armazenamento e outros recursos, para atender às necessidades específicas de seus aplicativos.

S3

Como iremos salvar as imagens dos pontos turísticos, optamos por usar uma S3 (Simple Storage Service), um serviço de armazenamento em nuvem altamente escalável e durável da ASW. Ele permite que os usuários armazenem e recuperem quantidades massivas de dados de forma segura pela Internet. O S3 é frequentemente usado para armazenamento de backups, hospedagem de arquivos estáticos para sites, distribuição de conteúdo, armazenamento de dados para aplicativos da web e muito mais.

Clone repository

Home

Documentação do Projeto

Escopo

Processo

Gerência

Design

Sprints

Documentação Técnica

Arquitetura

Banco de Dados

Analytics