Home | Escopo e Cronograma | Processo | Design/Mockups | Configuração | Arquitetura | Código | BD | Qualidade | Utilização |
---|
Escopo do Projeto
Descrição
Esta seção é dedicada a apresentar o escopo do projeto e os documentos referentes ao mesmo
Sumário
Mapeamento de Histórias de Usuário
Usuário | # | Nome | Descrição | Critérios de aceite | Given / When / Then |
---|---|---|---|---|---|
Todos | 1 | Login | Eu como usuário já cadastrado Desejo logar no aplicativo Para que eu possa utilizar o aplicativo |
- Ao abrir o aplicativo deve ser possível encontrar a tela de login. - Ao inserir dados cadastrados deve realizar o login. - Ao fornecer um email não cadastrado ou uma senha incorreta, deve impedir de realizar login e dispor um feedback informando do ocorrido. - Deve haver uma forma de seleção de papel do usuário (cliente, parceiro ou piloto): Uma tela antes da tela de login ou uma caixa de seleção na mesma tela. - O login será associado apenas a um perfil - Deve haver botão que redireciona para a tela de cadastro. |
DADO QUE eu baixe o aplicativo QUANDO eu abro ele pela primeira vez ENTÃO eu vejo a tela de login DADO QUE eu escolha logar como cliente/parceiro/piloto QUANDO eu forneço um email inválido (não cadastrado) OU uma senha incorreta ENTÃO o aplicativo não permite que eu realize o login E o aplicativo mostra uma mensagem mostrando o ocorrido DADO QUE eu escolha logar como cliente/parceiro/piloto QUANDO eu visualizo a tela de login ENTÃO eu posso clicar em "cadastrar" e ser redirecionado para a tela de cadastro |
Todos | 2 | Logout | Eu como usuário logado Desejo deslogar do meu perfil Para que eu possa logar com outra conta |
- Após logado, deve ser permitido sair da conta atual. | DADO QUE eu esteja logado no aplicativo QUANDO clico/toco o botão Sair ENTÃO a sessão será finalizada e o aplicativo será redirecionado para a tela de login/tela inicial |
Todos | 3 | Visualizar perfil | Eu como usuário cadastrado Desejo visualizar o meu perfil Para que eu possa verificar os meus dados no aplicativo |
- O usuário deve ter acesso à visualização do perfil em que está logado. - Não deve ser possível visualizar o perfil de outro usuário. - Os campos a serem visualizados dependem do papel do usuário (cliente, parceiro ou piloto). |
DADO QUE eu esteja logado no aplicativo QUANDO abro a tela do meu perfil ENTÃO deve ser possível eu visualizar meus dados |
Todos | 4 | Editar perfil | Eu como usuário cadastrado Desejo editar meu perfil Para que eu possa atualizar meus dados constantemente. |
- O usuário deve ter acesso à edição do perfil em que está logado. - Não deve ser possível editar o perfil de outro usuário. - Deve haver um botão para salvar as alterações. - Ao salvar as alterações, o aplicativo deve voltar para a tela de visualização do perfil. - Os campos a serem visualizados dependem do papel do usuário (cliente, parceiro ou piloto). |
DADO QUE eu esteja logado no aplicativo QUANDO abro a tela de visualização do meu perfil ENTÃO deve haver uma forma de habilitar a edição dos meus dados DADO QUE eu esteja editando o meu perfil QUANDO terminar as alterações ENTÃO deve haver uma forma de salvar as mudanças que foram feitas DADO QUE eu esteja editando o meu perfil QUANDO salvar as alterações ENTÃO deve ser possível ver meu perfil com os dados atualizados. |
Piloto | 5 | Cadastrar piloto | Eu como piloto Desejo me cadastrar na plataforma Para que eu possa supervisionar voos de drones. |
- Ao inserir dados válidos (Nome, CPF, senha, email, cep, endereço, certificação/licença para operar drones(imagem)) seja possível se cadastrar. - Deve haver um botão que direciona para a tela de login. - Deve impedir de cadastrar caso e-mail esteja em formato inválido. - Deve impedir de cadastrar caso e-mail já esteja em uso. |
|
Piloto | 6 | Aceitar/rejeitar solicitações de corrida (supervisão de vôo) | Eu como piloto Desejo aceitar ou rejeitar solicitações de corrida Para que eu possa iniciar a supervisão de um voo, caso aceite. |
- Dado que estou disponível para aceitar solicitações de corrida, devo receber solicitações de pedidos marcados com o status “disponível para coleta” pelo parceiro. - A solicitação de corrida deve ser exibida como uma notificação/popup/modal na tela. - Deve haver uma opção para aceitar e uma para rejeitar a corrida. - Devo saber o endereço de partida e de chegada antes de aceitar ou rejeitar a corrida. |
|
Piloto | 7 | Informar disponibilidade para aceitar solicitações de corrida | Eu como piloto Desejo informar que estou disponível ou não para receber solicitações de corrida. Para que eu possa desativar as solicitações nos momentos em que não estiver atuando. |
- Dado que estou logado, devo poder me colocar disponível para receber solicitações de corrida já na tela inicial. - Dado que estou logado e aceitando pedidos devo poder me colocar indisponível para receber solicitações de corrida. |
|
Piloto | 8 | Corrida (supervisionar vôo) | Eu como piloto Desejo supervisionar o voo Para que eu possa acompanhar a coleta e a entrega de um produto pelo drone |
- Deve ser exibida a localização do drone em um mapa - O drone vai ser simulado, não havendo integração ou qualquer forma de controle real pelo aplicativo - Deve haver um botão de confirmar coleta (para mudar o status de “em rota de coleta” para ”em rota de entrega”) e um de confirmar entrega (para mudar o status de “em rota de entrega” para “entregue”). O botão a ser exibido depende do status. |
|
Piloto | 9 | Histórico de corridas (lista) | Eu como piloto Desejo visualizar o histórico de meus voos Para que eu possa visualizar os voos que supervisionei |
- A lista deve estar em ordem cronológica, do mais recente ao mais antigo - As solicitações devem estar classificadas pelo status (em rota de coleta, em rota de entrega, entregue) |
|
Piloto | 10 | Histórico de corridas (detalhe) | Eu como piloto Desejo visualizar os detalhes dos voos no histórico Para que eu possa visualizar os detalhes de um voo |
- A tela de detalhes deve conter: Data do pedido, status, itens do pedido, local de partida, endereço de coleta, endereço de entrega | |
Cliente | 11 | Cadastrar cliente | Eu como cliente não cadastrado Desejo me cadastrar no aplicativo Para que eu possa comprar um produto que preciso no momento. |
- Ao inserir dados válidos (Nome, CPF, senha, email, cep, endereço) deve ser possível me cadastrar. - Deve haver um botão que direciona para a tela de login. - Deve impedir de cadastrar caso e-mail esteja em formato inválido. - Deve impedir de cadastrar caso e-mail já esteja em uso. |
DADO QUE eu escolha me cadastrar como cliente QUANDO eu forneço um email inválido ENTÃO o aplicativo não permite que eu me cadastre E o aplicativo apresenta uma mensagem avisando-me do ocorrido DADO QUE eu escolha me cadastrar como cliente QUANDO eu visualizo a tela de cadastro ENTÃO eu posso clicar em "login" e ser redirecionado para a tela de login DADO QUE eu escolha me cadastrar como cliente QUANDO eu forneço um email já em uso ENTÃO o aplicativo não permite que eu me cadastre E o aplicativo apresenta uma mensagem avisando-me do ocorrido |
Cliente | 12 | Visualizar lista de produtos/parceiros (página inicial) | Eu como usuário após fazer meu login Desejo visualizar os produtos que estão disponíveis Para que eu possa comprar no aplicativo. |
- Ao fazer login, redirecionar para a listagem de parceiros. - Cada parceiro deve apresentar nome, foto, categoria e distância. - Ao clicar em um parceiro, redirecionar para a listagem de produtos deste parceiro. - Deve haver uma listagem vertical de produtos cadastrados. - Cada produto deve apresentar nome, foto, peso, descrição e preço. - Caso não haja parceiros ou produtos cadastrados, deve-se mostrar uma mensagem na tela informando isto. - Parceiros ou produtos indisponíveis aparecem desabilitados. - Ao clicar em um produto, deve ser redirecionado para o detalhamento do mesmo. |
DADO QUE eu entre no aplicativo QUANDO eu faço login ENTÃO eu sou redirecionado para a tela de listagem de produtos DADO QUE eu seja um cliente logado QUANDO eu estiver na tela de listagem de produtos ENTÃO devo ver uma listagem vertical de produtos cadastrados DADO QUE eu esteja na tela de listagem de produtos QUANDO eu checo os produtos disponíveis na lista ENTÃO eu vejo que cada um deles possui o nome, uma foto, o peso, uma descrição, distância e o preço DADO QUE eu esteja na tela de listagem de produtos QUANDO não há produtos disponíveis ENTÃO eu vejo uma mensagem na tela informando que não há produtos disponíveis DADO QUE eu esteja na tela de listagem de produtos QUANDO eu clico em um produto ENTÃO eu sou redirecionado para o detalhamento deste produto |
Cliente | 13 | Pesquisa de parceiros/produtos | Eu como cliente Desejo pesquisar por parceiros ou produtos no app Para que eu possa localizar com mais facilidade os parceiros e produtos que desejo. |
- Deve haver uma caixa de pesquisa na tela inicial - Ao digitar na caixa de pesquisa, devem aparecer resultados tanto de parceiros quanto produtos |
|
Cliente | 14 | Visualizar detalhe de produto | Eu como cliente logado Gostaria de ter mais informações sobre o produto que estou interessado. Para que eu possa ter certeza de que estou adquirindo um produto que irá atender minha necessidade. |
- Deve ser possível visualizar todas as informações disponíveis sobre um produto. | DADO QUE eu seja um cliente logado QUANDO eu visualizo um produto ENTÃO eu posso ver todas as informações disponíveis sobre esse produto E eu posso ver um botão para adicionar o produto ao carrinho |
Cliente | 15 | Adicionar produto ao carrinho | Eu como cliente logado Desejo adicionar um produto ao carrinho Para que eu possa adquirir mais de um produto com apenas uma compra. |
- Deve haver um botão para adicionar o produto ao carrinho na tela de detalhes do produto. - Ao adicionar um produto ao carrinho, o aplicativo deve dar um feedback ao cliente indicando se a ação foi concluída com sucesso ou não. - Ao adicionar um produto que já esteja no carrinho, dispor de um feedback e somar a quantidade já existente com a nova quantidade adicionada. - Ao ultrapassar o peso limite de compras o aplicativo deve impedir de adicionar este produto ao carrinho e dispor de um feedback. |
DADO QUE eu esteja visualizando um produto QUANDO eu clico em 'Adicionar ao Carrinho' ENTÃO o aplicativo me dá um feedback visual indicando que o produto foi adicionado DADO QUE eu já tenha adicionado este produto ao carrinho QUANDO eu clico em 'Adicionar ao Carrinho' novamente ENTÃO o aplicativo me dá um feedback visual indicando que o produto foi adicionado E a quantidade do produto no carrinho deve ser incrementada em 1 DADO QUE eu esteja visualizando um produto QUANDO eu clico em 'Adicionar ao Carrinho' E o peso do produto somado aos demais itens do meu carrinho ultrapassa o peso suportado ENTÃO o aplicativo não permite que eu adicione este produto ao carrinho E o aplicativo mostra um feedback visual do ocorrido |
Cliente | 16 | Interagir com o carrinho | Eu como cliente Gostaria de visualizar e editar os itens do meu carrinho Para que eu possa finalizar a compra. |
- Deve haver um botão para aumentar e diminuir a quantidade de cada produto no carrinho pelo cliente. - Deve ser exibido o valor total da compra. - Deve ser exibido o peso total da compra. - Deve ser exibido o valor do frete. O valor do frete é fixo, a definir |
DADO QUE eu esteja utilizando o aplicativo QUANDO eu desejar checar os itens em meu carrinho ENTÃO eu devo possuir um menu de fácil acesso para isso DADO QUE eu esteja utilizando o aplicativo QUANDO eu desejar finalizar a compra ENTÃO eu devo possuir um botão que me permita fazer isso DADO QUE eu esteja visualizando os itens em meu carrinho QUANDO eu desejar saber qual o valor total da minha compra ENTÃO eu devo ter esta informação na tela, com o valor do frete DADO QUE eu esteja visualizando os itens em meu carrinho QUANDO eu remover um item ENTÃO o valor deve ser atualizado DADO QUE eu esteja visualizando os itens em meu carrinho QUANDO eu incremento ou decremento a quantidade de um item já adicionado E essa quantidade não ultrapassa o limite de peso estabelecido ENTÃO o valor deve ser atualizado DADO QUE eu esteja visualizando os itens em meu carrinho QUANDO eu incremento a quantidade de um item já adicionado E essa quantidade ultrapassa o limite de peso estabelecido ENTÃO o aplicativo deve impedir que esse item seja incrementado E o aplicativo deve mostrar um feedback visual para o usuário detalhando o ocorrido DADO QUE eu esteja visualizando os itens em meu carrinho QUANDO eu decremento a quantidade de um item já adicionado E essa quantidade chega a 0 (zero) ENTÃO o item deve ser removido do carrinho |
Cliente | 17 | Fazer checkout (comprar) | Eu como cliente Gostaria de finalizar a compra Para que eu possa acompanhar e receber meu pedido. |
DADO QUE eu esteja visualizando meu carrinho QUANDO não há itens ENTÃO o botão de checkout deve estar desabilitado DADO QUE eu esteja visualizando meu carrinho QUANDO há itens ENTÃO o botão de checkout deve estar habilitado DADO QUE eu esteja visualizando meu carrinho QUANDO eu clico no botão de checkout E há algum problema com a compra ENTÃO o aplicativo deve dar feedback visual sobre o ocorrido E os itens devem permanecer no carrinho DADO QUE eu esteja visualizando meu carrinho QUANDO eu clico no botão de checkout E não há nenhum problema com a compra ENTÃO o aplicativo deve remover todos itens do carrinho E eu devo ser redirecionado para a tela de pagamento deste pedido |
|
Cliente | 18 | Tela de pagamento | Eu como cliente Desejo visualizar a tela de pagamento Para que possa efetuar uma compra |
- A tela não terá funcionalidade, sendo apenas visual. | |
Cliente | 19 | Acompanhar pedido | Eu como cliente Gostaria de acompanhar meu pedido Para que eu saiba quando ele estiver chegando. |
DADO QUE eu esteja visualizando meu pedido em aberto QUANDO ele ainda não foi confirmado pelo parceiro ENTÃO devo ver uma tela indicando que o pedido está aguardando confirmação DADO QUE eu esteja visualizando meu pedido em aberto QUANDO ele for confirmado pelo parceiro E estiver aguardando ser buscado por um drone ENTÃO devo ver uma tela indicando que o pedido está aguardando retirada pelo drone DADO QUE eu esteja visualizando meu pedido confirmado QUANDO ele estiver a caminho (pelo drone) ENTÃO devo ver uma tela indicando que o pedido está a caminho E devo ver um mapa indicando a localização atual do drone com meu pedido |
|
Cliente | 20 | Notificações sobre status da entrega | Eu como cliente aguardando uma entrega Gostaria de receber notificações sobre o status do meu pedido Para que eu possa me manter informado e tomar ações rápidas sobre. |
- Dada a confirmação do pedido pelo parceiro, deve notificar o cliente que o pedido foi confirmado e logo sairá para entrega. - Dado que o pedido saiu para entrega deve notificar o cliente que o pedido está a caminho. |
DADO QUE eu seja um cliente com um pedido aguardando confirmação QUANDO o parceiro confirma o pedido ENTÃO devo ser notificado que meu pedido foi confirmado e logo sairá para entrega DADO QUE eu seja um cliente com um pedido confirmado QUANDO o pedido sair para entrega ENTÃO devo ser notificado que meu pedido está a caminho |
Cliente | 21 | Histórico de pedidos (lista) | Eu como cliente cadastrado Desejo visualizar o histórico de pedidos Para que eu possa acompanhar os meus pedidos em andamento e verificar os meus pedidos anteriores |
- Os pedidos devem estar ordenados do mais recente para o mais antigo. - Os pedidos devem estar categorizados conforme o status (pendente, confirmado, cancelado, em rota de entrega, entregue). |
DADO QUE eu esteja logado QUANDO eu clico no botão histórico ENTÃO é mostrado uma lista ordenada com o histórico de pedidos |
Cliente | 22 | Histórico de pedidos (detalhe) | Eu como cliente cadastrado Desejo visualizar o detalhe de um pedido Para que eu possa analisar com mais detalhes um pedido que foi feito. |
- O cliente deve ser capaz de ver o detalhe de um pedido. - A tela de detalhe deve conter: Data do pedido, status (pendente, confirmado, cancelado, em rota de entrega, entregue), itens do pedido, valor, endereço de destino. |
|
Parceiro | 23 | Cadastrar Parceiro | Eu como parceiro não cadastrado Desejo me cadastrar na plataforma Apus Drones Para que eu possa vender meus produtos pelo aplicativo |
- Deve haver botão que direciona para a tela de login. - Deve impedir de cadastrar caso e-mail esteja em formato inválido. - Deve impedir de cadastrar caso e-mail já esteja em uso. |
DADO QUE eu escolha me cadastrar como parceiro QUANDO eu forneço um email inválido ENTÃO o aplicativo não permite que eu me cadastre E o aplicativo apresenta uma mensagem avisando-me do ocorrido DADO QUE eu escolha me cadastrar como parceiro QUANDO eu visualizo a tela de cadastro ENTÃO eu posso clicar em "login" e ser redirecionado para a tela de login DADO QUE eu escolha me cadastrar como parceiro QUANDO eu forneço um email já em uso ENTÃO o aplicativo não permite que eu me cadastre E o aplicativo apresenta uma mensagem avisando-me do ocorrido |
Parceiro | 24 | CRUD de produtos | Eu como parceiro logado Desejo cadastrar, editar, deletar e visualizar produtos Para que eu possa vendê-lo |
- Atributos do produto: nome, foto, peso, descrição breve, preço, quantidade, ativado/desativado - (D) Um produto só pode ser excluído definitivamente se não for vendido pelo menos 1 vez - (R) Deve haver uma listagem vertical dos produtos cadastrados, em cards - (U) Deve ser possível ativar/desativar um produto |
|
Parceiro | 25 | Solicitação de compra | Eu como parceiro cadastrado Desejo receber notificações quando meus produtos forem comprados Para que eu possa começar o preparo dos mesmos. |
- Quando o cliente solicitar um produto, deve ser exibido uma notificação ao parceiro. - Parceiro deve ter que selecionar que recebeu a notificação. - Se o parceiro não receber a notificação em X tempo, solicitação será cancelada. - Parceiro pode escolher entre aceitar ou rejeitar pedido. |
DADO QUE Sou um parceiro E estou logado no aplicativo QUANDO algum cliente compra algum produto meu ENTÃO recebo uma notificação de solicitação de compra |
Parceiro | 26 | Confirmação do pedido | Eu como parceiro cadastrado Desejo confirmar ou rejeitar o pedido solicitado Para que eu possa começar o preparo dos mesmos. |
- Deve ser exibida uma tela com os detalhes do pedido aceito/confirmado. - Deve haver um botão para terminar o preparo/marcar como disponível para coleta. |
DADO QUE recebi uma solicitação de compra QUANDO não atuar sobre a notificação em tempo x ENTÃO a solicitação será cancelada DADO QUE recebi uma solicitação de compra QUANDO confirmar a solicitação do pedido ENTÃO a solicitação terá andamento E começarei a preparar o pedido |
Parceiro | 27 | Alteração de status de pedido | Eu como parceiro cadastrado Desejo alterar o status do pedido em andamento Para que eu possa atualizar o piloto do que está acontecendo no momento |
- O parceiro deve poder atualizar o status do pedido aberto. - O pedido não pode retroceder em seu status. |
DADO QUE tenho um pedido em status de preparo E finalizei o preparo do pedido QUANDO altero o status do pedido para pronto para coleta ENTÃO o pedido deve ter seu status para "em rota de coleta” |
Parceiro | 28 | Histórico de pedidos (lista) | Eu como parceiro cadastrado Desejo visualizar o histórico de pedidos Para que eu possa acompanhar os pedidos em andamento, ter uma ideia de quantos clientes foram atendidos e quais horários houve maior quantidade de pedidos |
- O parceiro deve ser capaz de ver histórico de pedidos - Os pedidos devem estar ordenados do mais recente para o mais antigo - Os pedidos devem estar categorizados conforme o status (recebidos, aceitos, rejeitados, aguardando coleta, em coleta, em entrega, entregue) |
DADO QUE eu esteja logado QUANDO eu clico no botão histórico ENTÃO é mostrado uma lista ordenada com o histórico de pedidos |
Parceiro | 29 | Histórico de pedidos (detalhe) | Eu como parceiro cadastrado Desejo visualizar o detalhe de um pedido Para que eu possa analisar com mais detalhes um pedido |
- O parceiro deve ser capaz de ver o detalhe de um pedido - A tela de detalhe deve conter: Data do pedido, status (andamento/entregue), itens do pedido, valor, endereço destino. |
DADO QUE eu esteja no histórico de pedido QUANDO eu clicar em um item da lista ENTÃO sou redirecionado para o detalhe do pedido DADO QUE exista um pedido em andamento QUANDO eu clicar neste pedido ENTÃO sou redirecionado para o detalhe do pedido |
Estrutura Analítica do Projeto
TBD
Cronograma
Sprint 0 (15/03 - 24/03)
Escopo
Gerenciamento de Projeto
TBD
Design
TBD
Configuração de Ambiente
TBD
Dúvidas
TBD
Apresentação
TBD
Retropectiva
TBD
Itens de Ação
TBD
Sprint 1 (29/03 - 14/04)
Escopo
TBD
Apresentação
TBD
Retropectiva
TBD
Itens de Ação
TBD
Sprint 2 (19/04 - 12/05)
Escopo
TBD
Apresentação
TBD
Retropectiva
TBD
Itens de Ação
TBD
Sprint 3 (17/05 - 02/06)
Escopo
TBD
Apresentação
TBD
Retropectiva
TBD
Itens de Ação
TBD
Sprint 4 (07/06 - 23/06)
Escopo
TBD
Apresentação
TBD
Retropectiva
TBD