Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • D descartafacil-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
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Descarta Fácil
  • descartafacil-wiki
  • Wiki
  • arquitetura

Last edited by Marcelo Neves Jun 25, 2021
Page history

arquitetura

Home Sprints Requisitos Arquitetura Configuração Mockups Gitflow Banco de Dados Instalação Gerência de Projeto Horários Disponiveis

Página da Arquitetura do Sistema

A arquitetura de pacotes pensada para o projeto Descarta fácil foi divida em três:

Database:

Para o banco de dados, é usado o Firebase Realtime Database, que é um banco de dados hospedado na nuvem. Os dados são armazenados como JSON e sincronizados com todos os usuários conectados em tempo real. Sendo assim, todos os usuários conectados a aplicação compartilham uma instância do Realtime Database e recebem automaticamente atualizações com os dados mais recentes.

Back-end:

Para a criação do back-end foi escolhido a tecnologia Firebase. O Firebase é um Baas (Backend as a Service) para aplicações Web e Mobile da Google. Esta tecnologia fornece aos desenvolvedores um conjunto de ferramentas e serviços para auxiliar a desenvolver aplicativos. Sua base é construída na infraestrutura do Google, sendo categorizado como um programa de banco de dados NoSQL, que armazena dados em documentos do tipo JSON.

Mobile:

Sistema projetado para ser utilizado via dispositivo Mobile IOS/Android, através de download que pode ser feito na App Store/Google Play. Feito utilizando o React Native, uma biblioteca que mescla Javascript, HTML e CSS, possibilitando a criação de aplicações de forma nativa em ambas plataformas(IOS/Android), aderindo a técnica de componentização.

Web:

Na versão Web, é disponibilizado para os administradores/stakeholders um painel de administrador, onde é possível visualizar, editar e cadastrar informações para serem utilizados na versão Mobile. Feito utilizando o React JS (utiliza mesmas tecnologias e conceitos do React Native) juntamente com o Web Framework React-Admin, que provêm funcionalidades prontas que facilitam a criação de um painel de administrador.

Diagrama de pacotes:

Diagrama de pacotes

Diagrama de Componentes Mobile:

Diagrama de componentes

Diagrama de Componentes Web/Painel Administrativo:

Diagrama de componentes Web

Rotas Implementadas:

getRankByField(field, limit = 10) - Método que recebe um tipo de campo(Nome, visitas, categoria...) de um produto e retorna uma coleção de limite x com esses produtos ordenados em ordem decrescente.

incrementVisits(id) - Método que recebe o ID de um produto já cadastrado e incrementa 1 ao seu contador de visitas. Esse contador é utilizado para rankear os produtos que foram mais visitados no aplicativo.

getRankByVisits() - Retorna a coleção dos produtos mais visitados.

getRankByLastSearchs() - Retorna a coleção dos produtos mais procurados.

getProductById(id) - Retorna um produto cadastrado a partir do seu ID.

getSuggestions(reciclability) - Retorna uma coleção de produtos semelhantes/sugeridos a partir do seu nível de reciclabilidade.

getReciclabilty(reciclability) - Retorna uma coleção de cores, que são vinculadas a cada nível de reciclabilidade. Ex: "green":["green"], "blue": return ["green"]; "red": return ["green", "blue", "orange"]; "orange": return ["green", "blue"];

getByBarcode(value) - Retorna um produto já cadastrado a partir do seu código de barras.

searchProducts(searchText) - Método utilizado para busca de um produto através de texto.

Além dessas rotas, utilizadas pela versão Mobile, também existem rotas de CRUD(Create, Read, Update e Delete) que são implementadas automaticamente pelo firebase e funcionam integradas com o React-Admin.

Clone repository
  • Gerênciamento do Projeto
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • configuracao
  • gitflow
  • Home
  • horarios
  • instalacao
  • mockups
  • requisitos
  • sprints