Requisitos do Sistema
Esta tabela lista todos os requisitos do projeto, sua prioridade e descrição detalhada.
Requisitos Funcionais
| ID | Requisito | Importância | Descrição | Critérios de Sucesso |
|---|---|---|---|---|
| Autenticação e Conta | ||||
| RF-001 | Login de Usuáriso | MUST | Eu como usuário cadastrado, quero fazer login usando meu e-mail e senha para ter acesso às funcionalidades exclusivas do meu perfil e interagir com a plataforma. | - O usuário consegue fazer login com credenciais válidas e é redirecionado para a página inicial logada. - O sistema exibe uma mensagem de erro clara ("E-mail ou senha inválidos") ao tentar login com credenciais incorretas. |
| RF-002 | Cadastro | MUST | Eu como visitante, quero criar uma conta fornecendo meus dados básicos para poder utilizar as funcionalidades do site. | - Após preencher o formulário com dados válidos, a conta é criada com sucesso e o usuário é logado. - O sistema exibe uma mensagem de erro se o e-mail informado já estiver em uso. - O sistema valida a força da senha e informa o usuário se os critérios não forem atendidos. |
| RF-003 | Recuperação da Senha | MUST | Eu como usuário cadastrado que esqueceu a senha, quero solicitar um link de redefinição por e-mail para recuperar o acesso à minha conta de forma segura. | - Ao inserir um e-mail cadastrado, o usuário recebe um e-mail com um link para redefinir sua senha. - Após redefinir a senha, o usuário consegue fazer login com as novas credenciais. |
| RF-004 | Manter Sessão Ativa | SHOULD | Eu como usuário cadastrado, quero ter a opção de 'Manter-se Conectado' ao fazer login para não precisar inserir minhas credenciais toda vez que eu visitar o site no mesmo dispositivo. | - Se a opção "Manter-se Conectado" for marcada, o usuário permanece logado após fechar e reabrir o navegador. - Se a opção não for marcada, o usuário é desconectado ao fechar a sessão do navegador. |
| RF-005 | Encerramento de Sessão | MUST | Eu como usuário logado, quero clicar em um botão 'Sair' para encerrar minha sessão de forma segura e proteger minha conta. | - Ao clicar no botão "Sair", a sessão do usuário é encerrada imediatamente. - Após o logout, o usuário é redirecionado para a página inicial. - O usuário não consegue acessar páginas restritas após o logout. |
| Página de Perfil | ||||
| RF-006 | Visualização de Dados do Perfil | MUST | Eu como usuário logado, quero visualizar as informações do meu perfil (nome, e-mail, foto, pontuação) para consultar meus dados cadastrados. | - Todas as informações salvas do usuário são exibidas corretamente na página de perfil. |
| RF-007 | Edição de Dados Pessoais | MUST | Eu como usuário logado, quero editar minhas informações pessoais (como nome e foto de perfil) para manter meus dados atualizados. | - O usuário consegue alterar seus dados e salvá-los com sucesso. - As informações atualizadas são refletidas imediatamente na página de perfil. |
| RF-008 | Visualização de Histórico de Denúncias | SHOULD | Eu como usuário logado, quero ver uma lista de todas as denúncias que eu já fiz. | - A página exibe uma lista com todas as denúncias feitas pelo usuário. |
| RF-009 | Gerenciamento de Denúncia | MUST | Eu como usuário que realizou uma denúncia, quero poder cancelar uma denúncia para corrigir um erro ou evitar informações duplicadas. | - O sistema solicita uma confirmação antes de cancelar a denúncia permanentemente. |
| RF-010 | Visualização de Interações do Usuário | COULD | Eu como usuário logado, quero ver um feed com todas as minhas atividades recentes (ex: comentários e posts). | - A página exibe uma lista cronológica das últimas postagens. - Cada interação na lista contém um link para o conteúdo original. |
| Página de Orientação | ||||
| RF-011 | Guia de Denúncia | MUST | Eu como usuário que não sabe a quem recorrer, quero uma página que possua o passo a passo para realizar denúncias de acordo com a minha necessidade. | - Fluxo claro de etapas para cada tipo de denúncia. - Disponibilidade de links de acesso direto aos órgãos competentes. - Linguagem simples e acessível. - O usuário deve conseguir realizar todos os processos sem necessitar de informações exteriores. |
| RF-012 | Links para Denúncia | MUST | Eu como usuário quero links de acesso claros e intuitivos que me redirecionem as páginas e canais de denúncia de órgãos oficiais. | - O link deve redirecionar para a página proposta diretamente. - O link deve ser mostrado de maneira clara e intuitiva. - A responsividade do link deve ser eficiente, redirecionando em menos de 2s. |
| RF-013 | Perguntas Frequentes | SHOULD | Eu como usuário com dúvidas, quero uma seleção das perguntas mais feitas por outros usuários com um fácil acesso. | - As perguntas devem estar realizadas de maneira clara. - As respostas devem ser pertinentes e conter links ou tutoriais necessários. |
| RF-014 | Encaminhamento Automático | COULD | Eu como usuário que fez uma denúncia, quero que após realizar minha denuncia apareça links de redirecionamento para o canal oficial de acordo com o tipo de denúncia. | - O link de acesso ao canal de denuncia e ao tutorial deve ser de acordo com o tipo de denúncia realizada. - Os links devem estar claros e intuitivos após realizar a denúncia. - Todos os redirecionamentos devem ser realizados em no máximo 2s. |
| Página de Gráficos e Notícias | ||||
| RF-015 | Gráfico por Categoria de Denúncia | SHOULD | Eu como usuário, quero visualizar dividido por tipo de denúncias um gráfico para entender quais os maiores problema da minha universidade. | - O Gráfico mostra a comparação entre a quantidade de denúncias separado por tipo de forma precisa. - Ele é atualizado em tempo real. - O Gráfico é claro e intuitivo. |
| RF-016 | Linha do Tempo de Denúncias | SHOULD | Eu como usuário, quero visualizar um gráfico que demonstra o número de denúncias realizadas a cada mês. | - O gráfico é claro, intuitivo e atualizado em tempo real. - O gráfico busca precisamente o mês referente a denúncia. |
| RF-017 | Top Denúncias | COULD | Eu como usuário, quero visualizar as 3 postagens mais apoiadas nos últimos 30 dias. | - Apenas as postagens dos últimos 30 dias podem ser apresentadas. - Deve mostrar a postagem de maneira clara e o número de apoios. |
| Página de Denúncias | ||||
| RF-018 | Moderação e Denúncia de Abuso | MUST | Eu como usuário, quero ter a opção de denunciar conteúdos ofensivos ou abusivos para que a moderação da plataforma possa analisar e tomar as medidas necessárias. | - O botão de denúncia deve estar visível em todas as postagens/comentários. - O usuário deve poder escolher o motivo da denúncia em uma lista pré-definida. - A denúncia deve ser registrada com data, hora e IDs. - A moderação deve receber notificação imediata. |
| RF-019 | Filtros e Busca | COULD | Eu como usuário que deseja encontrar uma denúncia específica, quero poder filtrar e buscar denúncias por categoria para encontrar facilmente o conteúdo que procuro. | - O sistema deve permitir busca por palavras-chave no título e conteúdo. - Deve haver filtros por categoria, período de tempo e status. - Os resultados devem ser apresentados em no máximo 2 segundos. |
| RF-020 | Publicação de Denúncia | MUST | Eu como usuário que presenciou uma irregularidade, quero registrar uma denúncia na plataforma de forma clara e intuitiva para que o problema seja reportado. | - O formulário deve ser simples, com campos obrigatórios (categoria, descrição, anexos opcionais). - Registro no banco de dados com carimbo de data/hora e ID único. - O usuário deve receber confirmação de envio. - A denúncia deve ser exibida imediatamente no feed. |
| RF-021 | Timeline de Denúncias | MUST | Eu como usuário do sistema, quero visualizar em uma linha do tempo todas as denúncias publicadas, ordenadas por data de publicação. | - As denúncias devem estar ordenadas do mais recente para o mais antigo. - Cada item deve mostrar título, resumo, data e número de apoios. - A timeline deve atualizar em tempo real. |
| RF-022 | Comentários nas Denúncias | SHOULD | Eu como usuário interessado em uma denúncia, quero comentar e interagir diretamente nela para compartilhar informações ou apoiar a discussão. | - Cada denúncia deve permitir comentários públicos. - O sistema deve registrar o autor, data e conteúdo. - Comentários devem poder ser denunciados/moderados. - Listagem em ordem cronológica. |
| RF-023 | Sistema de Reações | SHOULD | Eu como usuário que leu uma denúncia, quero reagir com apoio para expressar minha opinião sem precisar escrever um comentário. | - O sistema deve permitir pelo menos a reação “Apoiar”. - O número total de reações deve ser atualizado em tempo real. - Cada usuário só pode reagir uma vez por denúncia. |
| Administração | ||||
| RF-024 | Gestão de Denúncias | MUST | Eu como administrador, quero acessar todas as denúncias registradas e poder gerenciá-las (excluir, encontrar o autor). | - Lista com todas as denúncias filtráveis. - Registro de alterações no histórico. - Lista separada para denúncias reportadas. - Facilidade para remover denúncias do ar. |
| RF-025 | Gestão de Usuários | MUST | Eu como administrador, quero gerenciar os usuários da plataforma (ativar, desativar, banir). | - Listagem de todos os usuários. - Possibilidade de excluir contas. - Registro de ações no histórico administrativo. |
| RF-026 | Postagens e Gestão de Notícias | SHOULD | Eu como administrador, quero poder postar e editar de maneira fácil e rápida notícias para os usuários comuns. | - Lista separada para postagens de notícias. - Edição intuitiva e responsiva. - Facilidade para excluir notícias. |
| RF-027 | Configurações do Sistema | SHOULD | Eu como administrador, quero acessar as configurações gerais do sistema para ajustar o funcionamento conforme necessário. | - Interface clara para alteração de parâmetros principais. - Acesso restrito a administradores. - Registro de alterações. |
| RF-028 | Administrador Mestre | MUST | Eu como administrador mestre, quero poder excluir e editar notícias de administradores e poder excluir administradores. | - Privilégios exclusivos a esse administrador. - Acesso restrito ao perfil de administrador mestre. |
Requisitos Não-Funcionais
| ID | Requisito | Importância | Descrição | Critérios de Sucesso |
|---|---|---|---|---|
| Confiabilidade e Disponibilidade | ||||
| RNF-001 | Disponibilidade do Sistema | MUST | Eu como usuário, quero que o sistema esteja disponível na maior parte do tempo, para que eu possa acessá-lo sempre que precisar. | - O sistema deve ter disponibilidade mínima de 99,5% mensal (~3h36min de downtime). |
| RNF-002 | Suporte a Múltiplos Usuários | MUST | Eu como administrador, quero que o sistema suporte muitos usuários conectados ao mesmo tempo, para garantir estabilidade mesmo em períodos de pico. | - O sistema deve suportar pelo menos 250 usuários simultâneos sem degradação perceptível. |
| Usabilidade | ||||
| RNF-003 | Interface Intuitiva | MUST | Eu como usuário, quero uma interface simples e clara, para que eu consiga utilizar a plataforma sem precisar de ajuda externa. | - Ícones, textos e botões devem ser autoexplicativos. - Fluxos críticos (ex.: denúncia, cadastro) devem ser realizados em até 4 passos. |
| RNF-004 | Responsividade | MUST | Eu como usuário que acessa pelo celular, quero que a plataforma seja responsiva, para que eu consiga navegar sem dificuldades em qualquer dispositivo. | - A interface deve funcionar corretamente em desktop, tablet e mobile. - Todos os elementos devem se adaptar automaticamente ao tamanho da tela. |
| RNF-005 | Confirmação em Ações Críticas | MUST | Eu como usuário, quero receber uma confirmação antes de ações irreversíveis (ex.: excluir conta, cancelar denúncia), para evitar erros acidentais. | - Toda ação crítica deve exibir uma caixa de confirmação. - Apenas após confirmação explícita a ação é executada. |
| Manutenção e Evolução | ||||
| RNF-006 | Qualidade do Código | MUST | Eu como desenvolvedor, quero que o código siga boas práticas, para que seja legível, padronizado e fácil de manter. | - O código deve seguir padrões de clean code. - Deve haver documentação interna (README, comentários claros). |
| RNF-007 | Testes | MUST | Eu como administrador de qualidade, quero que o sistema seja testado, para garantir que erros sejam detectados rapidamente. | - Deve haver cobertura mínima de 70% do código crítico (login, denúncias, permissões). |
| RNF-008 | Documentação Técnica | MUST | Eu como desenvolvedor, quero ter documentação atualizada da plataforma, para compreender arquitetura, APIs e permissões. | - Deve haver documentação clara de endpoints, fluxos e arquitetura. - Documentação deve ser atualizada junto a cada nova release. |
| Segurança e Privacidade | ||||
| RNF-009 | Criptografia de Senhas e Dados Pessoais | MUST | Eu como usuário cadastrado quero que minha senha e demais dados pessoais e dados sensíveis sejam protegidos e armazenados por criptografia, a fim de garantir a segurança, inviolabilidade e não vazamento dos meus dados. | - As senhas não serão armazenadas em texto plano, e sim com um hash seguro. - O sistema deve autenticar um usuário com sucesso ao comparar o hash da senha digitada no login com o hash armazenado no banco de dados. - Dados pessoais e sensíveis no banco de dados devem estar criptografados. |
| RNF-010 | Anonimização de Denúncias | MUST | Eu como usuário cadastrado denunciante quero a opção de anonimato e não exposição dos meus dados a denúncia feita, para que eu me sinta seguro e protegido sempre que sentir a necessidade de realizar outras denúncias. | - Login e fornecimento de informações pessoais opcionais na realização de uma denúncia. - O sistema não deve armazenar metadados que possam identificar o denunciante, como endereço de IP, junto à denúncia. |
| RNF-011 | Notificações de Segurança | COULD | Eu como usuário cadastrado quero ser notificado por email sobre atividades que ameacem a segurança da minha conta, para que eu possa agir rapidamente, como em caso de alteração da minha senha ou um login em um novo dispositivo. | - O sistema envia um e-mail de notificação imediatamente após uma alteração de senha bem-sucedida. - O sistema envia uma notificação quando um login é realizado a partir de um novo dispositivo pela primeira vez. - O e-mail deve conter informações relevantes e um link para a página de suporte ou para redefinir a senha. |
| Conformidade Legal | ||||
| RNF-012 | LGPD e Consentimento | MUST | Eu como usuário, quero ter controle sobre meus dados, para garantir que a plataforma está em conformidade com a Lei Geral de Proteção de Dados (LGPD). | - O sistema deve apresentar política de privacidade clara e acessível. - No cadastro, o usuário deve consentir ativamente com termos de uso e política de privacidade. - No perfil, o usuário deve poder gerenciar permissões e solicitar exclusão de dados. |
Tipos de Usuário
Tipo de Usuário (Enum) |
Descrição / Perfil | Permissões Principais | Restrições Importantes |
|---|---|---|---|
COMUM |
Estudante / Padrão Usuário base do sistema. Acesso focado em criar e gerenciar seu próprio conteúdo. |
• Criar Denúncias. • Editar o próprio perfil (Nome/Foto). • Editar texto das próprias denúncias. • Excluir (Soft) a própria conta. • Excluir (Soft) as próprias denúncias. |
• Não pode criar/editar/excluir Categorias. • Não pode excluir contas de terceiros. • Não pode excluir denúncias de terceiros. • Não pode criar usuários do tipo Admin. |
ADMIN |
Servidor / Moderador Focado na moderação de conteúdo e limpeza da comunidade. |
• Todos os privilégios de COMUM.• Excluir contas de usuários COMUM.• Excluir denúncias de usuários COMUM (Moderação).• Acesso a áreas de gestão restritas. |
• Não pode criar/editar/excluir Categorias. • Não pode excluir outros ADMIN ou ADMINMASTER.• Não pode alterar o texto de denúncias de terceiros (apenas remover). |
ADMINMASTER |
Gestor / Super Admin Controle total do sistema e configurações globais. |
• Todos os privilégios de ADMIN.• CRUD Completo de Categorias (Criar, Editar, Deletar). • Criar novos usuários ADMIN.• Excluir contas de ADMIN e COMUM.• Excluir qualquer denúncia. |
• Apenas um perfil com privilégios ADMINMASTER (Segurança de Sistema).• Não pode se auto-deletar via rota administrativa (para evitar sistema órfão). |
Hierarquia de Exclusão
| Atacante (Logado) \ Vítima (Alvo) | COMUM |
ADMIN |
ADMINMASTER |
|---|---|---|---|
COMUM |
🟢 (Apenas se for ele mesmo) | 🔴 Proibido | 🔴 Proibido |
ADMIN |
🟢 Permitido | 🔴 Proibido* | 🔴 Proibido |
ADMINMASTER |
🟢 Permitido | 🟢 Permitido | 🔴 Proibido |
Nota: um ADMIN pode se auto-deletar, mas não pode deletar outro ADMIN.