(67 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 12: Linha 12:
== What ==
== What ==


Qual o nome do seu projeto?
'''Qual o nome do seu projeto?'''
* CarHelp
* CarHelp
Qual o objetivo deste projeto?
'''Qual o objetivo deste projeto?'''
* Temos como objetivo poder auxiliar as pessoas que possuem automóveis a cuidarem de seus veículos e também ajudar as pessoas que prestam serviços relacionados aos mesmos.
* Temos como objetivo poder auxiliar as pessoas que possuem automóveis a cuidarem de seus veículos e também ajudar as pessoas que prestam serviços relacionados aos mesmos.
Quais os maiores desafios, na sua opinião, para se realizar este trabalho?
'''Quais os maiores desafios, na sua opinião, para se realizar este trabalho?'''
 
*Os maiores desafios para realizar esse trabalho são: adquirir e conseguir implementar os conhecimentos necessários para esse projeto.
Quais os conhecimentos básicos que devemos ter para se implementar este projeto?
'''Quais os conhecimentos básicos que devemos ter para se implementar este projeto?'''
 
*Banco de dados, linguagem de programação, gestão de projeto, integração de sistemas, estrutura de dados, arquitetura, conhecimento do ambiente Android e iOS e conhecimento em tecnologias de localização.
Quais soluções similares existem no mercado?
'''Quais soluções similares existem no mercado?'''
 
*https://play.google.com/store/apps/details?id=br.com.app.gpu1890112.gpu0c00cce604bfd57790af107297f95490
*https://play.google.com/store/apps/details?id=br.com.cliqueiachei
*https://play.google.com/store/apps/details?id=br.com.guiadeoficinasbrasil.guiadeoficinas_appoficinas
<br>
<br>


Linha 27: Linha 29:




# Porque é interessante desenvolver este projeto?
'''Porque é interessante desenvolver este projeto?'''
# Porque deve usar a tecnologia escolhida?
*É interessante desenvolver esse projeto, porque o CarHel pode auxiliar as pessoas que possuem automóveis a cuidarem de seus veículos e também ajudar as pessoas que prestam serviços relacionados aos mesmos.
# Porque usar o hardware específico?
'''Porque deve usar a tecnologia escolhida?'''
# Porque usar o sistema específico?
*O desenvolvimento do app na plataforma mobile é essencial para completa funcionalidade do aplicativo, pois com ela podemos usar várias funções que acompanham o aplicativo, como o gps e a conexão de dados.
'''Porque usar o hardware específico?'''
*Porque os dispositivos móveis são de fácil uso e bem consolidado no mercado.
'''Porque usar o sistema específico?'''
*Porque o uso de sistema como Android e iOS representam a maioria dispositivos moveis existentes.
<br>
<br>


Linha 46: Linha 52:


'''Onde os dados serão inseridos?'''  
'''Onde os dados serão inseridos?'''  
*Os dados serão inseridos na interface gráfica local onde haverá a primeira interação e comunicação com o usuário.
'''Onde os dados serão externalizados, publicados?'''
'''Onde os dados serão externalizados, publicados?'''
*Os dados serão externalizados em interfaces presentes em dispositivos móveis, relacionados tanto ao usuário quanto as empresas filiadas ao aplicativo.
*Os dados serão externalizados em interfaces presentes em dispositivos móveis, relacionados tanto ao usuário quanto as empresas filiadas ao aplicativo.
'''Onde esta a plicação poderá ser usada?'''  
'''Onde esta aplicação poderá ser usada?'''  
*O aplicativo será disponibilizado para as plataformas android e iOS.
'''Onde o dados serão armazenadas?'''  
'''Onde o dados serão armazenadas?'''  
*Os dados serão armazenados em bancos dados que possam ser  atualizados em tempo real.
*Os dados serão armazenados em bancos dados que possam ser  atualizados em tempo real.
Linha 57: Linha 65:
== When ==
== When ==


# Em quanto tempo pretende desenvolver o sistema?  
'''Em quanto tempo pretende desenvolver o sistema?'''
# Quais serão as fases e em quanto tempo cada uma?  
*De 7 a 12 meses.
# Qual o tempo de resposta do dispositivo ou do sistema?
'''Quais serão as fases e em quanto tempo cada uma?'''
# Quanto tempo para responder a uma entrada?
*01/04/2019 Entrega 1 - Pitches
# Quanto tempo para gerar a saída?
*08/04/2019 Entrega 2 - Mockup
*29/04/2019 Entrega 3 - DC e DFD
*30/04/2019 Entrega 4 - DER
*18/06/2019 Entrega 5: Diagramas OO
*20/06/2019    Codificação e Criação de Interface
*15/08/2019    Implementação
*07/09/2019    Teste e Correção de bugs
*01/11/2019    Entrega final
'''Qual o tempo de resposta do dispositivo ou do sistema?'''
*Milissegundos
'''Quanto tempo para responder a uma entrada?'''
*Milissegundos
'''Quanto tempo para gerar a saída?'''
*Milissegundos
<br>
<br>


== How ==
== How ==


# Como será dividido o desenvolvimento do sistema?
'''Como será dividido o desenvolvimento do sistema?'''
# Como será feita a entrada de dados?  
*Codificação
# Como será feita a saída de dados?  
*Criar de interface
# Descreva a 1a. funcionalidade?
*Implementação
# Descreva a 2a. funcionalidade?
*Testes e Correção de bugs
# ............
'''Como será feita a entrada de dados?'''
# Descreva a enésima funcionalidade?
*Por meio de telas touchscreen ou outras formas de entrada em Smartphone, realizados por usuários comuns e donos de estabelecimentos que prestam serviços a automóveis.
'''Como será feita a saída de dados?'''
*A saída será definida nas interfaces do app para cada usuário, seja ele um usuário comum ou donos de estabelecimentos que prestam serviços a automóveis.
'''Descreva as funcionalidade?'''
* Cadastrar prestador de serviços
* Cadastrar usuário
* Realizar login
* Remover usuário
* Remover prestador de serviços
* Alterar o cadastro de prestadores de serviços
* Visualizar os prestadores de serviços
* Solicitar serviço
* Cancelar serviço
* Avaliar o serviço prestado
* Realizar busca por serviços
* Entrar em contato com o prestador de serviços
* Denunciar usuário
* Denunciar prestador de serviços
* Mostrar a localização prestadores de serviços
* Realizar busca personalizada
* Avaliar usuário
<br>
<br>


== How much ==
== How much ==


# Quanto custa cada parte do sistema?
'''Quanto custa cada parte do sistema?'''
# Quanto deverá custar todo o sistema?  
*Codificação: R$ 9.136,00
# Quantas pessoas deverão ser usadas (Equipe) ?  
*Criar de interface: R$ 4.190,00
# Quanto custa cada profissional?
*Implementação: R$ 4.568,00
# Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?   
*Testes e Correção de bugs: R$ 12.990.00
'''Quanto deverá custar todo o sistema?'''
*R$ 30.884,00
'''Quantas pessoas deverão ser usadas (Equipe) ?'''
* A equipe será composta por 4 pessoas.
'''Quanto custa cada profissional?'''
*Programador: R$ 2.284,99.
*Designer: R$ 2.095.00.
*Analista de Teste de Software: R$ 1.927.
'''Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?''' 
*Grátis para download porém com preços para o perfil que oferecerá serviços.
<br>
= Canvas =
<br>
 
* [[Arquivo:CarHelp Canvas.pdf]]
 
= DC =
*[[Arquivo:DCCarHelp.png]]
 
= DFD =
*[[Arquivo:DFDCarHelp.jpg]]
= DER =
*[[Arquivo:DERCarHelp.jpg]]
<br>
 
= Especificação Funcional =
<br>
 
* RF01: Cadastrar prestador de serviços
** Interface solicita o CNPJ do usuário
** O Sistema faz uma consulta no sistema da Receita Federal
*** Se o CNPJ for válido:
**** O prestador de serviço irá preencher os requisitos: nome da empresa, e-mail, endereço, telefone e quais tipos de serviços que ele oferece
**** Depois da entrada dos dados, o prestador de serviço tem a opção de ler os Termos e Condições de Uso e concordar ou não com o que foi escrito.
***** Se concordar com os termos o prestador de serviço pode concluir o cadastro
***** Caso contrário, não será possível concluir o cadastro
*** Se o CNPJ não for válido:
**** O Sistema comunicará por um janela que o CNPJ não é válido, logo não é possível realizar o cadastro
 
* RF02: Cadastrar usuário
** Interface solicita o CPF do usuário
** O Sistema faz uma consulta no sistema da Receita Federal
*** Se o CPF for válido:
**** O usuário irá preencher os requisitos: nome, sobrenome, e-mail, endereço e telefone
**** Depois da entrada dos dados, o usuário tem a opção de ler os Termos e Condições de Uso e concordar ou não com o que foi escrito.
***** Se concordar com os termos o usuário pode concluir o cadastro
***** Caso contrário, não será possível concluir o cadastro
*** Se o CPF não for válido:
**** O Sistema comunicará por um janela que o CPF não é válido, logo não é possível realizar o cadastro
 
* RF03: Realizar login
** A interface solicita o CPF ou o CNPJ
** Se o sistema faz uma consulta no Banco de Dados
*** Se o CPF ou CNPJ não estiver no Banco de Dados:
**** Aparecerá uma janela avisando que o CPF ou CNPJ não é válido
*** Se o CPF ou CNPJ estiver no Banco de Dados:
**** Uma outra interface irá pedir a senha referente ao CPF ou CNPJ citado
***** Se a senha estiver correta, será apresentado o menu principal do Sistema
***** Caso contrário, irá aparecer uma janela comunicando que a senha escrita não está correta
 
* RF04: Remover usuário
** Quando o usuário solicita a opção de Remover usuário
** A interface solicita o nome do usuário a ser removido
** Sistema procura pelo usuário pesquisando no Depósito Usuários
*** Se não encontrou:
**** Mostra mensagem "Usuário não encontrado"
*** Se encontrou:
**** Sistema mostra o nome completo do usuário
**** O Sistema pergunta a senha do usuário
***** Se a senha estiver incorreta: O sistema alega que a senha está incorreta e não remove o usuário
***** Se a senha estiver correta: Exclui os registros do usuário do Banco de Dados
** No rodapé da tela, tem a opção: "Retornar ao Menu Principal"
 
* RF05: Remover prestador de serviços
** Quando o prestador de serviços solicita a opção de Remover prestador de serviços
** A interface solicita CNPJ do prestador de serviços a ser removido
** Sistema procura pelo prestador de serviços pesquisando no Depósito Prestadores de Serviços
*** Se não encontrou:
**** Mostra mensagem "Prestador de serviços não encontrado"
*** Se encontrou:
**** Sistema mostra o nome da empresa do prestador de serviços
**** O Sistema pergunta a senha do prestador de serviços
***** Se a senha estiver incorreta: O sistema alega que a senha está incorreta e não remove o prestador de serviços
***** Se a senha estiver correta: Exclui os registros do prestador de serviços do Banco de Dados
** No rodapé da tela, tem a opção: "Retornar ao Menu Principal"
 
* RF06: Alterar o cadastro de prestadores de serviços
** Uma interface com todas as informações do prestador de serviços será apresentada
** O prestador de serviço pode realizar alguma alteração em relação a e-mail, endereço, telefone ou quais tipos de serviços que ele oferece
*** Após a alteração, ele apertará em um botão que finaliza a operação e salva as novas informações
*** As novas informações serão colocadas no Banco de Dados
 
* RF07: Visualizar os prestadores de serviços
** Ao clicar no botão de prestadores de serviços
** O Sistema listará todos os prestadores de serviços atuantes
** O usuário poderá visualizar todos os prestadores de serviços atuantes em forma de lista
 
* RF08: Solicitar serviço
** No menu principal, terá um botão no qual o usuário pode solicitar um serviço
** Ao clicar nele, o usuário será apresentado a uma interface nova com campos a serem completados
*** Qual o tipo de serviço o usuário precisa, onde o usuário está, qual o automóvel o usuário está utilizando e a placa do automóvel
*** Após preencher todos os campos, o usuário deve apertar o botão, "Solicitar serviço"
** O Sistema irá realizar uma busca no Banco de Dados para encontrar o prestador de serviços mais próximo que possa realizar o serviço de acordo com informações passadas pelo usuário
** O prestador de serviços receberá uma notificação de serviço e poderá aceita-la ou não
*** Caso aceite, ele receberá as informações do usuário e poderá realizar o serviço
*** Caso contrario, o Sistema buscará outro prestador de serviços que possa realizar o serviço
** Caso o Sistema não encontre nenhum prestador de serviços disponível, o usuário receberá uma notificação
 
* RF09: Cancelar serviço
** Após realizar a solicitação de serviço, o usuário pode cancelar a solicitação
** Após a confirmação do pedido do serviço, o usuário será apresentado a uma interface com as informações do serviço
*** Quem o realizará, onde o prestador de serviço está (caso essa informação esteja disponível) e os detalhes informados pelo usuário
** Caso o usuário queira cancelar o serviço, basta ele apertar o botão "Cancelar"
** Caso o usuário cancele o serviço, uma janela aparecera com uma caixa de texto para que o usuário justifique o motivo do cancelamento
** Depois basta ele apertar no botão "Cancelar" e o serviço será cancelado e o prestador de serviço será notificado    
 
* RF10: Avaliar o serviço prestado 
** Após a realização de um serviço, o usuário será apresentado a uma janela na qual ele poderá avaliar o prestador de serviços que prestou o serviço
** A interface terá um forma de avaliação de notas, de 0 a 5
** Será possível por meio de uma caixa de texto, registrar maiores detalhes caso o usuário queira
** E terá um botão "Avaliar", para concluir a avaliação do prestador de serviços
** Por fim, o Sistema registrará a avaliação no Banco de Dados 
 
* RF11: Realizar busca por serviços
** O usuário irá escrever em um campo específico qual tipo de serviço ele quer encontrar
** O Sistema vai receber essa informação e buscará no Banco de Dados quais os prestadores de serviços realizam esse serviço
** O Sistema irá apresentar para o usuário uma lista com todos os prestadores de serviços que realizam o serviço desejado
** Caso o Sistema não encontre nenhum prestador de serviço que realize o serviço, aparecerá um aviso na tela 
 
* RF12: Entrar em contato com o prestador de serviços
** No perfil do prestador de serviços, existirá um botão para entrar em contato com ele
** Esse botão fará com que o Sistema busque as informações de telefone do prestador de serviço
** O Sistema irá colocar o número do prestador de serviços direto no telefone do usuário para realizar uma ligação
 
* RF13: Denunciar usuário
** No perfil do usuário existirá um botão no qual é possível denunciar o perfil do usuário
** Ao pressiona-lo:
*** Aparecerá uma janela qual terá um campo onde o usuário pode escrever sua queixa a respeito do usuário
*** Após escrever sua queixa, o prestador de serviços deverá clicar em um botão escrito "Denunciar" e concluir a operação
** A queixa será registrada no Banco de Dados
 
* RF14: Denunciar prestador de serviços
** No perfil do prestador de serviços existirá um botão no qual é possível denunciar o perfil do prestador de serviço
** Ao pressiona-lo:
*** Aparecerá uma janela qual terá um campo onde o usuário pode escrever sua queixa a respeito do prestador de serviços
*** Após escrever sua queixa, o usuário deverá clicar em um botão escrito "Denunciar" e concluir a operação
** A queixa será registrada no Banco de Dados
 
* RF15: Mostrar a localização prestadores de serviços
** Após ser solicitado um serviço e o prestador de serviços confirmar o pedido, será possível ver a localização do prestador de serviços
*** Caso a localização do dispositivo do prestador de serviço esteja ligada, o usuário receberá a opção de rastreá-lo
**** Assim, será apresentado ao usuário um mapa com a localização do usuário e a localização do prestador de serviços
*** Caso contrário, a opção de rastrear o prestador de serviços não será apresentada ao usuário
* RF16: Realizar busca personalizada
** O usuário irá realizar uma busca de serviço ou de prestador de serviços
** Ele irá escrever em um campo específico o que ele tem interesse
** A partir disso, ele poderá acrescentar filtros, por exemplo:
*** Intervalo de preço, localização e mais bem avaliado
** A partir dessas informações o Sistema irá realizar uma busca no Banco de Dados
** E irá apresentar todos os resultados possíveis em forma de lista
** Caso não seja encontrado informações a respeito do que o usuário deseja, aparecerá um aviso na tela
 
* RF17: Avaliar usuário
** Após a realização de um serviço, o prestador de serviços será apresentado a uma janela na qual ele poderá avaliar o usuário a quem ele prestou o serviço
** A interface terá um forma de avaliação de notas, de 0 a 5
** Será possível por meio de uma caixa de texto, registrar maiores detalhes caso o prestador de serviço queira
** E terá um botão "Avaliar", para concluir a avaliação do usuário
** Por fim, o Sistema registrará a avaliação no Banco de Dados 
 
<br>
 
= Especificações Não Funcionais =
<br>
 
* RNF01: Desempenho
** O Sistema deve responder a uma solicitação de um serviço específico de um usuário dentro de um intervalo de 2 segundos.
** O Sistema de software possa processar, no mínimo, 6 transações por segundo.
** O Sistema deveria efetuar leitura de dados 5 vezes por segundo, como condição mínima.
 
* RNF02: Disponibilidade
** O Sistema deve estar funcionando 24 x 7 (vinte e quatro horas por dia, sete dias por semana).
** Sempre que o usuário abrir o sistema uma função deverá verificar se há conectividade com o servidor de banco de dados. Se houver, deverá conectar neste ambiente (servidor), senão, o usuário não poderá utilizar o Sistema.
 
* RNF03: Segurança
** O sistema não poderá permitir cache de senha, salvamento de senha ou qualquer outro recurso do tipo. A cada novo acesso, a autenticação deverá se realizada novamente, de maneira integral.
** Apenas pessoas que tenham sido autenticadas por um componente de controle acesso e autenticação poderão visualizar informações dado que a confidencialidade permite esse tipo de acesso apenas às pessoas autorizadas.
** As permissões de acesso ao sistema podem ser alteradas apenas pelo administrador de sistemas.
 
* RNF04: Usabilidade
** O sistema de Atendimento a Clientes será construído para rodar em ambiente web. Deverá possui um design responsivo
** A interface do sistema deverá se comporta adequadamente independente do front-end que será utilizado para acesso – Browser, Smartphone ou Tablet.
 
* RNF05: Compatibilidade
** O Sistema deve ser compatível com os sistemas operacionais mobiles: iOS e  Android. Para iOS a versão utilizada será a partir da versão 8.0 e para Android utiliza-se a partir da versão 4.0.3
** Para ambos os sistemas são aplicadas atualizações, sempre que uma nova versão do sistema operacional seja lançada.
 
* RNF06: Padrão
** O projeto do software deverá ser fortemente orientado a baixo acoplamento e alta coesão, primando pela melhor separação de responsabilidades.
** Todo o projeto deverá ser feito utilizando uma arquitetura separada em camadas, onde cada camada conterá apenas os algoritmos relacionados à sua responsabilidade.
 
*RNF07: Reusabilidade
** O Sistema deve ser composto de aplicações, subsistemas, objetos e funções que sejam reutilizáveis dentro do próprio Sistema
 
<br>
 
= Diagrama de Classes =
<br>
[[Arquivo:DCCCarHelp3.png]]
 
<br>
 
= Diagrama de Casos de Usos =
<br>
[[Arquivo:CDUCarHelp2.png]]
 
<br>
 
= Diagrama de Objetos =
<br>
[[Arquivo:OBJCarHelp2.png]]
 
<br>
<br>

Edição atual tal como às 23h04min de 1 de julho de 2019

Escopo

  • O CarHelp é uma plataforma na qual na qual o usuário pode buscar por assistência ao seu automóvel, seja para buscar um mecânico, eletricista, manutenção de suspensão, oficina de performance, lava jato ou guincho. Para esses profissionais a plataforma será uma forma de divulgação para eles e uma forma de conhecer novos profissionais para possíveis colaborações entre eles.



5W2H

What

Qual o nome do seu projeto?

  • CarHelp

Qual o objetivo deste projeto?

  • Temos como objetivo poder auxiliar as pessoas que possuem automóveis a cuidarem de seus veículos e também ajudar as pessoas que prestam serviços relacionados aos mesmos.

Quais os maiores desafios, na sua opinião, para se realizar este trabalho?

  • Os maiores desafios para realizar esse trabalho são: adquirir e conseguir implementar os conhecimentos necessários para esse projeto.

Quais os conhecimentos básicos que devemos ter para se implementar este projeto?

  • Banco de dados, linguagem de programação, gestão de projeto, integração de sistemas, estrutura de dados, arquitetura, conhecimento do ambiente Android e iOS e conhecimento em tecnologias de localização.

Quais soluções similares existem no mercado?


Why

Porque é interessante desenvolver este projeto?

  • É interessante desenvolver esse projeto, porque o CarHel pode auxiliar as pessoas que possuem automóveis a cuidarem de seus veículos e também ajudar as pessoas que prestam serviços relacionados aos mesmos.

Porque deve usar a tecnologia escolhida?

  • O desenvolvimento do app na plataforma mobile é essencial para completa funcionalidade do aplicativo, pois com ela podemos usar várias funções que acompanham o aplicativo, como o gps e a conexão de dados.

Porque usar o hardware específico?

  • Porque os dispositivos móveis são de fácil uso e bem consolidado no mercado.

Porque usar o sistema específico?

  • Porque o uso de sistema como Android e iOS representam a maioria dispositivos moveis existentes.


Who

Quem pode se beneficiar deste projeto?

  • As pessoas que podem se beneficiar deste projeto são: donos de oficinas, lava jatos, guinchos e pessoas que possuem automóveis.

Quem poderá operar o sistema?

  • Os próprios usuários finais que iram operar o sistema.

Quem deverá participar do desenvolvimento do sistema?

  • Desenvolvedores, programadores e designers.


Where

Onde os dados serão inseridos?

  • Os dados serão inseridos na interface gráfica local onde haverá a primeira interação e comunicação com o usuário.

Onde os dados serão externalizados, publicados?

  • Os dados serão externalizados em interfaces presentes em dispositivos móveis, relacionados tanto ao usuário quanto as empresas filiadas ao aplicativo.

Onde esta aplicação poderá ser usada?

  • O aplicativo será disponibilizado para as plataformas android e iOS.

Onde o dados serão armazenadas?

  • Os dados serão armazenados em bancos dados que possam ser atualizados em tempo real.

Onde o software deverá ser hospedado?

  • O software será hospedado em sistema cliente-servidor.


When

Em quanto tempo pretende desenvolver o sistema?

  • De 7 a 12 meses.

Quais serão as fases e em quanto tempo cada uma?

  • 01/04/2019 Entrega 1 - Pitches
  • 08/04/2019 Entrega 2 - Mockup
  • 29/04/2019 Entrega 3 - DC e DFD
  • 30/04/2019 Entrega 4 - DER
  • 18/06/2019 Entrega 5: Diagramas OO
  • 20/06/2019 Codificação e Criação de Interface
  • 15/08/2019 Implementação
  • 07/09/2019 Teste e Correção de bugs
  • 01/11/2019 Entrega final

Qual o tempo de resposta do dispositivo ou do sistema?

  • Milissegundos

Quanto tempo para responder a uma entrada?

  • Milissegundos

Quanto tempo para gerar a saída?

  • Milissegundos


How

Como será dividido o desenvolvimento do sistema?

  • Codificação
  • Criar de interface
  • Implementação
  • Testes e Correção de bugs

Como será feita a entrada de dados?

  • Por meio de telas touchscreen ou outras formas de entrada em Smartphone, realizados por usuários comuns e donos de estabelecimentos que prestam serviços a automóveis.

Como será feita a saída de dados?

  • A saída será definida nas interfaces do app para cada usuário, seja ele um usuário comum ou donos de estabelecimentos que prestam serviços a automóveis.

Descreva as funcionalidade?

  • Cadastrar prestador de serviços
  • Cadastrar usuário
  • Realizar login
  • Remover usuário
  • Remover prestador de serviços
  • Alterar o cadastro de prestadores de serviços
  • Visualizar os prestadores de serviços
  • Solicitar serviço
  • Cancelar serviço
  • Avaliar o serviço prestado
  • Realizar busca por serviços
  • Entrar em contato com o prestador de serviços
  • Denunciar usuário
  • Denunciar prestador de serviços
  • Mostrar a localização prestadores de serviços
  • Realizar busca personalizada
  • Avaliar usuário


How much

Quanto custa cada parte do sistema?

  • Codificação: R$ 9.136,00
  • Criar de interface: R$ 4.190,00
  • Implementação: R$ 4.568,00
  • Testes e Correção de bugs: R$ 12.990.00

Quanto deverá custar todo o sistema?

  • R$ 30.884,00

Quantas pessoas deverão ser usadas (Equipe) ?

  • A equipe será composta por 4 pessoas.

Quanto custa cada profissional?

  • Programador: R$ 2.284,99.
  • Designer: R$ 2.095.00.
  • Analista de Teste de Software: R$ 1.927.

Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?

  • Grátis para download porém com preços para o perfil que oferecerá serviços.


Canvas


DC

DFD

DER


Especificação Funcional


  • RF01: Cadastrar prestador de serviços
    • Interface solicita o CNPJ do usuário
    • O Sistema faz uma consulta no sistema da Receita Federal
      • Se o CNPJ for válido:
        • O prestador de serviço irá preencher os requisitos: nome da empresa, e-mail, endereço, telefone e quais tipos de serviços que ele oferece
        • Depois da entrada dos dados, o prestador de serviço tem a opção de ler os Termos e Condições de Uso e concordar ou não com o que foi escrito.
          • Se concordar com os termos o prestador de serviço pode concluir o cadastro
          • Caso contrário, não será possível concluir o cadastro
      • Se o CNPJ não for válido:
        • O Sistema comunicará por um janela que o CNPJ não é válido, logo não é possível realizar o cadastro
  • RF02: Cadastrar usuário
    • Interface solicita o CPF do usuário
    • O Sistema faz uma consulta no sistema da Receita Federal
      • Se o CPF for válido:
        • O usuário irá preencher os requisitos: nome, sobrenome, e-mail, endereço e telefone
        • Depois da entrada dos dados, o usuário tem a opção de ler os Termos e Condições de Uso e concordar ou não com o que foi escrito.
          • Se concordar com os termos o usuário pode concluir o cadastro
          • Caso contrário, não será possível concluir o cadastro
      • Se o CPF não for válido:
        • O Sistema comunicará por um janela que o CPF não é válido, logo não é possível realizar o cadastro
  • RF03: Realizar login
    • A interface solicita o CPF ou o CNPJ
    • Se o sistema faz uma consulta no Banco de Dados
      • Se o CPF ou CNPJ não estiver no Banco de Dados:
        • Aparecerá uma janela avisando que o CPF ou CNPJ não é válido
      • Se o CPF ou CNPJ estiver no Banco de Dados:
        • Uma outra interface irá pedir a senha referente ao CPF ou CNPJ citado
          • Se a senha estiver correta, será apresentado o menu principal do Sistema
          • Caso contrário, irá aparecer uma janela comunicando que a senha escrita não está correta
  • RF04: Remover usuário
    • Quando o usuário solicita a opção de Remover usuário
    • A interface solicita o nome do usuário a ser removido
    • Sistema procura pelo usuário pesquisando no Depósito Usuários
      • Se não encontrou:
        • Mostra mensagem "Usuário não encontrado"
      • Se encontrou:
        • Sistema mostra o nome completo do usuário
        • O Sistema pergunta a senha do usuário
          • Se a senha estiver incorreta: O sistema alega que a senha está incorreta e não remove o usuário
          • Se a senha estiver correta: Exclui os registros do usuário do Banco de Dados
    • No rodapé da tela, tem a opção: "Retornar ao Menu Principal"
  • RF05: Remover prestador de serviços
    • Quando o prestador de serviços solicita a opção de Remover prestador de serviços
    • A interface solicita CNPJ do prestador de serviços a ser removido
    • Sistema procura pelo prestador de serviços pesquisando no Depósito Prestadores de Serviços
      • Se não encontrou:
        • Mostra mensagem "Prestador de serviços não encontrado"
      • Se encontrou:
        • Sistema mostra o nome da empresa do prestador de serviços
        • O Sistema pergunta a senha do prestador de serviços
          • Se a senha estiver incorreta: O sistema alega que a senha está incorreta e não remove o prestador de serviços
          • Se a senha estiver correta: Exclui os registros do prestador de serviços do Banco de Dados
    • No rodapé da tela, tem a opção: "Retornar ao Menu Principal"
  • RF06: Alterar o cadastro de prestadores de serviços
    • Uma interface com todas as informações do prestador de serviços será apresentada
    • O prestador de serviço pode realizar alguma alteração em relação a e-mail, endereço, telefone ou quais tipos de serviços que ele oferece
      • Após a alteração, ele apertará em um botão que finaliza a operação e salva as novas informações
      • As novas informações serão colocadas no Banco de Dados
  • RF07: Visualizar os prestadores de serviços
    • Ao clicar no botão de prestadores de serviços
    • O Sistema listará todos os prestadores de serviços atuantes
    • O usuário poderá visualizar todos os prestadores de serviços atuantes em forma de lista
  • RF08: Solicitar serviço
    • No menu principal, terá um botão no qual o usuário pode solicitar um serviço
    • Ao clicar nele, o usuário será apresentado a uma interface nova com campos a serem completados
      • Qual o tipo de serviço o usuário precisa, onde o usuário está, qual o automóvel o usuário está utilizando e a placa do automóvel
      • Após preencher todos os campos, o usuário deve apertar o botão, "Solicitar serviço"
    • O Sistema irá realizar uma busca no Banco de Dados para encontrar o prestador de serviços mais próximo que possa realizar o serviço de acordo com informações passadas pelo usuário
    • O prestador de serviços receberá uma notificação de serviço e poderá aceita-la ou não
      • Caso aceite, ele receberá as informações do usuário e poderá realizar o serviço
      • Caso contrario, o Sistema buscará outro prestador de serviços que possa realizar o serviço
    • Caso o Sistema não encontre nenhum prestador de serviços disponível, o usuário receberá uma notificação
  • RF09: Cancelar serviço
    • Após realizar a solicitação de serviço, o usuário pode cancelar a solicitação
    • Após a confirmação do pedido do serviço, o usuário será apresentado a uma interface com as informações do serviço
      • Quem o realizará, onde o prestador de serviço está (caso essa informação esteja disponível) e os detalhes informados pelo usuário
    • Caso o usuário queira cancelar o serviço, basta ele apertar o botão "Cancelar"
    • Caso o usuário cancele o serviço, uma janela aparecera com uma caixa de texto para que o usuário justifique o motivo do cancelamento
    • Depois basta ele apertar no botão "Cancelar" e o serviço será cancelado e o prestador de serviço será notificado
  • RF10: Avaliar o serviço prestado
    • Após a realização de um serviço, o usuário será apresentado a uma janela na qual ele poderá avaliar o prestador de serviços que prestou o serviço
    • A interface terá um forma de avaliação de notas, de 0 a 5
    • Será possível por meio de uma caixa de texto, registrar maiores detalhes caso o usuário queira
    • E terá um botão "Avaliar", para concluir a avaliação do prestador de serviços
    • Por fim, o Sistema registrará a avaliação no Banco de Dados
  • RF11: Realizar busca por serviços
    • O usuário irá escrever em um campo específico qual tipo de serviço ele quer encontrar
    • O Sistema vai receber essa informação e buscará no Banco de Dados quais os prestadores de serviços realizam esse serviço
    • O Sistema irá apresentar para o usuário uma lista com todos os prestadores de serviços que realizam o serviço desejado
    • Caso o Sistema não encontre nenhum prestador de serviço que realize o serviço, aparecerá um aviso na tela
  • RF12: Entrar em contato com o prestador de serviços
    • No perfil do prestador de serviços, existirá um botão para entrar em contato com ele
    • Esse botão fará com que o Sistema busque as informações de telefone do prestador de serviço
    • O Sistema irá colocar o número do prestador de serviços direto no telefone do usuário para realizar uma ligação
  • RF13: Denunciar usuário
    • No perfil do usuário existirá um botão no qual é possível denunciar o perfil do usuário
    • Ao pressiona-lo:
      • Aparecerá uma janela qual terá um campo onde o usuário pode escrever sua queixa a respeito do usuário
      • Após escrever sua queixa, o prestador de serviços deverá clicar em um botão escrito "Denunciar" e concluir a operação
    • A queixa será registrada no Banco de Dados
  • RF14: Denunciar prestador de serviços
    • No perfil do prestador de serviços existirá um botão no qual é possível denunciar o perfil do prestador de serviço
    • Ao pressiona-lo:
      • Aparecerá uma janela qual terá um campo onde o usuário pode escrever sua queixa a respeito do prestador de serviços
      • Após escrever sua queixa, o usuário deverá clicar em um botão escrito "Denunciar" e concluir a operação
    • A queixa será registrada no Banco de Dados
  • RF15: Mostrar a localização prestadores de serviços
    • Após ser solicitado um serviço e o prestador de serviços confirmar o pedido, será possível ver a localização do prestador de serviços
      • Caso a localização do dispositivo do prestador de serviço esteja ligada, o usuário receberá a opção de rastreá-lo
        • Assim, será apresentado ao usuário um mapa com a localização do usuário e a localização do prestador de serviços
      • Caso contrário, a opção de rastrear o prestador de serviços não será apresentada ao usuário
  • RF16: Realizar busca personalizada
    • O usuário irá realizar uma busca de serviço ou de prestador de serviços
    • Ele irá escrever em um campo específico o que ele tem interesse
    • A partir disso, ele poderá acrescentar filtros, por exemplo:
      • Intervalo de preço, localização e mais bem avaliado
    • A partir dessas informações o Sistema irá realizar uma busca no Banco de Dados
    • E irá apresentar todos os resultados possíveis em forma de lista
    • Caso não seja encontrado informações a respeito do que o usuário deseja, aparecerá um aviso na tela
  • RF17: Avaliar usuário
    • Após a realização de um serviço, o prestador de serviços será apresentado a uma janela na qual ele poderá avaliar o usuário a quem ele prestou o serviço
    • A interface terá um forma de avaliação de notas, de 0 a 5
    • Será possível por meio de uma caixa de texto, registrar maiores detalhes caso o prestador de serviço queira
    • E terá um botão "Avaliar", para concluir a avaliação do usuário
    • Por fim, o Sistema registrará a avaliação no Banco de Dados


Especificações Não Funcionais


  • RNF01: Desempenho
    • O Sistema deve responder a uma solicitação de um serviço específico de um usuário dentro de um intervalo de 2 segundos.
    • O Sistema de software possa processar, no mínimo, 6 transações por segundo.
    • O Sistema deveria efetuar leitura de dados 5 vezes por segundo, como condição mínima.
  • RNF02: Disponibilidade
    • O Sistema deve estar funcionando 24 x 7 (vinte e quatro horas por dia, sete dias por semana).
    • Sempre que o usuário abrir o sistema uma função deverá verificar se há conectividade com o servidor de banco de dados. Se houver, deverá conectar neste ambiente (servidor), senão, o usuário não poderá utilizar o Sistema.
  • RNF03: Segurança
    • O sistema não poderá permitir cache de senha, salvamento de senha ou qualquer outro recurso do tipo. A cada novo acesso, a autenticação deverá se realizada novamente, de maneira integral.
    • Apenas pessoas que tenham sido autenticadas por um componente de controle acesso e autenticação poderão visualizar informações dado que a confidencialidade permite esse tipo de acesso apenas às pessoas autorizadas.
    • As permissões de acesso ao sistema podem ser alteradas apenas pelo administrador de sistemas.
  • RNF04: Usabilidade
    • O sistema de Atendimento a Clientes será construído para rodar em ambiente web. Deverá possui um design responsivo
    • A interface do sistema deverá se comporta adequadamente independente do front-end que será utilizado para acesso – Browser, Smartphone ou Tablet.
  • RNF05: Compatibilidade
    • O Sistema deve ser compatível com os sistemas operacionais mobiles: iOS e Android. Para iOS a versão utilizada será a partir da versão 8.0 e para Android utiliza-se a partir da versão 4.0.3
    • Para ambos os sistemas são aplicadas atualizações, sempre que uma nova versão do sistema operacional seja lançada.
  • RNF06: Padrão
    • O projeto do software deverá ser fortemente orientado a baixo acoplamento e alta coesão, primando pela melhor separação de responsabilidades.
    • Todo o projeto deverá ser feito utilizando uma arquitetura separada em camadas, onde cada camada conterá apenas os algoritmos relacionados à sua responsabilidade.
  • RNF07: Reusabilidade
    • O Sistema deve ser composto de aplicações, subsistemas, objetos e funções que sejam reutilizáveis dentro do próprio Sistema


Diagrama de Classes



Diagrama de Casos de Usos



Diagrama de Objetos