Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.
/ construfacil Public archive

Este projeto tem por objetivo desenvolver um aplicativo que permita a engenheiros, arquitetos, pessoas físicas e demais gerentes de obras de construção civil obter orçamentos de materiais necessários à obra, realizar comparação de preços, de prazos de entrega e de demais serviços oferecidos pelas empresas de materiais de construção.

Notifications You must be signed in to change notification settings

rhuanbarros/construfacil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

PROJETO - DISCIPLINA PROGRAMAÇÃO PARA WEB III

Código: https://github.com/rhuanbarros/construfacil

1. ÁREA DE ENQUADRAMENTO (ANEXO I)

As propostas devem estar enquadradas em um dos seguintes temas:

a) Educação/Ensino;

b) Saúde;

c) Mobilidade Urbana;

d) Segurança Pública;

e) Acessibilidade / Direitos Humanos;

f) Aferição da qualidade de serviços e políticas públicas;

g) Assistência Social;

h) Cultura;

i) Direitos e defesa do consumidor;

j) Melhoria da gestão no setor público;

k) Turismo e Grandes Eventos;

l) Tratamento de indicadores de políticas públicas (dados abertos);

m) Participação Social;

-> n) Trabalho e Renda;

o) Meio ambiente.

Projeto enquadrado na área Trabalho e Renda.

Esta proposta de desenvolvimento foi enquadrada no tema Trabalho e Renda em virtude de ser uma ferramenta de produtividade que auxilia arquitetos, engenheiros e gestores de obras automatizando uma tarefa realizada manualmente, qual seja, a pesquisa de preços de materiais de construção.

2. NOME DO PROJETO

Construfácil

3. BREVE SÍNTESE DA PROPOSTA

Descreva em apenas um parágrafo as principais características do aplicativo, incluindo os aspectos diferenciais e inovadores do projeto.

Este projeto tem por objetivo desenvolver um aplicativo que permita a engenheiros, arquitetos, pessoas físicas e demais gerentes de obras de construção civil obter orçamentos de materiais necessários à obra, realizar comparação de preços, de prazos de entrega e de demais serviços oferecidos pelas empresas de materiais de construção.

4. EQUIPE TÉCNICA

Participantes da proposta.

Rhuan Barros

5. JUSTIFICATIVA DA ADERÊNCIA DA PROPOSTA AO TEMA ESCOLHIDO

Esclareça a relação entre o tema selecionado e a natureza do aplicativo; o nível de exploração e aprofundamento do tema selecionado nos conteúdos, objetos e operações do aplicativo. Preferencialmente, os que relacionaram claramente a mecânica/estrutura/interação com a transmissão de informações e contextualização acerca do tema.

A tarefa de gerir uma obra de construção civil, como a de uma residência, exige extensa pesquisa de preços de materiais em diversas lojas especializadas em materiais de construção civil. Essa tarefa de pesquisa pode tomar muito tempo e dinheiro do gestor, pois, da maneira como é realizada atualmente, é necessário ir pessoalmente em diversas lojas diferentes. Esse método pode ser muito custoso.

O aplicativo se propõe a facilitar a busca de orçamentos e comparação de preços..

Desse modo, um engenheiro que é gestor de diversas obras ao mesmo tempo pode criar listas de materiais necessários com o endereço de destino e simplesmente aguardar o retorno dos fornecedores.

Com os orçamentos, o gestor vai comparar prazos de entrega, disponibilidade em estoque dos materiais, marcas dos itens apresentados.

6. METODOLOGIA DE EXECUÇÃO

Nesta seção defina a forma como o projeto será desenvolvido e monitorado, por exemplo, quais métodos, etapas, tarefas e ferramentas de acompanhamento do projeto.

Backlog

Inicialmente o Backlog foi organizado e certos requisitos foram agrupados por afinidade. Essa organização sofreu alteração conforme o andamento da implementação para melhor se adequar a realidade do desenvolvimento.

Os requisitos estão sendo implementados em pequenos sprints após as aulas da faculdade e também nos finais de semana.

Ferramenta de gestão

Estou utilizando a ferramente Moo.do para realizar o controle do Backlog e organização das prioridades de trabalho.

Esta ferramenta permite a organização hierárquica das tarefas e também permite a inserção de subtarefas de modo a agrupar os requisitos com afinidade.

Reutilização de conhecimento

Este projeto está sendo desenvolvido com base no conhecimento adquirido no semestre anterior na disciplina de Engenharia de Software III em 2016/2, na qual foi desenvolvido aplicativo Android com a utilização do Backend as a Service Google Firebase.

7. CRONOGRAMA Inclua as atividades de cada uma das etapas do projeto com o prazo de execução para cada uma, com início e fim, em termos de semanas ou datas completas. É necessário um cronograma detalhado do projeto. Você pode usar aqui um gráfico de Gantt.

Nome
Data inicial
Data final
Status

Protótipos das telas

20/03/17

25/03/17

Realizado

Login

  • Configuração da plataforma
  • Implementação do sistema de login da plataforma Google Firebase o qual permite o login por meio da conta Google.

30/03/17

09/04/17

Realizado

Pesquisar item

  • pesquisa na internet de planilha contendo lista de materiais de construção
  • construção de banco de dados SQLite com essa lista
  • implantação desse banco de dados dentro do aplicativo de modo ao apk já conter o banco de dados pronto (sem a necessidade de “insert” para cada item de material de construção)
  • implementação do Fragment contendo a lista de materiais do banco de dados SQLite
  • implementada Caixa de Texto que filtra o ListView no Fragment de acordo com o texto digitado

12/04/17

24/04/17

Realizado

Inserir/remover item

  • implementada a baixa automática da lista de itens no banco de dados NoSQL na nuvem do Google Firebase
  • implementado o evento que adiciona o item desejado para a lista de itens a ser solicitado orçamento por meio de um clique no ListView

08/06/17

09/06/17

Realizado

Melhoria na interface e design

  • implementar menu lateral

09/06/17

10/06/17

Realizado

Visualizar lista de orçamentos solicitados

17/06/17

19/06/17

Visualizar detalhes orçamentos

18/06/17

19/06/17

Enviar lista para empresas

24/06/17

25/06/17

Realizado

Ajustes finais

01/07/17

02/07/17

8. DETALHAMENTO DO APLICATIVO

Descreva todos os elementos e funções pretendidas para o aplicativo e sua interação com o usuário, ilustrando a maneira como deve ser utilizado e o seu potencial de aderência com relação à área temática escolhida. Devem ser descritos todos os seus conteúdos e os componentes de sua arquitetura. Se necessário utilize imagens, tabelas e fluxogramas.

História de uso do Proprietário/Arquiteto/Engenheiro:

O usuário precisa comprar diversos materiais para sua obra que têm custo considerável, além disso, os valores variam muito de uma loja pra outra. Desse modo, ele faz a pesquisa indo nos lugares e pegando orçamento dos materiais pessoalmente, se deslocando de carro. Ou ele pode fazer por email aguardando a resposta dos funcionários.

História de uso do Funcionário da loja de materias de construção:

O usuário precisa atender diversos clientes no balcão da loja para apresentar orçamentos dos materiais necessários, e também acompanha o recebimento de e-mail no computador e os responde. Essa resposta com orçamento é enviada por meio de um arquivo pdf anexado ao email de resposta.

9. ARQUITETURA DA INFORMAÇÃO

Apresente um diagrama que informe as situações de alteração de estados ou segmentação dos conteúdos do aplicativo, sejam eles páginas ou estados, a sua hierarquia de acessos, os seus atalhos principais, rótulos empregados para a sua navegação, telas de encerramento, pontuação ou configuração.

10. INTERFACE DE USUÁRIO

Mostre a estrutura pretendida para a organização dos elementos visuais da interface do aplicativo ou jogo, informando a maneira como serão dispostos para o usuário. Apresente a relação de dimensionamento e organização pretendida para os personagens, cenários e displays. Inclua imagens das estruturas da interface (wireframes) e exemplos de interfaces gráficas com imagens das telas do aplicativo.

Protótipo iniciais - interface idealizada



Interface atual do aplicativo

11. CHECKLIST DE FUNCIONALIDADES DO APLICATIVO Especifique cada uma das funcionalidades que serão implementadas no aplicativo.

Funcionalidade 1 - Login automático com a conta do Google

A primeira tela do aplicativo apresenta a interface de login com um botão para login rápido com a conta do Google já cadastrada no celular Android. Desse modo, o usuário acessa o aplicativo rapidamente.

Essa funcionalidade também é usada para salvar a lista de materiais atrelada a cada usuário logado.

Funcionalidade 2 - Banco de dados com lista de materiais utilizados em construções

Internamente ao aplicativo, foi desenvolvido um banco de dados SQLite que contém os nomes de materiais. O objetivo é permitir a pesquisa rápida de acordo com cada letra que o usuário digita. Além disso, os resultados são exibidos rapidamente, sem a necessidade de “loading” da internet, pois os dados estão internamente no aplicativo.

Funcionalidade 3 - Pesquisa por nomes de matérias previamente cadastrados

O aplicativo apresenta uma caixa de texto para o usuário digitar o nome do material que precisa. O filtro seleciona dinamicamente a cada caractere digitado.

Essa funcionalidade é importante pois impede o usuário de adicionar um item com descrição insuficiente ou até mesmo incorreta. Isso é algo que acontece eventualmente na gestão de obras.

Funcionalidade 4 - Adicionar itens à lista de materiais necessários

O usuário clica no item que ele deseja e este item é adicionado à lista de materiais necessários que se encontra do lado direito do aplicativo. Além disso, essa lista é salva automaticamente na nuvem.

Funcionalidade 5 - Salvar o estado da lista se o usuário fechar o aplicativo

Quando o usuário adiciona um novo item a sua lista de materiais, esse item na verdade é inserido no banco de dados NoSQL na nuvem do Google Firebase. Desse modo, é mantido o estado da lista de maneira durável, atrelado a conta do usuário logado no aplicativo.

Funcionalidade 6 - Diminuir quantidade necessária

O usuário pode diminuir a quantidade necessária de materiais para cada item. Essa funcionalidade é acessada por meio de clique no item na lista da direita.

Funcionalidade 7 - Envio da lista para as lojas

Após a escolha dos itens necessários, o usuário pode enviar a lista para as lojas cadastradas. Esse envio é realizado por meio de e-mail.

Funcionalidade 8 - Visualização das listas já enviadas

Haverá uma aba no aplicativo de modo ao usuário poder consultar as listas já enviadas, funcionando como um histórico das suas listas de materiais já enviadas.

12. ÁUDIO E MÚSICA

Descreva as características de áudio e música do aplicativo.

O aplicativo apresentará funcionalidades de áudio de modo permitir melhor usabilidade a usuários com dificuldades como pouca visão.

Por isso, será utilizado “labels” descritivos em todos os elementos da interface de modo a permitir que aplicativos leitores de tela, como o TalkBack  possam ler esses elementos corretamente.

Referencia: https://material.io/guidelines/usability/accessibility.html#accessibility-color-contrast

13. ESTILO E REFERÊNCIAS

Nesta seção, inclua imagens de referências de outros aplicativos que ilustrem a abordagem pretendida para os seus elementos gráficos de maneira que tenham coerência interna em termos de cores, tipografia, organização espacial e outros elementos gráficos.

A referência de estilo para este projeto será o Material Design do Google (https://material.io/).

O Material Design é um framework de estilo, design e usabilidade para ser utilizado em aplicativos de celular e páginas de internet. Ele disponibiliza componentes reutilizáveis de estilo próprio do Material Design de modo a manter a coerência visual entre os elementos. Além disso, apresenta uma série de boas práticas em diagramação de interfaces e também dicas para tornar o aplicativo mais acessível a pessoas com dificuldades motoras ou visuais.

14. FERRAMENTAS, PLUG-INS E DEPENDÊNCIAS USADOS NO DESENVOLVIMENTO DO APLICATIVO

Descreva todas as ferramentas, plug-ins e dependências a serem utilizadas no aplicativo.

Estudo inicial de ferramentas disponíveis

Foi realizada extensa pesquisa sobre novas tecnologias disponíveis no mercado para desenvolvimento rápido de aplicativos para celular. Essa pesquisa focou na busca de tecnologias em consonância com as Metodologias Ágeis e a metodologia Lean Startup.

Foram pesquisadas tecnologias de back-end tradicionais, como Microsoft .Net, Java, Python, PHP e Ruby on Rails. Dentro da tecnologia Java, foram analisados diversos frameworks web como Spring, Groovy, Play Framework e JHipster.

A partir dessa fase entrei em contato com novas ferramentas e plataformas de desenvolvimento de aplicativos móvel chamadas de “Mobile Backend As A Service” - mBaas.

Essa tecnologia não tem ainda muita literatura disponível, nem mesmo em inglês, por se tratar realmente de tecnologia muito nova e pouco utilizada. Entretanto, são facilmente encontrados diversos artigos sobre o assunto em fontes confiáveis de consulta.

Mobile Backend As A Service é uma plataforma na Nuvem a qual provê um modelo de desenvolvimento         baseado na disponibilização pré-pronta de funcionalidade básicas essenciais a maioria dos aplicativos móveis.

As funcionalidades pré-prontas disponíveis são, por exemplo, login integrado a redes sociais, banco de dados com acesso Restful, push notifications e relatórios de análise de acesso.

Os principais players nessa área são o Google Firebase, o Amazon AWS Mobile, o Microsoft Azure, Parse Open Source, Apache Usergrid e RedHat Mobile App Platform.

Plataforma escolhida

A plataforma de desenvolvimento escolhida foi o mBaas do Google Firebase devido a grande documentação de sua plataforma, inclusive em português, e a possibilidade de usar a plataforma gratuitamente.

Essa plataforma apresenta uma biblioteca com diversas classes prontas para realizar a conexão com todos os recursos disponíveis, como o banco de dados e a plataforma de autenticação com redes sociais.

Desse modo, para desenvolver este projeto com banco de dados e login na nuvem, foi necessário simplesmente configurar o aplicativo na plataforma e fazer requisições REST ao banco de dados. Isso permitiu manter o foco em programação Java Android para poder desenvolver todas as funcionalidades essenciais.

O banco de dados fornecidos apresenta endpoints REST de modo que com uma linha de código é possível inserir dados no banco de dados. Além disso, com pouco código foi possível implementar o banco de dados real time, de modo que qualquer alteração é propagada automaticamente para todos os dispositivos conectados.

Resumo das dependências

Google Firebase

Firebase Real Time Database

Firebase Authentication

Google Material Design

http://square.github.io/picasso/

Biblioteca que permite o download de imagens e exibição na aplicação em apenas uma linha. Se fosse realizar da maneira usual do Android, haveria necessidade de criar uma thread para download da imagem e diversas outras linhas de código. Enfim, essa biblioteca facilita muita a programação e é Open Source.

Javamail-android

https://code.google.com/archive/p/javamail-android/

A implementação da funcionalidade de enviar a solicitação de orçamento por e-mail foi implementada utilizando uma biblioteca de terceiros, em vez de a biblioteca nativa do java para envio de emails por smtp.

Foi realizada extensa pesquisa sobre envio de emails no Android, e a tarefa mais comum é geralmente a utilização de um Intent para envio de email pelo aplicativo cliente de email que o usuário já tem instalado.

Mas a funcionalidade necessária, na verdade, exige o envio de email em segundo plano, sem intervenção do usuário.

Além disso, notei que a maioria dos artigos na internet indicava a utilização desta biblioteca, pois ela havia sido portada para a plataforma do Android de modo a realizar a comunicação da melhor maneira possível.

15. IDEIAS ADICIONAIS E OBSERVAÇÕES

Inclua aqui outras observações quanto ao projeto. Quais os diferenciais pensados para o seu app que outros semelhantes não possuem.

Este aplicativo se trata de um MVP (Produto Mínimo Viável) originado de um projeto maior, com mais funcionalidade, que juntos agregarão um valor muito maior ao software. O produto com todas as funcionalidades completas incluiria funcionalidades de recebimento dos orçamentos no próprio aplicativo, comparação de preços automáticas, compra por meio de cartão de crédito ou depósito, “compra 1 click” que permitiria a compra de diversos lojas diferentes com o melhor preço em cada.

Acompanhamento de entrega dos materiais pelo aplicativo e diversas outras.

Entretanto, para iniciar o projeto, foi escolhido desenvolver funcionalidades mínimas que permitissem o início dos testes do aplicativo o mais rápido possível.

Mesmo com as funcionalidades mínimas, o aplicativo já agrega valor aos gestores de construção, uma vez que ele permite o envio da lista de materiais para diversas lojas de uma vez.

Outra funcionalidade simples, mas importante, é a descrição correta do material. Isso porque é muito comum os engenheiros ou mestres de obras enviarem lista com itens significado redundante. Ou seja, na loja, um item escrito na lista pode ser atendido por 2 materiais diferentes.

Escrevendo a lista pelo aplicativo, isso não será um problema,  pois o aplicativo contém uma lista de 30 mil itens de modo a permitir a escolha exata do item necessário.

A lista de materiais que compõe este aplicativo foi disponibilizada por engenheiro da Cype Engenieros S/A no grupo de discussão de engenharia cívil para consulta pelos usuários. Link https://groups.google.com/forum/#!msg/ClubedosEngenheirosCivis/czdyn1qLDcI/asVb6zv3YI0J.


ANEXO I

Detalhamento dos Temas

As propostas de projetos devem estar enquadradas em um dos temas a seguir descritos. Ressalte-se que as descrições aqui apresentadas são apenas de caráter exemplificativo e não restringem a proposição de projetos que não estejam necessariamente nelas inclusos.

a) Educação / Ensino: enquadram-se neste tema aplicativos que abordem processos de socialização e aprendizagem relacionados ao desenvolvimento intelectual e ético de uma pessoa, desde os níveis infantil e fundamental até os níveis superior e de pós-graduação. Ou seja, não há restrições de faixas etárias, áreas do conhecimento ou conteúdos abordados pelas propostas. Os aplicativos podem ter foco tanto no educando como no educador. Como referência pode-se dar ênfase em educação financeira, cultura maker e hacker no ambiente escolar, educação empreendedora, entre outros.

b) Saúde: enquadram-se neste tema aplicativos que abordem assuntos relacionados à prevenção de doenças, bem estar, controle da saúde, saúde coletiva, saúde da família, monitoramento de pacientes, apoio ao trabalho dos profissionais e/ou instituições de saúde, dentre outros.

c) Mobilidade Urbana: enquadram-se neste tema aplicativos que abordem assuntos relacionados a políticas de transporte e circulação que visam à melhoria da acessibilidade e mobilidade das pessoas e cargas no espaço urbano. Como referência, pode-se propor a priorização dos modais de transporte coletivo e/ou não motorizados de maneira efetiva, socialmente inclusiva e ecologicamente sustentável ou ainda trabalhar com sugestões de melhores rotas a partir de dados de acidentes e incidentes de trânsito.

d) Segurança Pública: enquadram-se aplicativos relacionados a políticas públicas de segurança e que estimulem a parceria entre órgãos do poder público e sociedade civil na luta por segurança e qualidade de vida dos cidadãos brasileiros.

e) Acessibilidade / Direitos Humanos: enquadram-se nesse tema aplicativos que facilitem a promoção e defesa dos direitos humanos de crianças e adolescentes, pessoas com deficiência, população em situação de rua, pessoas idosas, população LGBT, pessoas ameaçadas de morte, pessoas em situação de trabalho escravo e demais públicos em situação de vulnerabilidade. Como referência, podem ser utilizadas as diretrizes do e-MAG (Modelo de Acessibilidade em Governo Eletrônico).

f) Aferição da qualidade de serviços e políticas públicas: enquadram-se nesse tema aplicativos para avaliar os serviços públicos e políticas públicas por meio de pesquisa de satisfação, com identificação de pontos fracos e de oportunidades de mudança. Como referência, podem ser utilizadas ferramentas no âmbito do Programa Gespública (http://www.gespublica.gov.br/), como o Instrumento Padrão de Pesquisa e Satisfação e a Autoavaliação da gestão pública.

g) Assistência Social: enquadram-se nesse tema aplicativos que visam à garantia do acesso a recursos mínimos e provimento de condições para atender contingências sociais e promover a universalização dos direitos sociais.

h) Cultura: enquadram-se nesse tema aplicativos relacionados à promoção de manifestações artísticas, sociais, linguísticas e comportamentais do povo brasileiro.

i) Direitos e defesa do consumidor: enquadram-se neste tema aplicativos que abordem assuntos relacionados ao Código de Proteção e Defesa do Consumidor (Lei nº 8.078, de 11 de setembro de 1990) ou normas específicas como o Regulamento Geral de Direitos do Consumidor de Serviços de Telecomunicações (Resolução Anatel nº 632, de 7 de março de 2014).

j) Melhoria da gestão no setor público: enquadram-se neste tema aplicativos que facilitem a comunicação e colaboração interna entre servidores ou que promovam a solicitação de operações da administração pública por meio de acesso móvel (por exemplo: solicitação de segunda via de contracheques, pedido de férias, etc).

k) Turismo e Grandes Eventos: enquadram-se neste tema aplicativos que abordem assuntos relacionados os diferentes setores da cadeia produtiva da atividade – Marketing e Serviços Turísticos, Agenciamento de Viagens, Transporte, Hotelaria, Gastronomia, Entretenimento e Lazer, Eventos e Conferências, Atrações Culturais e Ecológicas.

l) Tratamento de indicadores de políticas públicas (dados abertos): enquadram-se neste tema aplicativos desenvolvidos a partir do tratamento de dados em formato aberto que estejam relacionados à análise estatística de dados, correlação de indicadores, análise de tendência, visualização de dados, dentre outros. A título de exemplo, podem ser utilizados o Portal Brasileiro de Dados Abertos disponível em http://dados.gov.br/, o Portal de Dados abertos do Ministério das Comunicações (http://www.comunicacoes.gov.br/dados), bem como dados disponibilizados em sítios de outros órgãos da Administração Pública.

m) Participação Social: enquadram-se neste tema aplicativos que promovam a interação entre a sociedade e a Administração Pública nas diversas etapas do ciclo de política pública e prestação de serviços.

n) Trabalho e Renda: enquadram-se neste tema aplicativos que facilitassem o aceso às informações de intermediação de emprego (SINE - Sistema Nacional de Emprego), às ofertas das instituições de ensino técnico ou cursos de formação profissional (Sistema S ou Pronatec, por exemplo), assim como outras ações públicas ou privadas que oportunizem o acesso ao trabalho e à renda.

o) Meio ambiente: enquadram-se nesse tema aplicativos que promovam a preservação de ecossistemas e da vida. Como referência, pode-se trabalhar aplicativos que facilitam a reutilização e a reciclagem de resíduos sólidos.

About

Este projeto tem por objetivo desenvolver um aplicativo que permita a engenheiros, arquitetos, pessoas físicas e demais gerentes de obras de construção civil obter orçamentos de materiais necessários à obra, realizar comparação de preços, de prazos de entrega e de demais serviços oferecidos pelas empresas de materiais de construção.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published