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
This is an old version of this page. You can view the most recent version or browse the 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

Esta é a página onde irá ficar todas as informações da Arquitetura do seu projeto, Como:

  • Segurança
  • Rotas de Backend (Arquitetura funcional)
  • Objects – Backend API
  • Methods – Backend API
  • Arquitetura Não Funcional)
  • Diagrama de Pacotes / Componentes (Arquitetura de software)
  • Diagrama de Deploy
  • Documentação sobre aplicação de Design do Projeto
  • Análise dos principios SOLID
  • Code Review

Devem ser apresentados das seguintes formas:

  • Imagens ou Gifs
  • Diagramas ou Sistemas
  • Descrições ou Textos explicativos

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

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 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