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