Buscar

TCC_V4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando