---
# System prepended metadata

title: Promobot - Prática em Desenvolvimento de Software

---

---
title: 'Promobot - Prática em Desenvolvimento de Software'
disqus: hackmd
---

# Promobot - Histórias de usuário

**Nome:** \
**Como um** \
**Eu quero** \
**para que** 

**Acceptance Criteria**
1. 
2. 
3. 
4. 

---
## Sprint Planning
### 1ª Sprint 

**Nome:** Provisionar bot\
**Como um** Desenvolvedor do bot\
**Eu quero** ter um local para subir as modificações\
**para que** as implementações do bot possam ser feitas e testadas em um ambiente similar ou igual ao de produção

**Acceptance Criteria**
1. Bot está rodando na AWS
2. Comunicação básica com o bot pode ser feita via API

**Tasks**
1. Criar conta AWS
2. Configurar AWS Lambda para receber código do bot
3. Abrir uma rota de comunição com o bot via API Gateway
4. Configurar CI com testes e deploy automático

**Responsável:** Ingrid

---

**Nome:** Encontrar o bot na busca do Telegram\
**Como um** Usuário do Telegram\
**Eu quero** buscar pelo nome do bot\
**para que** eu possa interagir com ele

**Acceptance Criteria**
1. Usuário consegue colocar o nome do bot na busca
2. Resultado da busca retorna nosso bot
3. Usuário consegue abrir uma janela de conversa com o bot

**Tasks**
1. Gerar o token do bot usando a API do Telegram
2. Configurar as informações principais do bot (nome, avatar, etc)
3. Testar a url/username do bot gerado

**Responsável:** Ingrid

----
**Nome:** Ajuda ao usuário\ 
**Como um** usuário do bot\
**Eu quero** poder visualizar as funcionalidades e comandos do bot\
**para que** eu possa me orientar na busca e gerência dos produtos que desejo monitorar o preço 

**Acceptance Criteria**
1. Usuário consegue com um comando /help visualizar a lista de comandos disponíveis
2. Usuário consegue visualizar um tutorial de utilização

**Tasks**
1. Tratar comando /help recebido pelo bot
2. Criar função que envia resposta com a mensagem de ajuda

**Responsável:** Raydan

----
**Nome:** Listar sites suportados\
**Como um** usuário do bot\
**Eu quero** saber quais sites posso rastrear\
**para que** eu possa saber quais produtos o bot suporta

**Acceptance Criteria**
1. Usuário consegue ver o comando de listar no help
2. Usuário consegue executar comando de listar
3. Bot retorna uma lista com os sites que suporta

**Tasks**
1. Tratar comando /listsites recebido pelo bot
2. Criar função que envia resposta com a lista de sites suportados

**Responsável:** Gabriel

----
**Nome:** Mensagem de boas vindas\
**Como um** usuário do bot\
**Eu quero** receber instruções sobre o funcionamento do bot ao interagir com ele pela primeira vez\
**para que** eu saiba como utiliza-lo

**Acceptance Criteria**
1. Comando /start ativa o bot
2. Bot envia uma mensagem para o usuário dando informações sobre o funcionamento do sistema e onde procurar ajuda

**Tasks**
1. Tratar comando /start recebido pelo bot
2. Criar função que envia resposta com a mensagem de boas vindas

**Responsável:** Raydan

----
**Nome:** Listar produtos rastreados\
**Como um** usuário do bot\
**Eu quero** poder listar os produtos que pedi para o bot rastrear\
**para que** eu possa ver todos os produtos que ainda estão sendo rastreados

**Acceptance Criteria**
1. O bot procura no banco os produtos rastreados pelo usuário
2. Usuário recebe a lista de nomes e links rastreados

**Tasks**
1. Implementar client de comunicação com o database Redis
2. Tratar comando /listproducts recebido pelo bot
3. Criar função que envia resposta com a lista de produtos rastreados

**Responsável:** Gabriel

----

## Backlog 

**Nome:** \
**Como um** usuário do sistema\
**Eu quero** poder identificar os sites suportados\
**para que** eu possa saber em tempo real quando os sites estão fora do ar (Comandos base, Alertas, Triggers)

**Acceptance Criteria**
1. Usuário recebe notificação do bot quando algum problema ocorrer com o site ou tracking do produto
2. 
3. 
4. 

----

**Nome:** Produto que deixa de existir\
**Como um** Usuário do bot\
**Eu quero** ser notificado se um produto parar de ser vendido\
**para que** eu saiba que ele não está mais sendo rastreado

**Acceptance Criteria**
1. Bot identifica que a página do produto não existe mais
2. Bot avisa ao usuário que não está mais encontrando o produto
4. Bot avisa que irá remover o rastreio do produto em uma semana
----

**Nome:** Remoção automática de produto\
**Como um** Usuário do bot\
**Eu quero** que produtos que não existem mais sejam removidos automaticamente\
**para que** eu não tenha que remove-los manualmente

**Acceptance Criteria**
1. Bot envia uma mensagem avisando que um produto foi removido
2. Bot informa o link e a tag do produto removido
----

**Nome:** Intervalo de notificações\
**Como um** Usuário do bot\
**Eu quero** poder escolher o intervalo das mensagens que o bot me enviará\
**para que** eu recebe atualizações com a frequencia que preferir

**Acceptance Criteria**
1. Usuário consegue ver o comando de configuração de notificações no help
2. Usuário consegue executar o comando de configuração de notificações
3. Bot da algumas opções de intervalo
4. Usuário consegue escolher o intervalo
5. Bot informa que a alteração foi realizada

----

**Nome:** Receber informações de um produto\
**Como um** usuário do bot\
**Eu quero** receber informações de um produto rastreado\
**para que** eu me mantenha atualizado sobre o estado de um produto

**Acceptance Criteria**
1. Usuário consegue ver o comando de listagem no help
2. Usuário consegue executar o comando /info
3. O bot retorne informações básicas do produto

----
**Nome:** Rastrear produto\
**Como um** usuário do bot\
**Eu quero** poder cadastrar um produto\
**para que** o bot me avise quando houver uma promoção

**Acceptance Criteria**
1. Usuário consegue executar o comando /track
2. O bot responde dizendo se foi bem sucedido
3. Outros comandos relacionados são recomendados (como colocar uma margem de preço)

----
**Nome:** Cancelar o rastreamento de um produto\
**Como um** usuário do bot\
**Eu quero** cancelar o rastreamento de um produto\
**para que** eu não receba mais atualizações sobre ele

**Acceptance Criteria**
1. Usuário consegue executar o comando /untrack
2. O bot responde dizendo se foi bem sucedido e qual produto deixou de ser acompanhado
3. O bot recomenda o comando de desfazer a ultima ação /undo

----
**Nome:** Configurar uma margem de preço\
**Como um** usuário do bot\
**Eu quero** configurar uma margem de preço\
**para que** o bot somente me avise caso o produto fique nessa margem

**Acceptance Criteria**
1. Usuário consegue executar o comando /pricemargin
2. O bot pergunta a qual dos produtos rastreados essa margem deve ser atribuída
3. O usuário escolhe um dos produtos rastreados 
4. O bot responde dizendo se foi bem sucedido

----
**Nome:** Informar condições de pagamento\
**Como um** usuário do bot\
**Eu quero** saber se o preço informado é à vista ou parcelado sem juros\
**para que** o usuário possa comparar os preços à vista com os preços parcelados, ajudando-o a tomar a melhor decisão 

**Acceptance Criteria**
1. Usuário consegue discernir preços à vista de preços parcelados sem juros

----
**Nome:** Definir condições de pagamento\
**Como um** usuário do bot\
**Eu quero** poder filtrar a pesquisa por forma de pagamento\
**para que** o usuário possa decidir como argumento do filtro um método de pagamento 

**Acceptance Criteria**
1. Usuário consegue decidir a forma de pagamento dos produtos que serão filtrados
2. O bot pergunta a qual dos produtos rastreados essa forma de pagamento deve ser atribuída
3. O usuário escolhe um dos produtos rastreados 
4. O bot responde dizendo se foi bem sucedido

----
**Nome:** Tempo para entrega\
**Como um** usuário do bot\
**Eu quero** determinar tempo máximo de entrega para a minha residência\
**para que** o usuário possa determinar o tempo máximo de espera pelo produto desejado e assim filtrar apenas os produtos que respeitem esse limite

**Acceptance Criteria**
1. Usuário consegue decidir o tempo máximo de espera pelo produto desejado
2. O usuário escolhe um dos produtos rastreados
3. O bot pergunta qual o CEP de entrega
4. O usuário escolhe qual o tempo máximo de espera em dias
5. O bot responde dizendo se foi bem sucedido

----
