mirror of
https://github.com/welton89/RRBEC.git
synced 2026-04-05 13:35:42 +00:00
doc: first docs
This commit is contained in:
32
doc/App Cliente/App Cliente - Visão Geral.md
Normal file
32
doc/App Cliente/App Cliente - Visão Geral.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# BarApp - Visão Geral
|
||||
|
||||
O **BarApp** é um aplicativo mobile desenvolvido para clientes de bares, com o objetivo de modernizar e otimizar a experiência de consumo e interação dentro do estabelecimento. Ele oferece uma gama de funcionalidades que permitem ao usuário ter maior controle sobre seus gastos, acesso rápido a produtos e eventos, e uma forma inovadora de interagir com o bar.
|
||||
|
||||
## Principais Funcionalidades:
|
||||
|
||||
- **Cardápio Digital:** Visualize o cardápio completo com detalhes dos produtos.
|
||||
|
||||
- **Compra e Gestão de Tickets:** Adquira tickets de produtos diretamente pelo app, armazene-os em uma carteira digital e utilize-os no balcão ou com o garçom.
|
||||
|
||||
- **Transferência de Tickets:** Compartilhe tickets com amigos através de QR Codes.
|
||||
|
||||
- **Venda de Ingressos:** Compre ingressos para eventos exclusivos do bar.
|
||||
|
||||
- **Karaokê:** Acompanhe a fila de cantores do karaokê em tempo real.
|
||||
|
||||
- **Comanda Digital:** Consulte sua comanda de consumo e realize pagamentos (total ou parcial) via Pix, crédito ou débito, com a opção de cadastrar cartões.
|
||||
|
||||
- **Login Social:** Facilidade de acesso via conta Google.
|
||||
|
||||
|
||||
## Documentos Relacionados:
|
||||
|
||||
- [[Requisitos - Aplicativo Cliente]]
|
||||
|
||||
- [[Casos de Uso - Aplicativo Cliente]]
|
||||
|
||||
- [[Histórias de Usuário - Aplicativo Cliente]]
|
||||
|
||||
- [[Modelagem de Banco de Dados]]
|
||||
|
||||
- [[Visão Geral do Projeto]]
|
||||
336
doc/App Cliente/Casos de Uso - Aplicativo Cliente.md
Normal file
336
doc/App Cliente/Casos de Uso - Aplicativo Cliente.md
Normal file
@@ -0,0 +1,336 @@
|
||||
# Casos de Uso do Aplicativo BarApp
|
||||
|
||||
Este documento descreve os principais casos de uso do aplicativo BarApp, detalhando as interações entre os atores (usuários) e o sistema.
|
||||
|
||||
## Atores
|
||||
|
||||
- **Usuário:** Cliente do bar que utiliza o aplicativo.
|
||||
|
||||
- **Garçom/Atendente:** Funcionário do bar que interage com o aplicativo para validar tickets/comandas.
|
||||
|
||||
- **Sistema de Pagamento:** Serviço externo responsável por processar transações financeiras.
|
||||
|
||||
- **Sistema de Autenticação Social (Google):** Serviço externo para autenticação via conta Google.
|
||||
|
||||
|
||||
## Casos de Uso
|
||||
|
||||
### 1. Gerenciamento de Usuários
|
||||
|
||||
#### CU001: Cadastrar Usuário
|
||||
|
||||
- **Nome:** Cadastrar Usuário
|
||||
|
||||
- **Ator:** Usuário
|
||||
|
||||
- **Descrição:** Permite que um novo usuário crie uma conta no aplicativo.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário acessa a tela de cadastro.
|
||||
|
||||
2. Usuário preenche os campos obrigatórios (nome, e-mail, senha).
|
||||
|
||||
3. Sistema valida os dados.
|
||||
|
||||
4. Sistema cria a conta do usuário e o autentica.
|
||||
|
||||
|
||||
#### CU002: Alterar Senha
|
||||
|
||||
- **Nome:** Alterar Senha
|
||||
|
||||
- **Ator:** Usuário
|
||||
|
||||
- **Descrição:** Permite que um usuário autenticado modifique sua senha de acesso.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário acessa a tela de alteração de senha.
|
||||
|
||||
2. Usuário informa a senha atual e a nova senha (duas vezes para confirmação).
|
||||
|
||||
3. Sistema valida a senha atual e a nova senha.
|
||||
|
||||
4. Sistema atualiza a senha do usuário.
|
||||
|
||||
|
||||
#### CU003: Realizar Login Social (Google)
|
||||
|
||||
- **Nome:** Realizar Login Social (Google)
|
||||
|
||||
- **Ator:** Usuário, Sistema de Autenticação Social (Google)
|
||||
|
||||
- **Descrição:** Permite que o usuário faça login usando sua conta Google.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário seleciona a opção "Login com Google".
|
||||
|
||||
2. Sistema redireciona para a tela de autenticação do Google.
|
||||
|
||||
3. Usuário autentica-se com sua conta Google.
|
||||
|
||||
4. Sistema de Autenticação Social retorna os dados do usuário para o BarApp.
|
||||
|
||||
5. BarApp cria ou vincula a conta do usuário e o autentica.
|
||||
|
||||
|
||||
### 2. Cardápio e Tickets
|
||||
|
||||
#### CU004: Visualizar Cardápio
|
||||
|
||||
- **Nome:** Visualizar Cardápio
|
||||
|
||||
- **Ator:** Usuário
|
||||
|
||||
- **Descrição:** Permite que o usuário navegue pelos produtos disponíveis no bar.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário acessa a tela do cardápio.
|
||||
|
||||
2. Sistema exibe a lista de produtos com nome, preço, descrição e imagem.
|
||||
|
||||
|
||||
#### CU005: Adicionar Ticket à Cesta
|
||||
|
||||
- **Nome:** Adicionar Ticket à Cesta
|
||||
|
||||
- **Ator:** Usuário
|
||||
|
||||
- **Descrição:** Permite que o usuário selecione um produto e adicione tickets correspondentes à sua cesta de compras.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário visualiza o cardápio.
|
||||
|
||||
2. Usuário seleciona um produto e a quantidade de tickets desejada.
|
||||
|
||||
3. Sistema adiciona os tickets à cesta de compras do usuário.
|
||||
|
||||
|
||||
#### CU006: Visualizar Cesta de Compras
|
||||
|
||||
- **Nome:** Visualizar Cesta de Compras
|
||||
|
||||
- **Ator:** Usuário
|
||||
|
||||
- **Descrição:** Permite que o usuário revise os itens selecionados antes de finalizar a compra.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário acessa a tela da cesta de compras.
|
||||
|
||||
2. Sistema exibe os produtos, quantidades e valor total na cesta.
|
||||
|
||||
|
||||
#### CU007: Comprar Tickets
|
||||
|
||||
- **Nome:** Comprar Tickets
|
||||
|
||||
- **Ator:** Usuário, Sistema de Pagamento
|
||||
|
||||
- **Descrição:** Permite que o usuário finalize a compra dos tickets na cesta de compras.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário está na tela da cesta de compras.
|
||||
|
||||
2. Usuário seleciona a opção "Finalizar Compra".
|
||||
|
||||
3. Usuário escolhe o método de pagamento.
|
||||
|
||||
4. Sistema de Pagamento processa a transação.
|
||||
|
||||
5. Sistema registra os tickets comprados na carteira do usuário.
|
||||
|
||||
|
||||
#### CU008: Visualizar Carteira de Tickets
|
||||
|
||||
- **Nome:** Visualizar Carteira de Tickets
|
||||
|
||||
- **Ator:** Usuário
|
||||
|
||||
- **Descrição:** Permite que o usuário veja os tickets que possui e ainda não utilizou.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário acessa a tela da carteira de tickets.
|
||||
|
||||
2. Sistema exibe a lista de tickets disponíveis, com detalhes e prazo de validade.
|
||||
|
||||
|
||||
#### CU009: Visualizar Histórico de Tickets
|
||||
|
||||
- **Nome:** Visualizar Histórico de Tickets
|
||||
|
||||
- **Ator:** Usuário
|
||||
|
||||
- **Descrição:** Permite que o usuário consulte o registro de todos os tickets comprados e utilizados.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário acessa a tela de histórico de tickets.
|
||||
|
||||
2. Sistema exibe a lista de tickets com datas de compra e uso.
|
||||
|
||||
|
||||
#### CU010: Transferir Ticket
|
||||
|
||||
- **Nome:** Transferir Ticket
|
||||
|
||||
- **Ator:** Usuário (remetente), Usuário (destinatário)
|
||||
|
||||
- **Descrição:** Permite que um usuário transfira um ou mais tickets para outro usuário.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário (remetente) seleciona tickets na carteira para transferência.
|
||||
|
||||
2. Sistema gera um QR Code para a transferência.
|
||||
|
||||
3. Usuário (destinatário) lê o QR Code gerado pelo remetente.
|
||||
|
||||
4. Sistema remove os tickets da carteira do remetente e adiciona à carteira do destinatário.
|
||||
|
||||
|
||||
#### CU011: Receber Ticket
|
||||
|
||||
- **Nome:** Receber Ticket
|
||||
|
||||
- **Ator:** Usuário (destinatário), Usuário (remetente)
|
||||
|
||||
- **Descrição:** Permite que um usuário receba tickets transferidos por outro usuário.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário (destinatário) acessa a função de "Receber Ticket" e ativa a câmera.
|
||||
|
||||
2. Usuário (destinatário) escaneia o QR Code de transferência gerado pelo remetente.
|
||||
|
||||
3. Sistema valida o QR Code e adiciona os tickets à carteira do destinatário.
|
||||
|
||||
|
||||
#### CU012: Utilizar Ticket
|
||||
|
||||
- **Nome:** Utilizar Ticket
|
||||
|
||||
- **Ator:** Usuário, Garçom/Atendente
|
||||
|
||||
- **Descrição:** Permite que o usuário troque um ticket por um produto no bar.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário seleciona um ticket na carteira para uso.
|
||||
|
||||
2. Sistema gera um QR Code único para o ticket.
|
||||
|
||||
3. Garçom/Atendente lê o QR Code com um dispositivo próprio.
|
||||
|
||||
4. Sistema valida o ticket e o marca como utilizado, registrando a data e hora.
|
||||
|
||||
|
||||
### 3. Pagamento
|
||||
|
||||
#### CU013: Efetuar Pagamento da Cesta
|
||||
|
||||
- **Nome:** Efetuar Pagamento da Cesta
|
||||
|
||||
- **Ator:** Usuário, Sistema de Pagamento
|
||||
|
||||
- **Descrição:** Processa o pagamento dos tickets na cesta de compras. (Já coberto em CU007, mas pode ser um caso de uso separado para o processo de pagamento em si).
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário confirma os itens na cesta.
|
||||
|
||||
2. Usuário seleciona o método de pagamento (Pix, Cartão de Crédito/Débito).
|
||||
|
||||
3. Se for Pix, sistema exibe QR Code/código.
|
||||
|
||||
4. Se for cartão, usuário insere dados ou seleciona cartão cadastrado.
|
||||
|
||||
5. Sistema integra com o Sistema de Pagamento para finalizar a transação.
|
||||
|
||||
6. Sistema confirma o pagamento e atualiza o status dos tickets.
|
||||
|
||||
|
||||
#### CU014: Cadastrar Cartão de Crédito/Débito
|
||||
|
||||
- **Nome:** Cadastrar Cartão de Crédito/Débito
|
||||
|
||||
- **Ator:** Usuário, Sistema de Pagamento
|
||||
|
||||
- **Descrição:** Permite que o usuário armazene dados de cartão para pagamentos futuros.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário acessa a seção de gerenciamento de pagamentos.
|
||||
|
||||
2. Usuário seleciona a opção "Adicionar Cartão".
|
||||
|
||||
3. Usuário insere os dados do cartão (número, validade, CVV, nome do titular).
|
||||
|
||||
4. Sistema de Pagamento tokeniza e armazena os dados do cartão de forma segura.
|
||||
|
||||
5. Sistema confirma o cadastro do cartão.
|
||||
|
||||
|
||||
#### CU015: Efetuar Pagamento da Comanda
|
||||
|
||||
- **Nome:** Efetuar Pagamento da Comanda
|
||||
|
||||
- **Ator:** Usuário, Garçom/Atendente, Sistema de Pagamento
|
||||
|
||||
- **Descrição:** Permite que o usuário visualize e pague sua comanda de consumo.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Garçom/Atendente fornece um QR Code da comanda ao usuário.
|
||||
|
||||
2. Usuário escaneia o QR Code da comanda.
|
||||
|
||||
3. Sistema exibe os detalhes da comanda (itens, valores, total).
|
||||
|
||||
4. Usuário seleciona a opção de pagamento (total ou parcial) e o método (Pix, Cartão).
|
||||
|
||||
5. Sistema de Pagamento processa a transação.
|
||||
|
||||
6. Sistema atualiza o status da comanda no sistema do bar.
|
||||
|
||||
|
||||
### 4. Eventos e Karaokê
|
||||
|
||||
#### CU016: Comprar Ingresso para Evento
|
||||
|
||||
- **Nome:** Comprar Ingresso para Evento
|
||||
|
||||
- **Ator:** Usuário, Sistema de Pagamento
|
||||
|
||||
- **Descrição:** Permite que o usuário adquira ingressos para eventos do bar.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário acessa a tela de eventos.
|
||||
|
||||
2. Usuário seleciona um evento e a quantidade de ingressos.
|
||||
|
||||
3. Usuário prossegue para o pagamento (similar ao CU007).
|
||||
|
||||
4. Sistema registra os ingressos na seção de ingressos do usuário.
|
||||
|
||||
|
||||
#### CU017: Visualizar Fila do Karaokê
|
||||
|
||||
- **Nome:** Visualizar Fila do Karaokê
|
||||
|
||||
- **Ator:** Usuário
|
||||
|
||||
- **Descrição:** Permite que o usuário veja a ordem das pessoas para cantar no karaokê.
|
||||
|
||||
- **Fluxo Principal:**
|
||||
|
||||
1. Usuário acessa a tela do karaokê.
|
||||
|
||||
2. Sistema exibe a fila atualizada em tempo real.
|
||||
273
doc/App Cliente/Histórias de Usuário - Aplicativo Cliente.md
Normal file
273
doc/App Cliente/Histórias de Usuário - Aplicativo Cliente.md
Normal file
@@ -0,0 +1,273 @@
|
||||
# Histórias de Usuário do Aplicativo BarApp
|
||||
|
||||
Este documento apresenta as histórias de usuário para o aplicativo BarApp, focando na perspectiva do usuário e no valor que cada funcionalidade entrega.
|
||||
|
||||
## 1. Gerenciamento de Usuários
|
||||
|
||||
- **HU001 - Cadastro:**
|
||||
|
||||
- **Como um** novo cliente,
|
||||
|
||||
- **Eu quero** me cadastrar no aplicativo,
|
||||
|
||||
- **Para que** eu possa acessar todas as funcionalidades e personalizar minha experiência.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Dados de cadastro (nome, e-mail, senha) são coletados.
|
||||
|
||||
- E-mail é validado para formato correto.
|
||||
|
||||
- Senha atende aos requisitos de segurança (e.g., mínimo de 8 caracteres, maiúscula, minúscula, número).
|
||||
|
||||
- Usuário é autenticado e redirecionado para a tela principal após o cadastro.
|
||||
|
||||
- **HU002 - Alteração de Senha:**
|
||||
|
||||
- **Como um** usuário cadastrado,
|
||||
|
||||
- **Eu quero** alterar minha senha,
|
||||
|
||||
- **Para que** eu possa manter minha conta segura.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Usuário deve informar a senha atual corretamente.
|
||||
|
||||
- Nova senha deve ser confirmada e atender aos requisitos de segurança.
|
||||
|
||||
- Sistema deve informar sucesso ou falha na alteração da senha.
|
||||
|
||||
- **HU003 - Login Social (Google):**
|
||||
|
||||
- **Como um** cliente com conta Google,
|
||||
|
||||
- **Eu quero** fazer login usando minha conta Google,
|
||||
|
||||
- **Para que** eu não precise criar e lembrar de mais uma senha.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Opção de login com Google está visível na tela de login.
|
||||
|
||||
- Usuário é redirecionado para a autenticação do Google.
|
||||
|
||||
- Após autenticação, usuário é logado no aplicativo.
|
||||
|
||||
|
||||
## 2. Cardápio e Compra de Tickets
|
||||
|
||||
- **HU004 - Visualização do Cardápio:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** visualizar o cardápio de produtos do bar,
|
||||
|
||||
- **Para que** eu possa escolher o que consumir.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Cardápio exibe nome, preço, descrição e imagem para cada produto.
|
||||
|
||||
- Cardápio é fácil de navegar.
|
||||
|
||||
- **HU005 - Compra de Ticket:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** comprar tickets para produtos do cardápio,
|
||||
|
||||
- **Para que** eu possa ter meus produtos garantidos e evitar filas no caixa.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- É possível selecionar a quantidade de tickets para um produto.
|
||||
|
||||
- Sistema aplica limite de compra por produto/usuário.
|
||||
|
||||
- Tickets são adicionados à cesta de compras.
|
||||
|
||||
- **HU006 - Visualização da Cesta de Compras:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** ver os itens que adicionei à minha cesta,
|
||||
|
||||
- **Para que** eu possa revisar meu pedido antes de pagar.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Cesta exibe nome do produto, quantidade e subtotal.
|
||||
|
||||
- Total da compra é exibido.
|
||||
|
||||
- É possível remover itens da cesta.
|
||||
|
||||
|
||||
## 3. Carteira e Uso de Tickets
|
||||
|
||||
- **HU007 - Visualização da Carteira de Tickets:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** ver todos os tickets que comprei e ainda não usei,
|
||||
|
||||
- **Para que** eu saiba o que tenho disponível para consumir.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Carteira exibe tickets disponíveis, com nome do produto e quantidade.
|
||||
|
||||
- Prazo de validade dos tickets é exibido claramente.
|
||||
|
||||
- **HU008 - Visualização do Histórico de Tickets:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** ver meu histórico de tickets comprados e usados,
|
||||
|
||||
- **Para que** eu possa acompanhar meus gastos e consumo.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Histórico exibe data e hora da compra.
|
||||
|
||||
- Histórico exibe data e hora do uso (se aplicável).
|
||||
|
||||
- Tickets usados e não usados são diferenciados visualmente.
|
||||
|
||||
- **HU009 - Transferência de Ticket (Gerar QR Code):**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** transferir tickets para outro usuário,
|
||||
|
||||
- **Para que** eu possa presentear amigos ou dividir tickets.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- É possível selecionar tickets da carteira para transferência.
|
||||
|
||||
- Um QR Code único é gerado para a transferência.
|
||||
|
||||
- Tickets são removidos da carteira do remetente após a transferência ser concluída.
|
||||
|
||||
- **HU010 - Recebimento de Ticket (Ler QR Code):**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** receber tickets de outro usuário lendo um QR Code,
|
||||
|
||||
- **Para que** eu possa aceitar tickets transferidos por amigos.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Funcionalidade de leitura de QR Code é acessível.
|
||||
|
||||
- Após a leitura de um QR Code válido, tickets são adicionados à carteira do destinatário.
|
||||
|
||||
- **HU011 - Uso de Ticket:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** usar um ticket da minha carteira para pegar um produto,
|
||||
|
||||
- **Para que** eu possa consumir o que comprei.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Ao tocar no ticket, um QR Code único é gerado.
|
||||
|
||||
- QR Code é lido pelo garçom.
|
||||
|
||||
- Ticket é marcado como usado no sistema.
|
||||
|
||||
|
||||
## 4. Pagamento
|
||||
|
||||
- **HU012 - Pagamento da Cesta:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** pagar minha cesta de tickets,
|
||||
|
||||
- **Para que** eu possa ter os tickets na minha carteira.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Opções de pagamento (Pix, Crédito, Débito) são apresentadas.
|
||||
|
||||
- Transação é processada com sucesso pelo método escolhido.
|
||||
|
||||
- Tickets são liberados para a carteira após confirmação do pagamento.
|
||||
|
||||
- **HU013 - Cadastro de Cartão:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** cadastrar meus cartões de pagamento,
|
||||
|
||||
- **Para que** eu possa pagar mais rapidamente em compras futuras.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Dados do cartão são coletados de forma segura.
|
||||
|
||||
- Cartão é armazenado para uso futuro.
|
||||
|
||||
- Opção de selecionar cartão cadastrado aparece nas telas de pagamento.
|
||||
|
||||
- **HU014 - Pagamento da Comanda:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** visualizar e pagar minha comanda de consumo pelo aplicativo,
|
||||
|
||||
- **Para que** eu tenha controle dos meus gastos e agilidade no pagamento.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- É possível escanear um QR Code da comanda fornecido pelo garçom.
|
||||
|
||||
- Comanda exibe itens consumidos e valor total.
|
||||
|
||||
- É possível efetuar o pagamento total ou parcial da comanda.
|
||||
|
||||
- Status da comanda é atualizado após o pagamento.
|
||||
|
||||
|
||||
## 5. Eventos e Karaokê
|
||||
|
||||
- **HU015 - Compra de Ingresso para Evento:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** comprar ingressos para eventos do bar,
|
||||
|
||||
- **Para que** eu possa garantir minha entrada e participar das festas.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Lista de eventos disponíveis é exibida com detalhes (nome, data, preço).
|
||||
|
||||
- É possível selecionar a quantidade de ingressos.
|
||||
|
||||
- Pagamento é processado com sucesso.
|
||||
|
||||
- Ingressos aparecem na minha seção de ingressos.
|
||||
|
||||
- **HU016 - Visualização da Fila do Karaokê:**
|
||||
|
||||
- **Como um** cliente,
|
||||
|
||||
- **Eu quero** visualizar a fila de pessoas para cantar no karaokê,
|
||||
|
||||
- **Para que** eu possa saber quando será minha vez ou a de meus amigos.
|
||||
|
||||
- **Critérios de Aceitação:**
|
||||
|
||||
- Fila é exibida em tempo real.
|
||||
|
||||
- Nomes das pessoas na fila são visíveis.
|
||||
|
||||
- Ordem da fila é clara.
|
||||
248
doc/App Cliente/Requisitos - Aplicativo Cliente.md
Normal file
248
doc/App Cliente/Requisitos - Aplicativo Cliente.md
Normal file
@@ -0,0 +1,248 @@
|
||||
estou desenvolvendo um aplicativo mobile para um bar, onde: poderá ver o cardápio, haverá venda e armazenamento de tickets, para que depois possa ser trocado por produto no local, venda de ingressos para eventos, visualizar fila de pessoa que vão cantar no karaokê, visualizar e efetuar pagamento da sua comanda de consumo.
|
||||
algumas características do app:
|
||||
* o usuário pode efetuar um Cadastro
|
||||
* pode Alterar sua senha
|
||||
* pode fazer Login social(com uma conta Google)
|
||||
* visualizar o cardápio de produtos disponíveis com nome, preço, descrição e imagem
|
||||
* Comprar ticket referente ao produto
|
||||
* deve haver um limite de compra de tickets de um mesmo produto por usuário
|
||||
* deve haver uma carteira de tickets para ser armazenados os tickets comprados
|
||||
* os tickets podem ter prazo de validade
|
||||
* o usuário pode ver seu histórico de tickets (data e hora da compra e de uso)
|
||||
* deve haver uma "cesta de compra" onde o usuário pode ir armazenando os tickets para depois efetuar o pagamento dos mesmo
|
||||
* o pagamento pode ser via pix, credito, ou debito
|
||||
* o usuário pode Transferir seus tickets para outro usuário através da geração de um qrcode
|
||||
* o usuário pode receber transferença de tickets de outro usuário através da leitura de um qrcode
|
||||
* para usar o ticket basta tocar e o app vai gerar um qrcode que será lido pelo garçom
|
||||
* o usuário poderá cadastrar cartões para facilitar pagamentos futuros
|
||||
|
||||
* o aplicativo poderá vender ingressos para eventos do bar
|
||||
* Ingressos podem ser nomeados
|
||||
* Possibilidade de acompanhar a própria comanda de consumo através da leitura de um qrcode fornecido pelo o garçom, e efetuar o pagamento da mesma pelo app
|
||||
|
||||
|
||||
|
||||
|
||||
# Documento de Requisitos do Aplicativo BarApp
|
||||
|
||||
## 1. Introdução
|
||||
|
||||
### 1.1. Propósito
|
||||
|
||||
Este documento tem como objetivo detalhar os requisitos funcionais, não funcionais, regras de negócio e requisitos de sistema para o desenvolvimento do aplicativo mobile "BarApp". O aplicativo visa aprimorar a experiência do cliente em um bar, oferecendo funcionalidades como visualização de cardápio, compra e gerenciamento de tickets de produtos, venda de ingressos para eventos, acompanhamento da fila do karaokê e pagamento de comandas de consumo.
|
||||
|
||||
### 1.2. Escopo
|
||||
|
||||
O aplicativo BarApp será uma solução mobile disponível para as plataformas Android e iOS, permitindo que os usuários realizem as ações descritas neste documento. O escopo inicial não inclui funcionalidades para a equipe do bar (garçons, gerentes), que serão consideradas em fases futuras, exceto pela interação de leitura de QR Codes.
|
||||
|
||||
### 1.3. Público-alvo
|
||||
|
||||
- **Usuários Finais:** Clientes do bar que desejam interagir com o estabelecimento de forma digital.
|
||||
|
||||
- **Garçons/Atendentes:** Profissionais do bar que precisarão ler QR Codes gerados pelo aplicativo para validação de tickets e comandas.
|
||||
|
||||
|
||||
## 2. Requisitos Funcionais (RF)
|
||||
|
||||
Os requisitos funcionais descrevem as funcionalidades que o sistema deve oferecer aos usuários.
|
||||
|
||||
### 2.1. Gerenciamento de Usuários
|
||||
|
||||
- **RF001 - Cadastro de Usuário:** O sistema deve permitir que um novo usuário realize seu cadastro, fornecendo informações como nome completo, e-mail e senha.
|
||||
|
||||
- **RF002 - Alteração de Senha:** O sistema deve permitir que um usuário autenticado altere sua senha.
|
||||
|
||||
- **RF003 - Login:** O sistema deve permitir que um usuário autenticado faça login utilizando e-mail e senha.
|
||||
|
||||
- **RF004 - Login Social (Google):** O sistema deve permitir que um usuário faça login utilizando sua conta Google.
|
||||
|
||||
- **RF005 - Recuperação de Senha:** O sistema deve permitir que um usuário recupere sua senha através de um processo seguro (e.g., envio de link para o e-mail cadastrado).
|
||||
|
||||
- **RF006 - Gerenciamento de Perfil:** O sistema deve permitir que o usuário visualize e edite suas informações de perfil (exceto e-mail de cadastro).
|
||||
|
||||
|
||||
### 2.2. Gerenciamento de Cardápio
|
||||
|
||||
- **RF007 - Visualização do Cardápio:** O sistema deve exibir o cardápio completo de produtos disponíveis no bar.
|
||||
|
||||
- **RF008 - Detalhes do Produto:** Para cada item do cardápio, o sistema deve exibir nome, preço, descrição e imagem.
|
||||
|
||||
|
||||
### 2.3. Compra e Gerenciamento de Tickets
|
||||
|
||||
- **RF009 - Compra de Ticket:** O sistema deve permitir que o usuário selecione um produto do cardápio e compre tickets referentes a ele.
|
||||
|
||||
- **RF010 - Adicionar à Cesta de Compras:** O sistema deve permitir que o usuário adicione tickets de diferentes produtos a uma "cesta de compras" antes de finalizar o pagamento.
|
||||
|
||||
- **RF011 - Visualização da Cesta de Compras:** O sistema deve exibir todos os itens adicionados à cesta de compras, com seus respectivos nomes, quantidades e valores totais.
|
||||
|
||||
- **RF012 - Remoção de Item da Cesta:** O sistema deve permitir que o usuário remova itens da cesta de compras.
|
||||
|
||||
- **RF013 - Visualização da Carteira de Tickets:** O sistema deve exibir uma "carteira" com todos os tickets comprados e ainda não utilizados pelo usuário.
|
||||
|
||||
- **RF014 - Detalhes do Ticket na Carteira:** Para cada ticket na carteira, o sistema deve exibir o nome do produto, quantidade, data de compra e, se aplicável, prazo de validade.
|
||||
|
||||
- **RF015 - Visualização do Histórico de Tickets:** O sistema deve exibir o histórico de tickets do usuário, incluindo data e hora da compra e data e hora de uso (se já utilizado).
|
||||
|
||||
|
||||
### 2.4. Pagamento
|
||||
|
||||
- **RF016 - Seleção de Método de Pagamento:** O sistema deve permitir que o usuário selecione o método de pagamento para a cesta de compras (Pix, Cartão de Crédito, Cartão de Débito).
|
||||
|
||||
- **RF017 - Processamento de Pagamento (Pix):** O sistema deve gerar um QR Code Pix ou código "copia e cola" para que o usuário efetue o pagamento.
|
||||
|
||||
- **RF018 - Processamento de Pagamento (Cartão):** O sistema deve integrar com uma plataforma de pagamento para processar transações de cartão de crédito/débito.
|
||||
|
||||
- **RF019 - Cadastro de Cartões:** O sistema deve permitir que o usuário cadastre múltiplos cartões de crédito/débito para pagamentos futuros.
|
||||
|
||||
- **RF020 - Seleção de Cartão Cadastrado:** O sistema deve permitir que o usuário selecione um cartão previamente cadastrado para realizar pagamentos.
|
||||
|
||||
|
||||
### 2.5. Transferência de Tickets
|
||||
|
||||
- **RF021 - Geração de QR Code para Transferência:** O sistema deve permitir que o usuário selecione um ou mais tickets de sua carteira e gere um QR Code para transferência para outro usuário.
|
||||
|
||||
- **RF022 - Leitura de QR Code para Recebimento:** O sistema deve permitir que o usuário utilize a câmera do dispositivo para ler um QR Code de transferência e receber tickets de outro usuário.
|
||||
|
||||
|
||||
### 2.6. Utilização de Tickets
|
||||
|
||||
- **RF023 - Geração de QR Code para Uso:** O sistema deve permitir que o usuário selecione um ticket na carteira e gere um QR Code único para que o garçom possa validá-lo e trocá-lo pelo produto.
|
||||
|
||||
- **RF024 - Validação de Uso de Ticket:** O sistema deve registrar a data e hora do uso do ticket após a leitura bem-sucedida pelo garçom.
|
||||
|
||||
|
||||
### 2.7. Venda de Ingressos para Eventos
|
||||
|
||||
- **RF025 - Visualização de Eventos:** O sistema deve exibir uma lista dos eventos disponíveis no bar, com nome do evento, data, hora, descrição e preço do ingresso.
|
||||
|
||||
- **RF026 - Compra de Ingresso:** O sistema deve permitir que o usuário compre ingressos para eventos.
|
||||
|
||||
- **RF027 - Visualização de Ingressos Comprados:** O sistema deve exibir os ingressos comprados pelo usuário.
|
||||
|
||||
- **RF028 - Geração de QR Code do Ingresso:** O sistema deve permitir que o usuário gere um QR Code para cada ingresso comprado, para validação na entrada do evento.
|
||||
|
||||
|
||||
### 2.8. Karaokê
|
||||
|
||||
- **RF029 - Visualização da Fila do Karaokê:** O sistema deve exibir a fila atual de pessoas que vão cantar no karaokê, em tempo real.
|
||||
|
||||
|
||||
### 2.9. Comanda de Consumo
|
||||
|
||||
- **RF030 - Acompanhamento da Comanda:** O sistema deve permitir que o usuário leia um QR Code fornecido pelo garçom para visualizar sua comanda de consumo em tempo real.
|
||||
|
||||
- **RF031 - Detalhes da Comanda:** A comanda deve exibir os itens consumidos, quantidades, preços unitários e valor total.
|
||||
|
||||
- **RF032 - Pagamento da Comanda:** O sistema deve permitir que o usuário efetue o pagamento total ou parcial da comanda de consumo através dos métodos de pagamento disponíveis (Pix, Cartão de Crédito, Cartão de Débito).
|
||||
|
||||
|
||||
## 3. Requisitos Não Funcionais (RNF)
|
||||
|
||||
Os requisitos não funcionais descrevem as qualidades do sistema.
|
||||
|
||||
### 3.1. Usabilidade
|
||||
|
||||
- **RNF001 - Interface Intuitiva:** A interface do usuário deve ser intuitiva e fácil de usar, mesmo para usuários com pouca familiaridade com aplicativos.
|
||||
|
||||
- **RNF002 - Tempo de Resposta:** O tempo de resposta do aplicativo para todas as interações do usuário não deve exceder 3 segundos.
|
||||
|
||||
- **RNF003 - Consistência Visual:** A interface deve seguir um padrão visual consistente em todas as telas e funcionalidades.
|
||||
|
||||
- **RNF004 - Feedback ao Usuário:** O sistema deve fornecer feedback claro e imediato para todas as ações do usuário (e.g., sucesso na compra, erro de login).
|
||||
|
||||
|
||||
### 3.2. Desempenho
|
||||
|
||||
- **RNF005 - Carregamento Rápido:** O aplicativo deve carregar em no máximo 5 segundos na primeira inicialização.
|
||||
|
||||
- **RNF006 - Escalabilidade:** O sistema deve ser capaz de suportar um grande volume de usuários simultâneos (e.g., 1000 usuários ativos) sem degradação significativa de desempenho.
|
||||
|
||||
- **RNF007 - Otimização de Imagens:** As imagens do cardápio e eventos devem ser otimizadas para carregamento rápido sem comprometer a qualidade visual.
|
||||
|
||||
|
||||
### 3.3. Segurança
|
||||
|
||||
- **RNF008 - Autenticação Segura:** O sistema deve garantir que as credenciais de login dos usuários sejam armazenadas e transmitidas de forma segura (e.g., criptografia, hashing de senhas).
|
||||
|
||||
- **RNF009 - Proteção de Dados Pessoais:** As informações pessoais e de pagamento dos usuários devem ser protegidas contra acesso não autorizado e vazamento de dados.
|
||||
|
||||
- **RNF010 - Transações Seguras:** Todas as transações financeiras devem ser processadas através de gateways de pagamento seguros e certificados.
|
||||
|
||||
- **RNF011 - Validação de QR Code:** Os QR Codes gerados para tickets e ingressos devem ser únicos, com validade limitada e antifraude.
|
||||
|
||||
|
||||
### 3.4. Confiabilidade
|
||||
|
||||
- **RNF012 - Disponibilidade:** O aplicativo deve estar disponível 99,9% do tempo.
|
||||
|
||||
- **RNF013 - Tratamento de Erros:** O sistema deve lidar com erros de forma graciosa, exibindo mensagens claras e úteis ao usuário.
|
||||
|
||||
- **RNF014 - Persistência de Dados:** Todos os dados do usuário (cadastro, tickets, histórico, cartões) devem ser armazenados de forma persistente e recuperáveis.
|
||||
|
||||
|
||||
### 3.5. Manutenibilidade
|
||||
|
||||
- **RNF015 - Código Limpo:** O código-fonte deve ser bem documentado, modular e fácil de entender para futuras manutenções e evoluções.
|
||||
|
||||
- **RNF016 - Atualizações:** O aplicativo deve permitir atualizações e novas funcionalidades sem exigir reinstalação completa por parte do usuário, sempre que possível.
|
||||
|
||||
|
||||
### 3.6. Compatibilidade
|
||||
|
||||
- **RNF017 - Compatibilidade Mobile:** O aplicativo deve ser compatível com as versões mais recentes dos sistemas operacionais Android e iOS (e.g., últimas 3 versões).
|
||||
|
||||
- **RNF018 - Responsividade:** A interface do aplicativo deve se adaptar a diferentes tamanhos de tela e orientações (retrato/paisagem) de dispositivos móveis.
|
||||
|
||||
|
||||
## 4. Regras de Negócio (RN)
|
||||
|
||||
As regras de negócio são as políticas e restrições que governam o funcionamento do bar e do aplicativo.
|
||||
|
||||
### 4.1. Tickets
|
||||
|
||||
- **RN001 - Limite de Compra de Tickets:** Cada usuário terá um limite máximo de tickets de um mesmo produto que pode comprar em uma única transação ou em um período de tempo (a ser definido pelo bar, e.g., 10 tickets do mesmo produto por dia).
|
||||
|
||||
- **RN002 - Validade do Ticket:** Tickets comprados podem ter um prazo de validade (e.g., 30 dias a partir da data da compra, ou até o fechamento do bar no dia da compra).
|
||||
|
||||
- **RN003 - Uso Único do Ticket:** Cada ticket gerado para uso (QR Code) pode ser utilizado apenas uma vez.
|
||||
|
||||
- **RN004 - Transferência de Tickets:** Tickets podem ser transferidos entre usuários, e a responsabilidade pela validade e uso passa para o novo proprietário.
|
||||
|
||||
- **RN005 - Tickets Não Reembolsáveis:** Uma vez comprado, tickets não são reembolsáveis (a menos que haja uma política de exceção do bar).
|
||||
|
||||
|
||||
### 4.2. Pagamento
|
||||
|
||||
- **RN006 - Métodos de Pagamento:** Os métodos de pagamento aceitos são Pix, Cartão de Crédito e Cartão de Débito.
|
||||
|
||||
- **RN007 - Pagamento da Comanda:** A comanda de consumo pode ser paga total ou parcialmente pelo aplicativo.
|
||||
|
||||
|
||||
### 4.3. Eventos
|
||||
|
||||
- **RN008 - Ingressos Nomeados:** Ingressos para eventos podem ter nomes específicos (e.g., "Ingresso Pista", "Ingresso VIP").
|
||||
|
||||
- **RN009 - Validação de Ingresso:** Cada ingresso comprado gera um QR Code único para validação na entrada do evento, permitindo apenas um acesso por ingresso.
|
||||
|
||||
|
||||
## 5. Requisitos de Sistema (RS)
|
||||
|
||||
Os requisitos de sistema definem as necessidades de infraestrutura e tecnologia.
|
||||
|
||||
### 5.1. Plataformas
|
||||
|
||||
- **RS001 - Desenvolvimento Multiplataforma:** O aplicativo deve ser desenvolvido para ser compatível com iOS e Android.
|
||||
|
||||
- **RS002 - Linguagens de Programação:** A serem definidas pela equipe de desenvolvimento (e.g., React Native, Flutter, Swift/Kotlin nativo).
|
||||
|
||||
|
||||
### 5.2. Integrações
|
||||
|
||||
- **RS003 - Gateway de Pagamento:** O sistema deve integrar-se com um gateway de pagamento (e.g., Stripe, PagSeguro, Mercado Pago) para processar pagamentos com cartão e Pix.
|
||||
|
||||
- **RS004 - Autenticação Social:** O sistema deve integrar-se com a API de autenticação do Google para login social.
|
||||
|
||||
- **RS005 - Sistema de Gerenciamento do Bar:** O aplicativo pode precisar de integração com um sistema de gerenciamento interno do bar para atualização de cardápio, fila de karaokê e comandas (a ser definido em fases futuras).
|
||||
|
||||
- **RS006 - Leitura de QR Code:** O aplicativo deve utilizar a câmera do dispositivo para ler QR Codes.
|
||||
Reference in New Issue
Block a user