|[Página Inicial](home)| |---| # Requisitos Aqui estão detalhados todos os artefatos de requisitos do projeto DoeVida. ## User Stories --- ### **US1 - Login Facebook** **Eu como** usuário não autenticado
**Gostaria de** me autenticar usando minha conta do facebook no app
**Para** poder criar campanhas
#### **Detalhes de implementação:** Os dados retornados do Facebook devem ser persistidos no banco de dados
Definir quais desses dados serão salvos
#### **Critérios de aceite:** *CA1* - Dado que o usuário está na tela inicial - Quando ele não está logado e clica em criar campanha - Então deve ser solicitado autenticação *CA2* - Dado que o usuário se autenticou - Quando está na tela inicial - Então aparece a mensagem no header "Olá " --- ### **US2 - Criação de Campanha** **Eu como** usuário autenticado
**Gostaria de** cadastrar uma campanha de doação de sangue
**Para** compartilhá-la nas redes sociais
(Nome, destinatário, Tipo sanguíneo, Cidade, Local, Meta (qnt de doadores)) #### **Critérios de aceite** *CA1* - Dado que o usuário está autenticado na tela inicial - Quando clicar em "preciso de doação" - Então deve ser redirecionado para o formulário de cadastro de campanha *CA2* - Dado que o usuário está na tela inicial e não está autenticado - Quando clicar em "preciso de doação" - Então deve ser solicitado a autenticação *CA3* - Dado que o usuário está no formulário de cadastro de campanha - Quando for informar o tipo sanguíneo - Então deve ser exibida uma lista com valores pré-definidos para escolha *CA4* - Dado que o usuário está no formulário de cadastro de campanha - Quando for informar a cidade - Então deve ser exibida uma lista com valores pré-definidos para escolha *CA5* - Dado que o usuário está no formulário de cadastro de campanha - Quando selecionar a cidade - Então deve ser disponibilizado os locais de doação na cidade selecionada no campo "local de doação" *CA6* - Dado que o usuário está no formulário de cadastro de campanha - Quando submeter o formulário - Então as informações fornecidadas devem ser persistidas no banco de dados *CA7* - Dado que o usuário está no formulário de cadastro de campanha - Quando submeter o formulário - Então deve ser exibido o card com as informações da campanha cadastrada com um botão de compartilhamento. --- ### **US3 - Compartilhamento de campanha no Facebook** **Eu como** usuário autenticado
**Gostaria de** compartilhar a minha campanha de doação no Facebook
**Para** atrair doadores
#### **Critérios de aceite** *CA1* - Dado que o usuário está visualizando o card da campanha - Quando clicar em compartilhar - Então deve ser redirecionado para uma tela com as opções de redes sociais onde será compartilhado *CA2* - Dado que estou na tela com as opções de redes sociais - Quando clicar na opção "Facebook" - Então o card deve ser compartilhado no Facebook --- ### **US4 - Compartilhamento de campanha no Facebook** **Eu como** usuário
**Gostaria de** visualizar todas as campanhas
**Para** saber quais campanhas posso participar
#### **Critérios de aceite** *CA1* - Dado que usuário está na tela que lista as campanhas - Quando clicar no filtro "campanhas em andamento" - Então deve ser listada todas campanhas em andamento *CA1* - Dado que usuário está na tela que lista as campanhas - Quando clicar no filtro "campanhas finalizadas" - Então deve ser listada todas campanhas em finalizadas --- ### **US5 - Editar campanha** **Eu como** usuário autenticado
**Gostaria de** editar as minhas campanhas
**Para** poder atualizar as informações delas ou seus status
#### **Critérios de aceite** *CA1* - Dado que o usuário está na lista de campanhas - Quando clicar em uma delas - Então deve ser disponibilizado a possibilidade de edição apenas se a campanha foi cadastrada por ele *CA2* - Dado que o usuário está no formulário de edição - Quando submeter o formulário - Então as informações devem ser persistidas no banco de dados *CA3* - Dado que o usuário está no formulário de edição - Quando submeter o formulário - Então deve retornar uma mensagem de feedback positivo se a campanha foi atualizada com sucesso *CA4* - Dado que o usuário está no formulário de edição - Quando submeter o formulário - Então deve retornar uma mensagem de feedback negativo se a campanha não foi atualizada com sucesso --- ### **US6 - Doar** **Eu como** usuário
**Gostaria de** visualizar os locais de doação
**Para** escolher por local a campanha da qual vou participar
#### **Critérios de aceite** *CA1* - Dado que o usuário está na tela inicial - Quando clicar em "Quero doar!" - Então deve ser redirecionado para uma tela que contém um mapa com os locais de doação destacados no mapa *CA2* - Dado que um local não possui campanhas em andamento - Quando o usuário está na tela do mapa - Então esses locais não devem ser exibidos *CA3* - Dado que o usuário está na tela do mapa - Quando o usuário cliacar em "Listar" - Então deve ser exibido a lista dos locais de doação *CA4* - Dado que o usuário está na tela de lista de locais - Quando o usuário clicar em "Mapa" - Então dever ser exibido o mapa com os locais de doação *CA5* - Dado que o usuário está na tela de lista de locais - Quando o usuário clicar em um local - Então dever ser exibido as campanhas em andamento naquele local *CA6* - Dado que o usuário está na tela de campanhas em andamento em um local - Quando o usuário clicar em uma camapnha - Então dever ser exibido os detalhes de uma campanha --- ### **US7 - Registrar doação** **Eu como** usuário
**Gostaria de** registrar a minha doação
**Para** possuir esta informação de forma digital
#### **Critérios de aceite** *CA1* - Dado que usuário está visualizando os detalhes de uma campanha - Quando clicar em "Registrar doação" - Então o usuário é redirecionado para um formulário onde o campo nome está preenchido, o campo data está com preenchido com a data atual. *CA2* - Dado que o usuário não está autenticado - Quando clicar em "Registrar doação" - Então deve ser solicitado a autenticação ao usuário *CA3* - Dado que o usuário está no formulário de registro de doação - Quando submeter o formulário - Então deve ser retornado uma mensagem de feedback positivo ou negativo