Documento de Requisitos - Synapse

1. Introdução

Este documento consolida os Requisitos Funcionais (RFs) e os Requisitos Não Funcionais (RNFs) do sistema Synapse.
Ele serve como referência para a equipe de desenvolvimento, garantindo clareza sobre o que o sistema deve fazer e como deve se comportar.


2. Requisitos Funcionais

Épico 001: Autenticação e Cadastro

Permitir que os usuários criem e acessem suas contas de forma segura.

IDRequisito Funcional
HU001.1Cadastro de Usuário com E-mail e Senha
HU001.2Autenticação de Usuário com E-mail e Senha
HU001.4Autenticação com Google (Login Social)
HU001.5Login sem senha (Magic Login)

Épico 002: Consumo de Notícias

Garantir a melhor experiência para o usuário ao visualizar e interagir com conteúdos noticiosos.

IDRequisito Funcional
TT002.1(Técnico) Coleta Automatizada de Notícias via Job
HU002.1Visualização do Feed Principal de Notícias
HU002.10Ler o conteúdo completo de uma notícia dentro da plataforma
HU002.8Favoritar / Salvar uma Notícia para ler depois
HU002.3Filtros Avançados no Feed (por data, etc.)
HU002.2Aba “Recomendados” com base no comportamento do usuário
TT002.2(Técnico) Salvar comportamento do usuário para o sistema de recomendação
HU002.9Interação “Não Tenho Interesse” em uma Notícia
HU002.5Resumo do Dia com IA (por tópico)
HU002.6Visualizar Notícias Agrupadas por Fonte
HU002.4Seção de Notícias “Quentes” (Hot News)
HU002.7Notícias por Localização

Épico 003: Perfil e Preferências

Permitir que o usuário visualize e personalize suas informações e preferências.

IDRequisito Funcional
HU003.1Visualizar a Página de Perfil (“Minha Conta”)
HU003.5Seleção Inicial de Interesses (Tópicos) no Onboarding
HU003.6Editar Informações da Conta (Nome, Data de Nascimento)
HU003.7Alterar Senha
HU003.8Gerenciar Tópicos Preferidos (Adicionar/Remover)
HU003.9Gerenciar Fontes de Notícias Preferidas (Adicionar/Remover)
HU003.4Logout de Usuário
HU003.2Visualizar Página de Notícias Favoritas
HU003.3Histórico de Notícias Lidas

Épico 004: Newsletter

Automatizar o envio de newsletters personalizadas com base nos interesses do usuário.

IDRequisito Funcional
HU004.1Envio da Newsletter Diária com base nos interesses
HU004.5Habilitar/Desabilitar Recebimento da Newsletter
HU004.2Seleção de Interesses específica para a Newsletter
HU004.3Sistema de Feedback sobre Notícias da Newsletter
HU004.4Personalização do Prompt de Resumo da IA para a Newsletter

3. Requisitos Não Funcionais

Desempenho

IDRequisitoMétrica
RNF-01Tempo de Resposta da API95% das requisições GET < 500ms
RNF-02Carregamento da Página Principal< 3s em conexão banda larga
RNF-03Execução do Job de ColetaConcluir em < 1 hora
RNF-04Chamadas à IAResumo em até 10s

Segurança

IDRequisitoMétrica
RNF-05Armazenamento de SenhasHash + sal (bcrypt)
RNF-06Autenticação de APIJWT obrigatório
RNF-07Comunicação SeguraExclusivamente HTTPS
RNF-08Proteção de ChavesSomente via variáveis de ambiente

Usabilidade

IDRequisitoMétrica
RNF-09ResponsividadeSuporte a Desktop, Tablet e Smartphone
RNF-10Compatibilidade com NavegadoresÚltimas 2 versões de Chrome, Firefox, Safari
RNF-11Feedback VisualIndicador de carregamento em ações demoradas

Manutenibilidade e Escalabilidade

IDRequisitoMétrica
RNF-12ContainerizaçãoDocker + Docker Compose
RNF-13Padrões de CódigoPython PEP8, JS/React com Prettier
RNF-14Separação de CamadasController, Service, Repository
RNF-15LoggingLog de coletas e erros críticos da API