---
# System prepended metadata

title: História de Usuário

---

# História de Usuário

## 1. Introdução

<p style="text-indent: 20px; text-align: justify">
As histórias de usuário são um importante recurso no desenvolvimento Ágil de software,
elas são altamente centradas no usuário, isto é, elas são escritas de modo que o sujeito
da ação seja o usuário querendo uma solução de um problema que o software está se propondo
a resolver. Assim, é possível gerar um produto com um alta confiabilidade para o usuário final,
pois ele sempre foi o pivô no desenvolvimento.

Nesse documento além das histórias de usuário, são mostrados os critérios de aceitação e uma priorização utilizando o método MoSCoW. 

Critérios de aceitação são os itens que precisam ser atendidos para que a história do usuário seja 
aceita por um usuário ou cliente. Nos critérios existem as informações necessárias para a construção
e o funcionamento do sistema.

	
O MoSCoW consiste em classificar as histórias de usuário em quatro níveis de prioridade. Must (Tenho que fazer) , Should (Devo fazer), Could (Poderia fazer ), Wouldn’t (Não será feito por enquanto). 
	


</p>


## 2. História de Usuário

<table>
    <thead>
        <tr style="background-color: #54CCFF">
            <th style="border-style:solid;border-width:1px;text-align:center">Épico</th>
            <th style="border-style:solid;border-width:1px;text-align:center">Feature</th>
            <th style="border-style:solid;border-width:1px;text-align:center">ID</th>
            <th style="border-style:solid;border-width:1px;text-align:center">História de Usuário</th>
            <th style="border-style:solid;border-width:1px;text-align:center">Critérios de aceitação</th>
            <th style="border-style:solid;border-width:1px;text-align:center">Task</th>
            <th style="border-style:solid;border-width:1px;text-align:center">Prioridade</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <span id="ustory-13"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="8"> Manipulação da imagem</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="3"> Extração da imagem</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US13</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Eu gostaria de um aviso (sonoro e/ou visual e/ou físico) para que eu tenha certeza que a foto foi tirada e salva corretamente </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol> <li>Eu gostaria que esses avisos não atrapalhassem a coleta de fotos. Exemplo aviso que sobrepõem o botão para tirar fotos </li> <li> Eu gostaria que os aviso não me incomodassem, afinal vou ser notificados milhares de vezes em um dia de coleta  </li> </ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol> <li> Implementar <a href = “https://developer.android.com/guide/topics/media/mediaplayer”> MediaPlayer </a> para reprodução do som </li> </ol>  </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Should</td>
        </tr>
        <tr>
            <span id="ustory-04"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US04</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Eu como usuário gostaria de tirar fotos para que as fotos sejam salvas em um local apropriado</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol><li>Eu gostaria de tirar várias fotos em sequência sem ser interrompido</li> <li>Eu gostaria de tirar a(s) foto(s) apenas se o supermercado e a etiqueta estiverem selecionados </li></ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">  <ol> <li>Implementar o <a href= “https://developer.android.com/training/camerax”>CameraX </a> com o <a href = “https://developer.android.com/training/camerax/preview”>preview</a> e <a href = “https://developer.android.com/training/camerax/take-photo”>captura de imagem</a> </li></ol>  </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Must</td>
        </tr>
        <tr>
            <span id="ustory-03"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US03</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Eu como usuário gostaria de selecionar fotos da galeria para que elas sejam salvas em um local apropriado   </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol><li>Eu gostaria de selecionar e mandar uma quantidade arbitrária de fotos </li> <li>Eu gostaria selecionar a(s) foto(s) apenas se o supermercado e a etiqueta estiverem selecionados</li> </ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">    </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Could</td>
        </tr>
        <tr>
            <span id="ustory-11"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="3"> Classificação da imagem</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US11</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">eu como usuário gostaria de visualizar exemplos de cada etiqueta para que eu não cometa erros na hora da classificação manual </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol> <li>Eu gostaria que os exemplos focem separados por mercado</li> <li>Eu gostaria que os exemplos do mesmo mercado focem mostrados juntos para que eu possa compara-los </li> </ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">  <ol>  <li> Implementar a visualização dos exemplos das etiquetas com o <a href = "https://developer.android.com/guide/navigation/navigation-swipe-view#java">ViewPager</a> </li> <li>Organizar as pastas com os exemplos das etiquetas</li>   </ol>  </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Should</td>
        </tr>
        <tr>
            <span id="ustory-01"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US01</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">Eu como usuário gostaria de escolher um supermercado para que as fotos tiradas ou selecionadas da galeria sejam vinculadas e esse supermercado. </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1"><ol><li> Eu gostaria que a lista dos supermercados seja mostrada em ordem alifática  </li> <li> Eu gostaria que cada item dessa lista tivesse o logo do supermecado </li> </ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"> <ol> <li> Criar uma List&lt;Supplier&gt; para definir a lista de supermercados mostrados na lista. </li><li>Implementar o <a href = "https://developer.android.com/develop/ui/views/layout/recyclerview">RecyclerView</a> </li></ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Must</td>
        </tr>
        <tr>
            <span id="ustory-02"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US02</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Eu como usuário gostaria de escolher uma etiqueta para que as fotos tiradas <del>ou selecionadas </del>da galeria sejam vinculadas a essa etiqueta </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol><li> <del>Eu gostaria que a lista das etiquetas seja mostrada em ordem alfabética</del> </li> <li>Eu gostaria de selecionar uma etiqueta apenas se o supermercado estiver selecionado </li></ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">  <ol> <li>Chamar o cameraFragment com o <a href = "https://developer.android.com/reference/android/os/Bundle">Bundle</a> contendo as informações do Supplier utilizado  </li> <li>Criar os recursos <a href = "https://developer.android.com/guide/topics/resources/drawable-resource#NinePatch"> Drawable</a> do botão </li> <li>Programar o botão para iterar sobre o número das etiquetas </li></ol> </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Must</td>
        </tr>
        <tr>
            <span id="ustory-12"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="2">Envio da imagem</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US12</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Eu como usuário gostaria que as fotos tiradas sejam enviadas para o servidor para que elas sejam processadas </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol></ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol> <li> <del>As fotos devem ser envidas em batchs para o backEnd</del> </li> <li> As fotos devem ser envidas em um IntentService </li> <li>O ItentService deve manter atualizar o estado das imagens no bando de dados Room </li> <li>Enviar as fotos utilizando o <a herf = “https://square.github.io/retrofit/”>retrofit2</a> para enviar as fotos em um multipartFile </li> </ol>  </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Should</td>
        </tr>
        <tr>
            <span id="ustory-07"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US07</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Eu como usuário gostaria de ativar ou não o envio automático de fotos para que eu possa ter um controle sobre o envio. </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol> <li>eu gostatia que por padrão o envio automático estivesse ativado</li></ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"> <ol> <li>No toolbar da galeria deve existir a opção para desativar o envio automático</ol> </li> </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">should</td>
        </tr>
        <tr>
            <span id="ustory-08"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="3">Galeria</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">Visualizar informação</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US08</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"> Eu como usuário gostaria de visualizar as fotos que tirei em uma galeria para que eu possa ver informações sobre a foto.</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol> <li>Eu gostaria de ver o status do envio (envidado, não enviado, enviando), o mercado selecionado, a data do envio e o nome da imagem. </li> <li> Eu gostaria que a galeria se atualizasse automaticamente  </li> </ol></td> <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"> <ol> <li>Implementar o <a href = "https://developer.android.com/develop/ui/views/layout/recyclerview">RecyclerView</a> para a implementação da galeria </li> <li>Implementar o bando de dados <a href ="https://developer.android.com/training/data-storage/room">Room</a> para persistir no aplicativa as imagens salvas </li><li>Mostar as fotos salvas no banco de dados <a href ="https://developer.android.com/training/data-storage/room">Room</a> </li> <li>implementar o <a href ="https://developer.android.com/topic/libraries/architecture/livedata#use_livedata_with_room" > LiveData </a>com <a href ="https://developer.android.com/training/data-storage/room">Room</a> para manter a galeria atualizado </li> </ol>  </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Must</td>
        </tr>
        <tr>
            <span id="ustory-10"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">Apuração da imagem</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US10</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Eu como usuário gostaria de visualizar as fotos que tirei em uma janela específica para que eu possa atesta a qualidade da imagem e realizar algumas operações nela. </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol> <li>Eu gostaria de ícone(s) representando a(s) ação(ões) de <del>reenviar e</del> excluir.  </li> <li>eu gostaria de ampliar a foto com o gesto de pinça</li> </ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">  <ol> <li> Criar um Fragment e um XML de layout contendo uma ImageView para a visualização da imagem e ImagemButton para os icone(s)</li> <li> Criar a(s) imagem(ns) <a href = "https://developer.android.com/guide/topics/resources/drawable-resource#NinePatch"> Drawable </a> do(s) ícone(s) e adiciona-los em seu(s) respectivo(s) ImageButton </li> <li> Definir o onClik no RecyclerView.Adapter da galeria chamando o Fragment e passar a URI da imagem através de um bunble  </li></ol>  </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Should</td>
        </tr>
        <tr>
            <span id="ustory-09"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">Edição</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US09</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">eu como usuário gostaria de selecionar algumas fotos da galeria para que eu posso fazer algumas operações em conjunto  </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol> <li>Eu gostaria de excluir e/ou reenviar as fotos selecionadas</li> </ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">  <ol> <li>Criar um novo atributo booleano na classe Picture para controlar a seleção. Esse atributo deve ser ignorado pelo Room, ou seja, cada vez que a galeria e aberta todos os valores estarão como falso</li> <li>Criar um atributo booleano no RecyclerView.Adapter da galeria indicando se o modo de seleção de imagem está ativado. Cada item da galeria possuirá um onLongClik para alternar o modo seleção de imagem. </li> <li>Cada item selecionado deve ter a sua cor de plano de fundo alterado quando selecionado. Isso pode ser implementado no RecyclerView.Adapter da galeria <a herf = “https://stackoverflow.com/questions/36369913/how-to-implement-multi-select-in-recyclerview”> exemplo </a> </li> <li>O modo seleção de imagem deve ser desativo quando nenhuma imagem estiver selecionada. </li> <li>O modo de seleção da imagem deve ter a opção de selecionar todos e enviar as fotos selecionadas </li> </ol>  </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Should</td>
        </tr>
        <tr>
            <span id="ustory-05"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="2">Usuário</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="2">Cadastro</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1">US05</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Como usuário eu gostaria <del> de me cadastrar para</del> que os meus dados sejam <del>salvos</del> enviados junto com as fotos</td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol></ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">    </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Could</td>
        </tr>
        <tr>
            <span id="ustory-06"></span>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle" rowspan="1"> <del>US06 </del></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"> <del>Como usuário, eu gostaria de recuperar a minha senha para não perder minha conta</del></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle"><ol></ol></td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">    </td>
            <td style="border-style:solid;border-width:1px;text-align:center;vertical-align:middle">Won’t</td>
        </tr>
    </tbody>
</table>

## Referências

> “Theme vs Epic vs User Story vs Task.” Visual-Paradigm.com, 2018, [visual-paradigm](www.visual-paradigm.com/scrum/theme-epic-user-story-task/). Accessed 26 Sept. 2022.

## Histórico de versões

| Versão |   Data   |                Alteração                                                                               |         Responsável        |        Revisão         |
| :----: | :------: | :-------------------------------------:                                                                | :------------------------: | :--------------------: |
| 1.0.0  | 22/09/22 |Criação                                                                                                 |       Gabriel              |         Felipe         |
| 1.0.1  | 26/09/22 |Atualização da US01 e US04                                                                              |       Gabriel              |                  |
| 1.0.2  | 27/10/22 |Adicionando US07, US08, US09, US010<br>Atualizando US04                                                 |       Gabriel              |                  |
| 1.0.3  | 27/01/22 |Adicionando tasks para US07, US08, US09, US10, US01 US04, US02 <br> Atualizando prioridade US03         |       Gabriel              |                  |
| 1.0.4  | 03/11/22 |Adicionando US11    <br> Atualizando US02 US05 US06                                                     |       Gabriel              |                  |
| 1.0.5  | 04/11/22 |Adicionando US12 US13   <br> Atualizando US04                                                           |       Gabriel              |                  |
| 1.1.0  | 05/11/22 |Criação de epicos e features                                                                            |       Gabriel              |                  |
