Baixe o app para aproveitar ainda mais
Prévia do material em texto
5 UNIVERSIDADE ESTÁCIO DE SÁ DIEGO CEZAR CRUZ ALVES SISTEMA PARA DOAÇÃO E COLETA DE MATERIAL RECICLÁVEL – RECICLAFEIRA FEIRA DE SANTANA 2020 DIEGO CEZAR CRUZ ALVES SISTEMA PARA DOAÇÃO E COLETA DE MATERIAL RECICLÁVEL – RECICLAFEIRA Trabalho de Conclusão de Curso apresentado à Universidade Estácio de Sá sob orientação do Professor Rogério Leitão Nogueira como requisito parcial para obtenção do grau de Bacharel em Sistemas de Informação FEIRA DE SANTANA 2020 RESUMO Este trabalho apresenta uma solução para o problema de reciclagem de resíduo doméstico no município de Feira de Santana, onde não existe coleta seletiva provida pela prefeitura e culturalmente os cidadãos não tem costume de levar estes resíduos para os locais em que estes possam ser reaproveitados. A proposta é o desenvolvimento de um sistema em que através deste o usuário possa se cadastrar como doador ou coletor de material reciclável, criando uma ponte entre as pessoas que querem fornecer o material reciclável e entre aqueles que querem coletar para reciclagem. Palavras-chaves: reciclagem, meio ambiente, coleta seletiva, Feira de Santana. ABSTRACT This work presents a solution to the problem of recycling domestic waste in the municipality of Feira de Santana, where there is no selective collection provided by the prefecture and culturally citizens are not used to taking this waste to places where it can be reused. The proposal is the development of a system in which the user can register as a donor or collector of recyclable material, creating a bridge between people who want to provide recyclable material and between those who want to collect for recycling. Keywords: recycling, environment, selective collection, Feira de Santana. Lista de Ilustrações Figura 1. Gráfico de Gantt 7 Figura 2. Diagrama de Caso de Uso 9 Figura 3. Diagrama de Classes 12 Figura 4. Diagrama de Dados 13 Figura 5. Diagrama de Sequência 14 Figura 6. Diagrama de Estado de Navegação 14 Figura 7. Diagrama de Atividades 16 Figura 8. Diagrama de Componentes 17 Figura 9. Modelo de Classes do Projeto 17 Figura 10. Diagrama dos Documentos 18 Lista de Tabelas Tabela 1. Tabela de Alocação de Recursos 6 Tabela 2. Scripts de Geração das Coleções 18 Sumário 1. O problema 5 1.1. Tema do Trabalho 5 1.2. Contextualização 5 1.3. Situação-problema 5 1.4. Breve descrição da solução 5 2. Contextualização 5 2.1. Premissas e restrições do projeto 5 2.2. Proposta de trabalho 5 3. A Solução 7 3.1. Sistema Proposto 7 3.2 Solução Escolhida 8 Nesta seção são detalhados os requisitos e diagramas da solução. 8 3.3 Solução Tecnológica 13 4. Conclusões 22 4.1. Reflexões e comparação entre objetivos iniciais x alcançados 22 4.2. Vantagens e desvantagens do sistema 22 4.3. Trabalhos futuros 22 5. Referências Bibliográficas 23 3 4 1. O problema 1.1. Tema do Trabalho Sistema para Doação e Coleta de Material Reciclável (ReciclaFeira) 1.2. Contextualização No município de Feira de Santana, a prefeitura não provê a coleta seletiva do lixo, cabendo a cada cidadão separar e entregar para cooperativas ou empresas que fazem o processo de reciclagem. 1.3. Situação-problema Devido a falta de tempo e as vezes de conhecimento, a população acaba jogando fora no lixo comum diversos materiais recicláveis que poderiam ser coletados e reciclados. 1.4. Breve descrição da solução A solução é proposta é a criação de uma aplicação específica para divulgação de quantidade e tipo de materiais recicláveis que cada pessoa tem em casa, sendo esta a doadora, e que ficará disponível para que outros usuários, cadastrados como coletores, possam passar nas casas e condomínios realizando a coleta destes materiais. 2. Contextualização 2.1. Premissas e restrições do projeto As vezes conseguimos juntar alguma quantidade de resíduo reciclável em casa, mas não dispomos de tempo ou não priorizamos levar estes resíduos para uma cooperativa ou empresa que possam reciclá-los, desta forma o App ajudaria na forma do usuário divulgar que tem uma determinada quantidade de materiais recicláveis em casa, possibilitando a algum interessado próximo ir coletar gratuitamente. O usuário deverá indicar qual o tipo de reciclável ele está armazenando, assim como a quantidade, mesmo que estimada. 2.2. Proposta de trabalho 2.2.1. Método do trabalho O trabalho será realizado por apenas um analista, com carga horária de trabalho em média de 2 (duas) horas por dia, com ajuda de ferramentas modernas de desenvolvimento web, como o NodeJS, Heroku para deploy do sistema e mLab para o armazenamento das informações em banco de dados não relacional. 2.2.2. Previsão e alocação de recursos (humanos e materiais) Recursos Humanos Seq Nome do Recurso Unidade Qtde Valor Unit Valor Total 1 Analista HH 60 R$40 R$2.400 Recursos Computacionais Seq Nome do Recurso Unidade Qtde Valor Unit Valor Total 1 Macbook Pro 13” UN 1 R$2500 R$2500 2 Heroku UN 1 Gratuito Gratuito 3 mLab UN 1 Gratuito Gratuito Tabela 1. Tabela de Alocação de Recursos 2.2.3. Cronograma de trabalho (diagrama de Gantt) Figura 1. Gráfico de Gantt 2.3.4. Previsão orçamentária Para realização do projeto foi estimado um custo de R$2400 referente às horas trabalhadas do analista. 3. A Solução 3.1. Sistema Proposto O sistema funcionará pela web, funcionando em qualquer dispositivo com acesso a um navegador atualizado. Funcionará de forma semelhante ao OLX, o usuário “doador” vai gerar uma oferta de itens recicláveis. Os interessados entrarão no sistema à procura das ofertas em aberto e que sejam mais próximas da sua localização ou roteiro, e irão contactar o dono da oferta para agendar a retirada do material. Uma vez entregue o conjunto de materiais recicláveis, o dono da oferta deve sinalizar no sistema que os itens já foram doados, excluindo assim a oferta. 3.1.1. Objetivos do Sistema Objetivo Geral: facilitar o descarte de materiais recicláveis da forma apropriada através do estabelecimento de comunicação entre pessoas interessadas em descartar e pessoas interessadas em coletar estes materiais. Objetivos Específicos: · Permitir o cadastro de usuários doadores e usuários coletores; · Permitir cadastrar diversos tipos de materiais recicláveis, assim como o peso e dimensões de cada um; · Permitir o usuário doador ofertar materiais recicláveis para coleta; · Permitir que o usuário coletor busque e selecione as ofertas de materiais recicláveis que mais lhe atende. 3.2 Solução Escolhida Nesta seção são detalhados os requisitos e diagramas da solução. 3.2.1. Escopo da Solução O sistema visa a redução de descarte de materiais recicláveis para o lixo comum, cujo destino normalmente são os aterros sanitários. Ao fazer uma ponte entre doadores e coletores, será retirada uma barreira que é a dificuldade de algumas pessoas de levarem esses materiais recicláveis para locais de coleta seletiva, fazendo com que o próprio coletor realize essa busca na casa do doador. 3.2.2. Lista de Requisitos do Sistema 3.2.2.1. Requisitos Funcionais: Código Descrição Prioridade RF1 Realizar Inscrição Alta RF2 Criar oferta Alta RF3 Associar material reciclável à oferta Alta RF4 Editar oferta Média RF5 Realizar busca de ofertas em andamento Média RF6 Realizar exclusão de oferta Média 3.2.2.2. Requisitos Não-Funcionais: Código Descrição RNF1 Design Responsivo RNF2 Sistema Web RNF3 Linguagem HTML+CSS+JS RNF4 Banco de Dados Não Relacional MongoDB 3.2.3. Diagrama de Casos de Uso Figura 2. Diagrama de Caso de Uso 3.2.4. Especificações textuais dos casos de uso a) Nome do caso de uso: Realizar inscrição; Escopo: Tela de cadastro; Atores: Usuário; Pré-condições: Navegador atualizado; Pós-condição: Usuário inscrito no sistema; Cenário principal: · Cliente acessa o sistema ReciclaFeira; · Cliente se cadastra no sistema: · E-mail; · Senha; · Telefone; · Bairro; · Sistema exibe a mensagem “Inscrição realizada com sucesso” Cenários alternativos: não há; Requisitos especiais: · Resposta de “Inscriçãorealizada com sucesso” no máximo em 1s. b) Nome do caso de uso: Criar Oferta; Escopo: Após inscrição no sistema; Atores: Usuário; Pré-condições: · Inscrição realizada com sucesso; Pós-condição: Oferta lançada no sistema; Cenário principal: · Usuário cria oferta; Cenários alternativos: · Não há; Requisitos especiais: · Resposta do sistema em até 1s. c) Nome do caso de uso: Associar material reciclável; Escopo: Menu da Oferta; Atores: Usuário; Pré-condições: · Oferta criada; Pós-condição: Material ou Materiais associados na oferta; Cenário principal: · Usuário associa o material inserindo: · Descrição; · Tipo: [Papel, Plástico, Vidro, Metal] · Peso; · Altura; · Largura; · Profundidade; · Quantidade. Cenários alternativos: não há; Requisitos especiais: · Resposta do sistema em até 1s. d) Nome do caso de uso: Editar Oferta Escopo: Menu de Oferta – Editar Oferta; Atores: Usuário; Pré-condições: · Inscrição realizada com sucesso; · Oferta criada. Pós-condição: Oferta atualizada; Cenário principal: Usuário atualiza, acrescenta ou remove itens de acordo com sua necessidade; Cenários alternativos: não há; Requisitos especiais: · Resposta do sistema em até 1s. e) Nome do caso de uso: Buscar Ofertas Escopo: Menu principal; Atores: Usuário; Pré-condições: · Inscrição realizada com sucesso. Pós-condição: Não há; Cenário principal: Coletor procura ofertas em andamento para saber se existe alguma de seu interesse; Cenários alternativos: não há; Requisitos especiais: · Resposta do sistema em até 2s. f) Nome do caso de uso: Excluir Oferta; Escopo: Após lançamento da Oferta; Atores: Usuário; Pré-condições: · Inscrição realizada com sucesso; · Oferta lançada. Pós-condição: Oferta excluída do sistema; Cenário principal: · Doador excluir oferta por algum motivo, seja desistência ou após a realização da coleta; Cenários alternativos: · Não há; Requisitos especiais: · Resposta do sistema em até 1s. 3.2.5. Modelo Conceitual de Classes Figura 3. Diagrama de Classes 3.2.6. Modelo Conceitual de Dados Figura 4. Diagrama de Dados 3.3 Solução Tecnológica 3.3.1. Diagrama de Sequência Figura 5. Diagrama de Sequência 3.3.2. Projeto de Interfaces 3.3.2.1. Diagrama de Estado de Navegação Figura 6. Diagrama de Estado de Navegação 3.3.2.1. Projeto Gráfico das Telas 3.3.3. Diagrama de Estados 3.3.4. Diagrama de Atividades Figura 7. Diagrama de Atividades 3.3.5. Diagrama de Componentes Figura 8. Diagrama de Componentes 3.3.6. Modelo de Classes do Projeto Figura 9. Modelo de Classes do Projeto 3.3.7. Modelo Físico de Dados 3.3.7.1. Projeto de Tabelas e Arquivos Figura 10. Diagrama dos Documentos Neste projeto não há necessidade de projeto de arquivos pois todos os dados são armazenados na nuvem. 3.3.7.2. Scripts de geração do banco e suas tabelas O banco de dados não relacional foi criado na plataforma da mLab (www.mlab.com). Tabela 2. Scripts de Geração das Coleções Schema Script User var mongoose = require("mongoose"); var passportLocalMongoose = require("passport-local-mongoose"); var UserSchema = new mongoose.Schema({ username: String, password: String, telefone: String, bairro: String }); UserSchema.plugin(passportLocalMongoose); module.exports = mongoose.model("User", UserSchema); Material var mongoose = require("mongoose"); var materialSchema = new mongoose.Schema({ descricao: String, tipo: String, peso: Number, altura: Number, largura: Number, profundidade: Number, quantidade: Number author: { id:{ type: mongoose.Schema.Types.ObjectId, ref: "User" }, username:String } }); module.exports = mongoose.model("Material", materialSchema); Oferta var mongoose = require("mongoose"); var ofertaSchema = new mongoose.Schema({ status: String, materiais: [ { type: mongoose.Schema.Types.ObjectId, ref: "Material" } ], author: { id:{ type: mongoose.Schema.Types.ObjectId, ref: "User" }, username:String } }); module.exports = mongoose.model("Oferta", ofertaSchema); 3.3.8. Ambiente tecnológico do sistema 3.3.8.1. Ambiente Físico (diagrama de implantação) O sistema está implantado na plataforma Heroku, que é uma plataforma gratuita em nuvem para deploy de aplicações back-end tanto para hospedagem quanto para testes. Para o armazenamento dos dados na web foi utilizada a plataforma da mLab para bancos não relacionais MongoDB, através de uma conta gratuita na qual é permitido o armazenamento de até 500MB de dados. Como do lado cliente o sistema é multiplataforma, basta apenas que o cliente tenha um dispositivo com acesso à internet com um navegador atual. 3.3.8.2. Justificativa da escolha da linguagem de programação Escolhi JavaScript com HTML e CSS por ser uma linguagem bastante utilizada no mercado e por eu ter familiaridade prévia. Esta decisão possibilita que minha aplicação seja utilizada em qualquer dispositivo com acesso a internet e um navegador moderno, sem necessidade de instalação de nenhum recurso adicional, criando uma experiência dinâmica e interativa para o usuário. Além disso pude utilizar esta linguagem tanto do lado cliente (front-end) quanto do lado do servidor (back-end) com a ajuda do NodeJS, facilitando a implementação de diversos recursos e reduzindo o tempo de criação do projeto. Uma das suas maiores vantagens é a interação assíncrona com o servidor, não interrompendo assim a interação do usuário enquanto utiliza a aplicação web. 3.3.8.3. Justificativa da escolha do SGBD (Sistema Gerenciador de Banco de Dados) A escolha do banco de dados não relacional MongoDB foi pela velocidade para construção da aplicação e do banco de dados, podendo lidar com uma imensa variedade de tipos de dados e removendo a camada de ORM (object-relational mapping). Como o projeto trata-se de uma aplicação Web, o fato do MongoDB trabalhar com documentos em formatos JSON torna a forma de armazenamento das informações mais natural, permitindo adicionar ou deixar campos de lado sem problemas. E o próprio desenvolvedor pode ajustar e reformatar o banco de dados enquanto a aplicação evolui, sem a necessidade de um DBA (data-base administrator). 4. Conclusões 4.1. Reflexões e comparação entre objetivos iniciais x alcançados Os objetivos iniciais deste projeto foram alcançados, possibilitando que pessoas que possuem materiais recicláveis em casa ou em empresas possam interagir com outras pessoas que querem coletar esses materiais para que possam reaproveitar ou revender para empresas que fazem a reciclagem destes. Tudo isto foi possível visto que foram utilizados recursos que possibilitaram que a aplicação fosse desenvolvida sem a necessidade de uma equipe grande, utilizando-se de ferramentas consolidadas no mercado, como NodeJs, banco não relacional MongoDB e os gerenciadores de pacote Node. 4.2. Vantagens e desvantagens do sistema As vantagens do sistema são a facilidade que qualquer pessoa com um dispositivo com acesso a internet e com um navegador atual, poderá utilizar a aplicação, sem necessidade de instalação ou de um hardware específico e a possibilidade de conectar pessoas em prol de uma redução no quantitativo de lixo descartado no aterro sanitários do município. A desvantagem no sistema atual é que ele utiliza uma plataforma gratuita para a publicação com apenas 512MB de RAM e o banco de dados também gratuito da mLab com apenas 500MB de armazenamento. 4.3. Trabalhos futuros A intenção é que no futuro o programa seja utilizado em outras cidades, contribuindo assim para uma maior redução no desperdício de resíduos com abrangência nacional. Poderá ser incluída uma funcionalidade para que as empresas que compram este tipo de material possam fazer isto diretamente pelo aplicativo, tendo em uma sua rede um grupo de coletores que serão remunerados através da quantidade em peso de cada tipo de material entregue para a reciclagem. À medida em que o sistema tiver mais usuários inscritos e mais dados sejam armazenados, será necessário migrarpara uma solução paga, com mais capacidade de armazenamento e de processamento. 5. Referências Bibliográficas DEBONI, José Eduardo Zindel. Modelagem Orientada a Objetos com a UML. 1 ed., Editora Futura. 2003. JACOBSON, I., BOOCH, G., RUMBAUGH, J. UML – Guia do Usuário, 1 ed., Editora Campus, 2006; PRESSMAN, R. Engenharia de Software, 6 ed., 2006. Início 1. O problema 1.1. Tema do trabalho 1.2. Contextualização 1.3. A situação-problema 1.4. Breve descrição da solução 2. Contextualização 2.1. Premissas e restrições do projeto 2.2. Proposta de trabalho 3. A solução 3.1. O sistema proposto 3.1.1. Justificativas para o novo sistema 3.1.2. Situação desejada: objetivos gerais e específicos 3.1.3. Soluções alternativas 3.2. Solução escolhida 3.2.1. Escopo da solução 3.2.2. Lista de requisitos do sistema 3.2.3. Diagrama de casos de uso 3.2.4. Especificações textuais dos casos de uso 3.2.5. Modelo conceitual de classes 3.2.6. Modelo conceitual de dados 3.3. Solução tecnológica 3.3.1. Projeto de interfaces 3.3.2. Diagrama de sequência (ou comunicação) 3.3.3. Diagrama de estados 3.3.4. Modelo de classes de projeto 3.3.5. Diagrama de atividades 3.3.6. Diagrama de componentes 3.3.7. Modelo físico de dados 3.3.7.1. Projeto de tabelas e arquivos 3.3.7.2. Scripts de geração do banco e suas tabelas 3.3.8. Ambiente tecnológico do sistema 3.3.8.1. Ambiente físico (diagrama de implantação) 3.3.8.2. Justificativa da escolha da linguagem de programação 3.3.8.3. Justificativa da escolha do SGBD (Sistema Gerenciador de Banco de Dados) 4. Conclusões 4.1. Reflexões e comparação entre objetivos iniciais × alcançados 4.2. Vantagens e desvantagens do sistema 4.3. Trabalhos futuros 5. Referências bibliográficas 43906.0 43906.0 43907.0 43908.0 43910.0 43913.0 43913.0 43915.0 43918.0 43918.0 43918.0 43919.0 43919.0 43920.0 43920.0 43921.0 43923.0 43923.0 43925.0 43928.0 43931.0 43937.0 43937.0 43938.0 43938.0 43939.0 43939.0 43939.0 43939.0 43939.0 43939.0 43939.0 43939.0 43939.0 43940.0 43940.0 43940.0 43940.0 43940.0 Duração 1. O problema 1.1. Tema do trabalho 1.2. Contextualização 1.3. A situaçã o-problema 1.4. Breve descrição da solução 2. Contextualização 2.1. Premissas e restrições do projeto 2.2. Proposta de trabalho 3. A solução 3.1. O sistema proposto 3.1.1. Justificativas para o novo sistema 3.1.2. Situação desejada: objetivos gerais e específicos 3.1.3. Soluções alternativas 3.2. Solução escolhida 3.2.1. Escopo da solução 3.2.2. Lista de requisitos do sistema 3.2.3. Diagrama de casos de uso 3.2.4. Especificações textuais dos casos de uso 3.2.5. Modelo conceitual de classes 3.2.6. Modelo conceitual de dados 3.3. Solução tecnológica 3.3.1. Projeto de interfaces 3.3.2. Diagrama de sequência (ou comunicação) 3.3.3. Diagrama de estados 3.3.4. Modelo de classes de projeto 3.3.5. Diagrama de atividades 3.3.6. Diagrama de componentes 3.3.7. Modelo físico de dados 3.3.7.1. Projeto de tabelas e arquivos 3.3.7.2. Scripts de geração do banco e suas tabelas 3.3.8. Ambiente tecnológico do sistema 3.3.8.1. Ambiente físico (diagrama de implantação) 3.3.8.2. Justificativa da escolha da linguagem de programação 3.3.8.3. Justificativa da escolh a do SGBD (Sistema Gerenciador de Banco de Dados) 4. Conclusões 4.1. Reflexões e comparação entre objetivos iniciais × alcançados 4.2. Vantagens e desvantagens do sistema 4.3. Trabalhos futuros 5. Referências bibliográficas 6.0 1.0 1.0 2.0 2.0 5.0 2.0 3.0 22.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 3.0 3.0 5.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 Atividades
Compartilhar