Foward-From
Neste documento busca-se construir a matriz de pós-rastreabilidade através da ótica Foward-From. Foram feitas duas tabelas, a primeira para requisitos funcionais e a segunda para os não funcionais.
Metodologia
Para o desenvolvimento do documento a seguir, a equipe decidiu separa-lo em duas tabelas, a primeira tabela com os requisitos funcionais e a segunda para os requisitos não-funcionais. Como vários membros da equipe iriam trabalhar no documento ao mesmo tempo, foram criadas duas tabelas no drive, para evitar a repetição de requisitos na tabela, que posteriormente seriam convertidas para formato markdown e colocadas na wikia. Link para as tabelas no drive: funcionais e não-funcionais.
Requisitos Funcionais
| Código | Descrição | Tema | Épico | US | Funcionalidade | Código | 
|---|---|---|---|---|---|---|
| RF1 | Tradução instântanea para mensagens em línguas diferentes da padrão | T04 | EP11 | US45 | Tradução | View | 
| RF2 | O aplicativo deve ser capaz de realizar videoconferências em grupo | T04 | EP11 | US46 | Videoconferência em grupo | Código - Método "livevideo" | 
| RF3 | A aplicação deve oferecer ao usuário a possibilidade de entrar no app através de username e senha, previamente cadatrados no aplicativo | T01 | EP01 | US01 US02 | Login | View Action | 
| RF4 | O app deve permitir o cadastro na aplicação por contas de serviços de terceiros ou a partir de dados do usuário, como email, username e senha | T01 | EP02 | US03 US04 | Cadastro | View Utils | 
| RF5 | O usuário deve ter a disposição, a criação de canais, subgrupos de discussão e grupos, privados/publicos, ilimitados. | T04 | EP08 | US18 US19 US21 | Criar channel | View Action | 
| RF6 | O usuário deve ser capaz de, dentro da plataforma, enviar mensagens dentro de grupos de conversa ou dentro de chats privados | T04 | EP08 | US20 | Enviar mensagem | Código - Método "sendMessage" | 
| RF7 | O usuário deve ser capaz de realizar uma busca de uma mensagem dentro de um determinado chat | T04 | EP11 | US48 | Procurar mensagem | Código - SearchMessages | 
| RF8 | O app deve oferecer a possibilidade do usuário instalar seu próprio servidor local. | T05 | EP16 | US65 | Servidor | View Action Util | 
| RF9 | A plataforma deve permitir a integração de Bots | T04 | EP14 | US62 | Bots | View Action Util | 
| RF10 | A plataforma deve permitir a alteração nas configurações do app | T03 | EP05 | US09 | Configurações do app | View Action Util Util | 
| RF11 | Possibilidade de alteração do idioma no aplicativo | T03 | EP05 | US09, US10 | Alterar idioma | View Util | 
| RF12 | Permitir usuario iniciar conexão com uma instância do Rocket.chat | T05 | EP16 | US65 | Conectar com um servidor | Código | 
| RF13 | Alteração de senha | T03 | EP05 | US12 | Alterar senha | Código - Método "newPassword" | 
| RF14 | Possibilidade de mencionar, um ou todos, os membros do grupo | T04 | EP11 | US43 | Mencionar | Código - Método "Mention" | 
| RF15 | Sistema deve ser capaz de Adicionar autenticação de 2 Fatores | T03 | EP06 | US13 | Autenticação 2 Fatores | View Util | 
| RF16 | Sistema deve mostrar e permitir a edição das configurações da conta | T03 | EP05 EP06 | US09 US14 | Editar conta | View Util | 
| RF17 | O sistema deve permitir o envio de arquivos e documentos em um chat | T04 | EP10 | US28 US33 | Envio de Arquivo | Código - Método "Files" | 
| RF18 | Permitir a alteração do status do usuário | T03 | EP06 | US15 | Alterar status | Código - Método "renderStatusItem" | 
| RF19 | App deve possuir ferramenta para busca de Channels | T03 | EP07 | US16 | Buscar channel | Código - Método "search" | 
| RF20 | App deve possuir opções para listar Channels em categorias | T03 | EP07 | US17 | Ordenar por categoria | Código - Método "groupByType" | 
| RF21 | Possibilidade de favoritar um grupo | T04 | EP11 | US42 | Favoritar Channel | Código - Método "renderRole" | 
| RF22 | Permitir a alteração de privacidade do Channel | T04 | EP09 | US22 | Privacidade do Channel | Código - Método "renderType" | 
| RF23 | Definir Channel como Read Only | T04 | EP09 | US23 | Read Only | Código - Método "renderReadOnly" | 
| RF24 | Definir Channel para BroadCast | T04 | EP09 | US24 | BroadCast | Código - Método "renderBroadcast" | 
| RF25 | Permitir que o usuário possa adicionar ou visualizar as informações do Channel através de uma descrição, tópico do Channel | T04 | EP09 EP11 | US25 US26 US47 | Adicionar descrição | Código - Método "description" | 
| RF26 | App deve permitir o envio de desenhos, como mensagens | T04 | EP10 | US30 | Desenho | Código - Método "drawing" | 
| RF27 | O sistema deve permitir o envio de arquivos de midia, como vídeo e áudio | T04 | EP10 | US31 | Midia | Código - Método "Files" | 
| RF28 | O usuário deve poder editar suas mensagens enviadas | T04 | EP10 | US34 | Editar Mensagens | Código - Método "editing" | 
| RF29 | O usuário deve poder copiar uma mensagem | T04 | EP10 | US35 | Copiar Mensagem | Código - Método "copying" | 
| RF30 | O sistema deve oferecer uma maneira para o usuário possa compartilhar mensagens | T04 | EP10 | US36 | Compartilhar Mensagens | Código - Método "sharing" | 
| RF31 | O usuário deve ter a possibilidade excluir uma mensagem a qualquer momento | T04 | EP10 | US38 | Excluir Mensagem | Código - Método "deleteMessage" | 
| RF32 | Usuário deve poder adicionar reações a mensagens | T04 | EP10 | US39 | Adicionar reação a mensagens | Código - Método "onReactionPress" Código | 
| RF33 | Usuário deve ser capaz de responder mensagens enviadas dentro de Channels que ele participa | T04 | EP10 | US40 | Responder Mensagem | Código - Método "replying" | 
| RF34 | Usuário deve ter a possibilidade de reportar alguma mensagem em um Channel que não respeite as diretrizes do app | T04 | EP10 | US41 | Reportar Mensagem | Código - Método "reporting" | 
| RF35 | O sistema deve ser capaz de exibir notificações para mensagens não lidas e para menções em chats e possibilitar ao usuário a configuração das mesmas | T04 | EP11 | US44 | Notificações | Código - Método "toggleNotifications" | 
| RF36 | A aplicação deve fornecer suporte aos seus usuários via chat e e-mail. | T02 | EP03 | US05 US06 | Suporte | Código - Método "sendEmail" | 
| R37 | O app deve oferecer a possibilidade do usuário procurar mensagens por texto | T04 | EP11 | US48 | Procurar mensagens | Código - Método "searchText" | 
| R38 | O Sistema deve permitir que o usuário favorite uma mensagem | T04 | EP11 | US49 | Favoritar mensagem | View | 
| R39 | O Sistema deve permitir que o usuário possa fixar uma mensagem no Channel | T04 | EP11 | US50 | Fixar mensagem | View | 
| R40 | O Usuário deve conseguir convidar membros do Channel para o Video Chat | T04 | EP12 | US53 | Convidar membros para video chat | View | 
| R41 | O Sistema deve permitir que o usuário possa compartilhar a tela de seu dispositivo | T04 | EP12 | US57 | Compartilhar tela | View | 
| R42 | A aplicação deve permitir que o usuário possa visualizar a lista de membros do Channel | T04 | EP13 | US58 | Visualizar membros | Código - Método "Members" | 
| R43 | A Aplicação deve permitir que o usuário possa visualizar informações básicas de outro usuário | T04 | EP13 | US59 | Visualizar informações de usuários | View | 
| R44 | A Aplicação deve permitir que os usuários administradores do Channel possam adicionar novos usuários | T04 | EP13 | US60 | Adicionar membros | Código - Método "canAddUser" | 
| R45 | A Aplicaçaõ deve permitir que os usuários administradores do Channel possam remover usuários | T04 | EP13 | US61 | Remover membros | View | 
| R46 | A Aplicação deve permitir que os usuários possam esconder um Channel | T04 | EP15 | US63 | Esconder channel | View | 
| R47 | A Aplicação deve permitir que os usuários possam deixar um Channel | T04 | EP15 | US64 US63 | Deixar channel | Código - Método "leaveChannel" Action - Método "leaveRoom" | 
| R48 | O Sistema deve permitir que um usuário possa visualizar todos os Channels visiveis do Servidor | T04 | EP15 | US69 | Visualizar channels | View Action Util | 
| R49 | O Sistema deve permitir que um usuário possa visualizar a lista com todos os usuários do Servidor | T04 | EP15 | US70 | Visualizar usuários de um servidor | View Action | 
| RF50 | Sistema deve permitir que o usuário visualize as lista de arquivos enviados no channel | T04 | EP10 | US51 | Visualizar arquivos enviados | Código - Método "Files" | 
Requisitos Não-Funcionais
| Código | Descrição | NFR | Operacionalizações | Funcionalidade | 
|---|---|---|---|---|
| RNF1 | A aplicação deve ser capaz de ser executada em diversas plataformas | NFR-Portabilidade | "Acesso por aplicação mobile". "Acesso por aplicação web"; "Acesso por aplicação desktop"; | Plataformas | 
| RNF2 | O Rocket.chat deve ofecer suporte tanto para a aplicação, em diversas arquiteturas, como para o usuário | NFR-03 | "Documentação" "Suporte online" | Suporte | 
| RNF3 | Deve ser uma plataforma que ofereça segurança com dados dos usuários. | NFR-03 | "Criptografia ponta a ponta" "Backup de dados" | |
| RNF4 | O Rocket.chat deve estar disponível na maior quantidade possível de idiomas | NFR-05 | "Traduzir todos os menus do app para diferentes linguagens" "permitir a escolha de nova linguagem dentro do app" | Idiomas | 
| RNF5 | O Rocket.chat deve ter uma boa interface visual, minimalista e intuitiva, facilitando a usabilidade do usuário. | NFR-04 | "Layout simples"; "Icones intuitivos"; "Descrições" | Repositório aplicação desktop/web Repositório aplicação mobile | 
| RNF6 | A plataforma deve possuir uma documentação bem organizada. Que explique todas as funcionalidades e restrições aplicáveis. | NFR-03 | "Documentação" | |
| RNF7 | A aplicação, sendo do tipo openSource, deve possuir a liberdade da contribuição pela comunidade de software | NFR-08 | "Encorajar a evolução do código existente""Divulgar as vantagens da comunidade ser ativa" | |
| RNF8 | A aplicação deve oferecer uma performace fluida ajude na experiência positiva do usuário | NFR-02 | "Compressão de dados" "uso de cach para dados não modificados" | |
| RNF9 | Visando uma melhor experiência ao usuário e desempenho da plataforma, o app deve fazer integrações com diferentes plataformas | NFR-09 | "Integrável com redes sociais para autenticação" | |
| RNF10 | A plataforma deve identificar e tratar erros dentro do aplicativo | 
Gifs
RF1_GIF

RF2_GIF

RF3_GIF

RF4_GIF

RF5_GIF

RF6_GIF

RF7_GIF

RF8_GIF

RF9_GIF
RF10_GIF

RF11_GIF
RF12_GIF
RF13_GIF

RF14_GIF

RF15_GIF

RF16_GIF

RF17_GIF

RF18_GIF

RF19_GIF

RF20_GIF

RF21_GIF

RF22_GIF

RF23_GIF

RF24_GIF

RF25_GIF

RF26_GIF

RF27_GIF

RF28_GIF

RF29_GIF

RF30_GIF

RF31_GIF

RF32_GIF

RF33_GIF

RF34_GIF

RF35_GIF
RF36_GIF

RF37_GIF

RF38_GIF

RF39_GIF

RF40_GIF

RF41_GIF

RF42_GIF

RF43_GIF

RF44_GIF

RF45_GIF

RF46_GIF

RF47_GIF

RF48_GIF

RF49_GIF

RF50_GIF

RNF1
Mobile

Web navegador

Desktop

RNF2
Suporte


RNF4

Versionamento
| Data | Versão | Modificação | Autor | 
|---|---|---|---|
| 16/06/2019 | 1.0 | Abertura do documento | Marcos Nery | 
| 17/06/2019 | 1.1 | Inclusão das tabelas inicias de requisitos | Marcos Nery | 
| 18/06/2019 | 1.2 | Inclusão dos elos | Marcos Nery | 
| 19/06/2019 | 1.3 | Inclusão dos GIFS | André Lucas | 
| 24/06/2019 | 1.4 | Inclusão dos Requisitos RF37-RF50 | Heron Rodrigues |