(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 202: Linha 202:
===Requisitos Funcionais===
===Requisitos Funcionais===


# CRUD de Novo Usuário
#CRUD de Novo Usuário
## 1.1 Criar uma página para cada operação do CRUD;
## Criar uma página para cada operação do CRUD;
## 1.2 Verificar se o usuário tem permissão para realizar a operação;
## Verificar se o usuário tem permissão para realizar a operação;
## 1.3 Verificar a senha do novo usuário;
## Verificar a senha do novo usuário;
## 1.4 Verificar o e-mail do novo usuário;
## Verificar o e-mail do novo usuário;
## 1.5 Atualizar as alterações realizadas no CRUD no banco de dados.
## Atualizar as alterações realizadas no CRUD no banco de dados.
#Fazer Login
# Fazer Login
## Exibir página para inserção de dados;
## 2.1 Exibir página para inserção de dados;
## Receber informação de nome de usuário;
## 2.1 Receber informação de nome de usuário;
## Verificar no banco de dados se há um usuário com esse nome;
## 2.1 Verificar no banco de dados se há um usuário com esse nome;
## Se não existir o nome de usuário, informar erro ao usuário;
## 2.1 Se não existir o nome de usuário, informar erro ao usuário;
## Se existir o usuário, receber a informação da senha;
## 2.1 Se existir o usuário, receber a informação da senha;
## Verificar se a senha está correta;
## 2.1 Verificar se a senha está correta;
## Se a senha estiver errada, informar erro ao usuário;
## 2.1 Se a senha estiver errada, informar erro ao usuário;
## Se a senha estiver correta efetuar o login do usuário.
## 2.1 Se a senha estiver correta efetuar o login do usuário.
#Comprar Passagem
## Efetuar login do usuário;
# Comprar Passagem
## Realizar a conferência de dados;
## 3.1 Efetuar login do usuário;
## Exibir a opção de quantas pasasgens o usuário deseja comprar;
## 3.2 Realizar a conferência de dados;
## Escolhe a opção pagamento de conta;
## 3.3 Exibir a opção de quantas pasasgens o usuário deseja comprar;
## Obter dados bancários do usuário;
## 3.4 Escolhe a opção pagamento de conta;
## Verificar se dados são reais;
## 3.5 Obter dados bancários do usuário;
## verificar possibilidade de transação;
## 3.6 Verificar se dados são reais;
## Efetuar compra;
## 3.7 verificar possibilidade de transação;
## Disponibilizar os créditos na conta do usuário;
## 3.8 Efetuar compra;
## Finalizar pagamento.
## 3.9 Disponibilizar os créditos na conta do usuário;
#Consultar Horários
## 3.10 Finalizar pagamento.
## Receber os termos da busca de localização atual e destino;
## Realizar a busca no banco de dados (SELECT);
# Consultar Horários
## Rastrear possíveis ônibus;
## 4.1 Receber os termos da busca de localização atual e destino;
## Filtrar os resultados por localidade, menor tempo, menor caminho, menos paradas;
## 4.2 Realizar a busca no banco de dados (SELECT);
## Permitir múltiplos filtros simultaneamente;
## 4.3 Rastrear possíveis ônibus;
## Exibir o resultado da pesquisa de horários na página.
## 4.4 Filtrar os resultados por localidade, menor tempo, menor caminho, menos paradas;
#Buscar Rotas
## 4.5 Permitir múltiplos filtros simultaneamente;
## Receber os termos da busca de localização atual e destino;
## 4.6 Exibir o resultado da pesquisa de horários na página.
## Realizar a busca no banco de dados (SELECT);
## Rastrear possíveis ônibus;
# Buscar Rotas
## Filtrar os resultados por localidade, menor tempo, menor caminho, menos paradas;
## 5.1 Receber os termos da busca de localização atual e destino;
## Permitir múltiplos filtros simultaneamente;
## 5.2 Realizar a busca no banco de dados (SELECT);
## Exibir o resultado da pesquisa de rotas em uma página;
## 5.3 Rastrear possíveis ônibus;
## Exibir ônibus;
## 5.4 Filtrar os resultados por localidade, menor tempo, menor caminho, menos paradas;
## Exibir botão de "Ir" na pesquisa de rotas;
## 5.5 Permitir múltiplos filtros simultaneamente;
## Ao clicar no botão, enviar uma solicitação para o banco de dados e fazer cálculos de rota;
## 5.6 Exibir o resultado da pesquisa de rotas em uma página;
## Calcular tempo;
## 5.7 Exibir ônibus;
## O banco de dados aceitará a solicitação e fará os cálculos;
## 5.8 Exibir botão de "Ir" na pesquisa de rotas;
## Exibir ícone de "Carregando Rotas";
## 5.9 Ao clicar no botão, enviar uma solicitação para o banco de dados e fazer cálculos de rota;
## Exibir rota na tela;
## 5.10 Calcular tempo;
## Exibir o tempo até chegada ao destino.
## 5.11 O banco de dados aceitará a solicitação e fará os cálculos;
 
## 5.12 Exibir ícone de "Carregando Rotas";
===Requisitos Não Funcionais===
## 5.13 Exibir rota na tela;
 
## 5.14 Exibir o tempo até chegada ao destino.
#Ter um aplicativo para celular.
#Ser acessado em dispositivos móveis.
#Ter versão em Português e em inglês.
#Ter o aplicativo desenvolvido para dispositivos Android.
#Ter o aplicativo desenvolvido para dispositivos iOs.
#Resguardar totalmente os dados cadastrais de usuários.
#Não ter o sistema prejudicado em caso de falta de energia.
#Ser capaz de avisar os usuários em caso de mal funcionamento em algum dos sensores.
#Ser acessado em dispositivos móveis.
#Ter um tempo de resposta de no máximo 15 seg em 90 % dos casos.
#O aplicativo deverá funcionar em um smartphone ou tablet com os sistemas operacionais Android 4.0+ ou iOS7+.
#O tempo de resposta para a busca de uma rota deverá ser de no máximo 5 segundos;
#O usuário deverá conseguir realizar uma tarefa em no máximo 4 ações;
#Possibilitar o usuário utilizar o sistema em modo off-line;
#O aplicativo deverá se conectar com a internet ao menos uma vez por semana para otimizar as previsões de tempos de chegada.
#O aplicativo deverá se conectar com a internet ao menos uma vez por semana para evitar equívocos de previsão;
#Margem de erro de no máximo 5 minutos para a previsão do horário de chegada do ônibus em determinado ponto informado para o usuário deverá manter uma.


= Alinhamento =
= Alinhamento =

Edição atual tal como às 01h15min de 20 de dezembro de 2020

5W2H


What


  • 1. Qual o nome do seu projeto?
    • Aplicativo Bus.
  • 2. Qual o objetivo deste projeto?
    • Auxiliar os usuários de ônibus com um sistema que mostre os horários e rotas das linhas de ônibus, o fluxo de passageiros, faça pagamentos diretos e que receba avisos e feedbacks como sugestões e reclamações. Tudo em tempo real.
  • 3. Quais os maiores desafios, na sua opinião, para se realizar este trabalho?
    • Conciliar e integrar o uso de dados tais quais horários, falta de informação, sobrecarga dos motoristas e imprevistos.
  • 4. Quais os conhecimentos básicos (teorias) que devemos ter para se implementar este projeto?
    • O projeto terá sua construção baseada principalmente no método 5W2H escorado por técnicas e outros métodos como Design Thingk e UX com o auxílio de pesquisa, mapa mental, personas, storytelling, jornada do usuário, matriz de impacto e esforço, benchmarking, canvas entre outros.
  • 5. Quais soluções similares existem no mercado?
    • Moovit, Citymapper e Urbanoide.


Why


  • 1. Porque é interessante desenvolver este projeto?
    • Com base em pesquisas e estudos, sabe-se que muitos brasileiros utilizam o transporte publico mesmo considerando-o um problema. Sabe-se também que 52% dos brasileiros utilizam aplicativos de transporte. Sendo assim, ao conciliar esses dois pontos, visa-se melhorar a experiência do transporte publico.
  • No seu projeto, precisará optar por algumas tecnologias, usar alguns hardwares e conversar com outros sistemas.

atuais ou não.

    • 2. Com relação às tecnologias, cite no mínimo 3 e explique a função de cada uma no seu projeto.
      • Banco de dados para o armazenamento e consulta de dados; GPS para a localização dos ônibus; aplicativo de pagamento para as transações financeiras.
    • 3. Com relação ao hardware, cite no mínimo 3 e explique a função de cada um no seu projeto.
      • Sensores para monitorar o pagamento das tarifas; aparelhos mobile para a interface com o usuário; servidor para hospedar o sistema.
  • 4. Com relação aos sistemas, cite no mínimo 3 e explique a função de cada um no seu projeto.
      • Sistema de pagamento dos ônibus para checar se a tarifa foi paga; sistema de localização dos ônibus; sistema para monitorar o fluxo e a lotação de passageiros.


Who


  • 1. Quem pode se beneficiar deste projeto?
    • Passageiros, motoristas, cobradores e vendedores de passes.
  • 2. Quem poderá operar o sistema?
    • Todos os listados no tópico 1.
  • 3. Quem deverá participar do desenvolvimento do sistema?
    • Gestores da informação, programadores, designers, profissionais diversos do ramo de TI.


Where


  • 1. Por onde (hardware ou sistemas), os dados serão inseridos?
    • Os dados serão inseridos por meio do smartphone pelo aplicativo bus versão passageiro e motorista e pelos sensores de pagamento presentes nos ônibus.
  • 2. Onde (hardware ou sistemas), os dados serão externalizados?
    • As informações serão exibidas no smartphone
  • 3. Onde (em que dispositivos ou ambientes) esta aplicação poderá ser usada?
    • Está aplicação pode ser usada em transporte de passageiros primeiramente em ônibus públicos.
  • 4. Onde os dados serão armazenados?
    • Os dados serão armazenados em um banco de dados.
  • 5. Onde o software deverá ser hospedado?
    • O software será hospedado nas lojas de aplicativos virtuais Apple Play e Google Play.


When


  • 1. Em quanto tempo (em semanas) pretende desenvolver o sistema?
    • O tempo mínimo de desenvolvimento é de 6 meses.
  • 2. Quais serão as fases e em quanto tempo cada uma?
    • 1 - Levantamento de requisitos; 2 - Projeção; 3 - Desenvolvimento; 4 - Testes; 5 - Implantação
    • Tempo: 1 e 2 (1 mês); 3 e 4 (No mínimo 6 meses) e 5 (No mínimo 3 meses)
  • 3. Qual o tempo de resposta do dispositivo ou do sistema, ou seja, quanto tempo acha razoável esperar por uma informação?
    • No mínimo 2 meses para implementar todas as funcionalidades e assim, gerar uma base consolidada. No que tange os usuários, visa-se a exibição de informações em tempo real, devido à natureza do aplicativo.
  • 4. Se tiver investimento, quanto tempo acha razoável para pagar o financiamento?
    • De 2 a 3 anos
  • 5.


How


  • 1. Como será dividido o desenvolvimento do sistema?
    • Seria usado o modelo incremental interativo com pequenas entregas de funcionalidades passando por 6 etapas a cada ciclo, são elas: 1) Levantamento de requisitos; 2) Análise de requisitos; 3) Projeto; 4) Implementação; 5) Testes; 6)Implantação.
  • 2. Como será feita a entrada de dados?
    • As entradas de dados acontecerão por meio dos aplicativos instalados nos smartphones dos usuários.
  • 3. Como será feita a saída de dados?
    • Por meio de Dashboards criados com os dados obtidos para a análise e tomada de decisão das empresas.
  • 4. Descreva a 1a. funcionalidade?
    • Pagamento das passagens pelo aplicativo por meio do smartphone, cada usuário terá um QR Code próprio que será lido por leitores dentro do ônibus sendo então abatido o valor da passagem da "conta" do usuário no aplicativo.
  • 5. Descreva a 2a. funcionalidade?
    • Compra de passes: Será possível comprar passes pelo aplicativo por meio de cartão ou transferência bancaria. Será possível também transferir passes de uma conta para outra. Ex: Compra de passes para o filho ou funcionários da empresa.
  • 5. Descreva a 3a. funcionalidade?
    • Rotas: Será possível verificar as rotas de cada linha de ônibus de acordo com o seu local e destino desejado.
  • 5. Descreva a 4a. funcionalidade?
    • Rastreamento: O usuário saberá exatamente onde o ônibus do horário atual se encontra e o tempo determinado de sua chegada ao seu local.
  • 5. Descreva a 5a. funcionalidade?
    • Horários: Tabela de horários fixas estabelecidas pela empresa com a estimativa de atraso.
  • 5. Descreva a 6a. funcionalidade?
    • Fluxo: Mostrará a aproximadamente quanto da capacidade do ônibus em circulação foi preenchida por meio da análise da localidade do ônibus e do smartphone do usuário que fez o pagamento da passagem naquele ônibus e horário.
  • 5. Descreva a 7a. funcionalidade?
    • Segurança: Parte colaborativa com os usuários onde é possível relatar incidentes e roubos nos pontos que serão computados para aviso da população indicando o nível de segurança daquele ponto.
  • 5. Descreva a 8a. funcionalidade?
    • Comunicação: Onde será informado notícias, avisos como novos pontos ou rotas e estrago de algum ônibus atrapalhando o horário de alguma rota e também será possivel fazer reclamações e informações de contato.

How much


  • 1. Quanto custa cada parte do sistema?
    • • O desenvolvimento do projeto não terá custo pois será feito pelos alunos.
    • • O objetivo para o desenvolvimento do aplicativo mobile é de não ter custo sendo projetado por alunos voluntários da universidade.
    • Caso contrários o preço de três desenvolvedores fica em torno de R$119.658,29 para 6 meses, mais três maquinas de aproximadamente R$19.497,00.
    • • Publicação no Android: R$128,00 (pós testes)
    • • Publicação no IOS:R$149,00 anual + R$505,00 (Criação da conta)(Pós testes)
    • • Banco de dados: Firebase (Inicialmente de graça)
    • • Leitor NFC – (De inicio somente para uma linha)
    • Opção para o primeiro teste: R$ 149,00 a unidade.
  • 2. Quanto deverá custar todo o sistema?
    • Com a parceria dos alunos para o desenvolvimento aproximadamente R$ 5.000,00
    • Sem a parceria, aproximadamente R$150.000,00
  • 3. Quantas pessoas deverão ser usadas (Equipe) ?
    • Inicialmente 5 pessoas sendo:
    • Gestor da informação: Igor
    • Programadores: 2 como parceria ou contratação
    • Designer: Paloma
    • Profissionais diversos do ramo de TI: 1 sendo parceiro ou contratado
  • 4. Quanto custa cada profissional?
    • O gestor e a designer não receberão no inicio por serem os criadores do projeto
    • Caso necessário a contratação de profissionais de TI no inicio do projeto foi feito uma pesquisa onde o salário médio desse profissional é de R$6.379,00
  • 5. Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?
    • A renda viria de uma pequena porcentagem em cada passagens em torno de 1,1% (Exemplo: Com um valor de R$4,5 seria R$0,05 (1,1%) de cada passagem). Outro modo de renda seria a abertura de espaços para anúncios pagos.


Canvas


Link: https://drive.google.com/file/d/1P6gA6xefx25MudEBOOfQ0QqCi16MIwGs/view?usp=sharing

Perguntas e Respostas

  • 1) É oferecido pela prefeitura? Pois ela detém a fonte de capitação da renda das passagens. Como seria cobrado?
    • Sim, seria feito juntamente com a prefeitura pois ela além de deter a capitação das passagens é proprietária de algumas empresas de ônibus que presta o serviço na cidade de Uberlândia.


  • 2) A ideia é que todos os passageiros tenham o aplicativo?
    • Isso seria o ideal, porém sabemos que não é possível, pelo menos agora. Atualmente a prefeitura tenta introduzir o uso de cartão para todos mas muitos ainda fazem o uso de dinheiro e temos os idosos que não pagam. Então como alternativa teremos um cartão para aqueles que não se adaptarem ao uso do smartphone que poderá ser recarregado como fazemos no celular atualmente, em qualquer estabelecimento credenciado, e termos o controle dos idosos também por esse cartão que não quiserem fazer o uso do smartphone.


  • 3) É sério o projeto?
    • Sim, é um projeto que vem sendo elaborado a um bom tempo, que foi discutido com alguns professores e que por meio desses debates notou-se a necessidade de um amadurecimento da ideia.


  • 4) Equipe de desenvolvimento, pensa em parcerias com alunos e como?
    • O ideal é a parceria com alunos para diminuir ao máximo os custos de desenvolvimento do aplicativo, sendo esses alunos novos parceiros da empresa.


  • 5) O aplicativo seria oferecido ao poder público, já que quem detém a fonte de arrecadação é a prefeitura e somente ela poderia reter o dinheiro das passagens?
    • Sim, a parceria é feita diretamente com a prefeitura.


  • 6) O usuário final vai saber que esta pagando o percentual?
    • Sim, gostaríamos de trabalhar com a maior transparência possível. Além do mais o contrato da prefeitura com a Bus caso fechado deve ser publicado nos devidos sites como é feito com todas as empresas de ônibus.



  • O pagamento por meio do app sairia mais caro do que pela carteirinha, já que é necessário que tenha a sua margem de lucro? Ou o consumidor final não seria afetado por isso?
    • Não é possível dar uma resposta assertiva a essa pergunta, primeiramente porque não foi feito um plano financeiro completo do projeto para saber se seria mais caro ou não e o valor cobrado pela passagem não depende somente do Bus mas da prefeitura e de outras empresas. Gostaríamos que não houvesse o aumento e que os parceiros envolvidos enxergasse a gama de benefícios para as empresas por meio de dados para a tomada de decisão e a diminuição de certos custos como a retirada funcionários para a recarga e criação de carteirinhas, a mudança para rotas melhores caso percebidas, um melhor controle entre outros benefícios.


  • NFC ou RFId? Chegaram a comparar estas tecnologias?
    • Sim, optamos pela NFC primeiramente porque o pagamento é feito somente em curta distância, ou seja dentro do ônibus, além de já estar integrado a maioria dos smartphones. Outro ponto é que o RFId necessita da energização das duas vertentes (tanto do leitor quanto da etiqueta ou chip) já o NFC não é necessário essa ação, o que faz ser funcional em smartphones.


DFD


  • Diagrama de contexto
    https://drive.google.com/file/d/1pd9CVv3ZGEFrZAy6DU-Dq5x1FEcBUGQ7/preview


  • Diagrama de fluxo de dados
     https://drive.google.com/file/d/1cnq26uPAxZLI88VAVHu8qWE1O62cGrv4/view?usp=sharing


DER

        Link: https://drive.google.com/file/d/1FvqN3MSWkpoKDE87pELRVK1nVwc8rOTS/view?usp=sharing

Orientação a objetos


Diagrama de Classes


   Link: https://drive.google.com/file/d/1xrmtS1dcrIbkzGN_OH7L9pVqnEO4oB17/view?usp=sharing

Diagrama de Casos de Uso


     Link:https://drive.google.com/file/d/17YcjPLGfAFoh0eCM-VDXtX55cRO6xKVt/view?usp=sharing

Especificação Funcional

Requisitos Funcionais

  1. CRUD de Novo Usuário
    1. Criar uma página para cada operação do CRUD;
    2. Verificar se o usuário tem permissão para realizar a operação;
    3. Verificar a senha do novo usuário;
    4. Verificar o e-mail do novo usuário;
    5. Atualizar as alterações realizadas no CRUD no banco de dados.
  2. Fazer Login
    1. Exibir página para inserção de dados;
    2. Receber informação de nome de usuário;
    3. Verificar no banco de dados se há um usuário com esse nome;
    4. Se não existir o nome de usuário, informar erro ao usuário;
    5. Se existir o usuário, receber a informação da senha;
    6. Verificar se a senha está correta;
    7. Se a senha estiver errada, informar erro ao usuário;
    8. Se a senha estiver correta efetuar o login do usuário.
  3. Comprar Passagem
    1. Efetuar login do usuário;
    2. Realizar a conferência de dados;
    3. Exibir a opção de quantas pasasgens o usuário deseja comprar;
    4. Escolhe a opção pagamento de conta;
    5. Obter dados bancários do usuário;
    6. Verificar se dados são reais;
    7. verificar possibilidade de transação;
    8. Efetuar compra;
    9. Disponibilizar os créditos na conta do usuário;
    10. Finalizar pagamento.
  4. Consultar Horários
    1. Receber os termos da busca de localização atual e destino;
    2. Realizar a busca no banco de dados (SELECT);
    3. Rastrear possíveis ônibus;
    4. Filtrar os resultados por localidade, menor tempo, menor caminho, menos paradas;
    5. Permitir múltiplos filtros simultaneamente;
    6. Exibir o resultado da pesquisa de horários na página.
  5. Buscar Rotas
    1. Receber os termos da busca de localização atual e destino;
    2. Realizar a busca no banco de dados (SELECT);
    3. Rastrear possíveis ônibus;
    4. Filtrar os resultados por localidade, menor tempo, menor caminho, menos paradas;
    5. Permitir múltiplos filtros simultaneamente;
    6. Exibir o resultado da pesquisa de rotas em uma página;
    7. Exibir ônibus;
    8. Exibir botão de "Ir" na pesquisa de rotas;
    9. Ao clicar no botão, enviar uma solicitação para o banco de dados e fazer cálculos de rota;
    10. Calcular tempo;
    11. O banco de dados aceitará a solicitação e fará os cálculos;
    12. Exibir ícone de "Carregando Rotas";
    13. Exibir rota na tela;
    14. Exibir o tempo até chegada ao destino.

Requisitos Não Funcionais

  1. Ter um aplicativo para celular.
  2. Ser acessado em dispositivos móveis.
  3. Ter versão em Português e em inglês.
  4. Ter o aplicativo desenvolvido para dispositivos Android.
  5. Ter o aplicativo desenvolvido para dispositivos iOs.
  6. Resguardar totalmente os dados cadastrais de usuários.
  7. Não ter o sistema prejudicado em caso de falta de energia.
  8. Ser capaz de avisar os usuários em caso de mal funcionamento em algum dos sensores.
  9. Ser acessado em dispositivos móveis.
  10. Ter um tempo de resposta de no máximo 15 seg em 90 % dos casos.
  11. O aplicativo deverá funcionar em um smartphone ou tablet com os sistemas operacionais Android 4.0+ ou iOS7+.
  12. O tempo de resposta para a busca de uma rota deverá ser de no máximo 5 segundos;
  13. O usuário deverá conseguir realizar uma tarefa em no máximo 4 ações;
  14. Possibilitar o usuário utilizar o sistema em modo off-line;
  15. O aplicativo deverá se conectar com a internet ao menos uma vez por semana para otimizar as previsões de tempos de chegada.
  16. O aplicativo deverá se conectar com a internet ao menos uma vez por semana para evitar equívocos de previsão;
  17. Margem de erro de no máximo 5 minutos para a previsão do horário de chegada do ônibus em determinado ponto informado para o usuário deverá manter uma.

Alinhamento


  • Pitch: Ok
  • Mockup: Ok
  • DFD: Ok
  • DER: Ok
  • Seminário: Ok
  • DOO: DC e DCU
  • Trabalho final: 5W2H, RFs e RNFs
    • RFs: 5 dos definidos no DCU => Especificação Funcional