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 Componentes Mobile:
Diagrama de Componentes Web/Painel Administrativo:
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.