Requisitos junto com Users Storys Requisitos Funcionais ID Requisitos Funcionais RF01 Permitir que o Pontista visualize o saldo de horas devidas, saldo de férias e o histórico de registros de ponto. RF02 Permitir ao Pontista justificar faltas com upload de documentos ou texto explicativo e visualizar o status das justificativas (Pendente, Aprovada, Reprovada). RF03 Permitir ao Pontista solicitar períodos de férias pelo sistema e notificar o Supervisor sobre a solicitação. RF04 Permitir ao Pontista registrar seus horários de entrada e saída de forma segura e garantir que apenas um ponto de entrada e um de saída sejam registrados por dia. RF05 Permitir ao Pontista acessar um calendário pessoal com marcação de pontos, feriados, faltas e justificativas. RF06 Permitir ao Supervisor listar e visualizar perfis de Pontistas, incluindo o saldo de horas devidas e o status das justificativas e férias. RF07 Permitir ao Supervisor aprovar ou rejeitar justificativas de faltas e pedidos de férias dos Pontistas. RF08 Permitir ao Supervisor visualizar e editar pontos facultativos e feriados locais no calendário. RF09 Permitir ao Supervisor gerar relatórios de frequência da equipe por usuário e período, e exportar em PDF ou Excel. RF10 Permitir ao Supervisor visualizar o histórico de suas aprovações e reprovações. RF11 Permitir ao Supervisor enviar mensagens ou notificações aos Pontistas. RF12 Permitir ao Administrador cadastrar novos usuários no sistema e atribuir os perfis de acesso adequados (Pontista, Supervisor, Administrador). RF13 Permitir ao Administrador configurar a carga horária padrão do sistema para os Pontistas. RF14 Permitir ao Administrador configurar o período de férias permitido aos usuários. RF15 Permitir a criação automática da conta de Administrador Mestre via variáveis de ambiente e restringir a apenas uma conta. RF16 Permitir login de usuários com e-mail e senha, protegido por Tokens JWT e sem armazenamento local de informações sensíveis. RF17 Garantir que a expiração da sessão ocorra após período de inatividade configurável e proteger as rotas de administração para acesso exclusivo do perfil ADMIN. RF18 Registrar logs de alterações e ações importantes no sistema para auditoria e diagnóstico, incluindo dados como usuário, IP e data/hora. RF19 Permitir exportação de dados para fins de auditoria ou backup. RF20 Permitir a recuperação de senha via e-mail (SNTP). RF21 Controlar dias úteis, carga horária, pontos facultativos e feriados nacionais para manter a integridade dos cálculos de presença. RF22 Suportar integração futura com outros sistemas via API. Requisitos Não Funcionais ID Descrição do Requisito Não Funcional RNF01 A expiração de sessão deve ocorrer automaticamente após um período de inatividade configurável. RNF02 As credenciais de usuário devem ser protegidas com hash (ex: bcrypt). RNF03 A autenticação deve ser protegida por Tokens JWT. RNF04 Nenhuma informação sensível do usuário deve ser armazenada localmente no navegador (LocalStorage/SessionStorage). RNF05 O sistema deve responder a ações do usuário (cliques, navegação, envios) em até 2 segundos, em rede estável (ping l e 200ms, banda g e 10 Mbps), medido no navegador. RNF06 A geração de relatórios (ex: frequência) deve ser concluída em no máximo 5 segundos. RNF07 O sistema deve obrigatoriamente usar HTTPS em todas as comunicações. RNF08 O sistema deve registrar logs contendo: ID do usuário, IP de origem, endpoint acessado, data/hora, tipo de ação (login, edição, falha, erro), código de resposta (200, 500 etc.). RNF09 Logs devem ser armazenados em sistema seguro com retenção mínima de 6 meses para fins de auditoria e diagnóstico. RNF10 Toda a interface textual do sistema (rótulos, mensagens de erro, botões e descrições) deve ser escrita em linguagem clara e formal, evitando termos técnicos de TI. RNF11 O horário, direção (entrada, saída) do ponto devem ser fornecidos e processados no backend (para segurança e integridade). Histórias de Usuário US01 - Visualizar Informações de Ponto Como Pontista, quero visualizar meu saldo de horas devidas, saldo de férias disponíveis e histórico de registros de ponto, para que eu possa acompanhar minha situação atual de horas trabalhadas e planejar folgas e férias. Critérios de Aceitação: Deve exibir o saldo total de horas devidas. Deve exibir o saldo de férias disponíveis. Deve apresentar o histórico de registros de ponto, com datas e horários. O acesso deve ser seguro e restrito ao próprio Pontista. US02 - Justificar Faltas Como Pontista, quero justificar minhas faltas anexando documentos ou inserindo uma explicação textual, e visualizar o status das justificativas (Pendente, Aprovada, Reprovada), para que eu possa regularizar minha presença e acompanhar o andamento das minhas justificativas. Critérios de Aceitação: Deve permitir o envio de justificativa textual e/ou upload de documento. Deve notificar o Supervisor sobre a nova justificativa pendente. Deve exibir o status atualizado da justificativa US03 - Solicitar Férias Como Pontista, quero solicitar meus períodos de férias diretamente pelo sistema, com notificação ao Supervisor, para que eu possa formalizar meu pedido de férias de forma prática e acompanhar o processo. Critérios de Aceitação: Deve permitir indicar o período de férias desejado. Deve notificar o Supervisor sobre a nova solicitação. Deve exibir o status da solicitação para o Pontista. US04 - Registrar Ponto Como Pontista, quero registrar meus horários de entrada e saída de forma segura, garantindo que apenas um ponto de entrada e um ponto de saída sejam registrados por dia, para manter um controle confiável da minha jornada de trabalho. Critérios de Aceitação: Deve permitir apenas um ponto de entrada e um de saída por dia. O horário e a direção (entrada/saída) devem ser processados no backend. Deve ser registrado FALTA caso o ponto não seja batido. US05 - Visualizar Calendário Pessoal Como Pontista, quero acessar um calendário pessoal com marcação de pontos, feriados, faltas e justificativas, para ter uma visão clara da minha frequência e organização do mês. Critérios de Aceitação: Deve exibir dias com pontos registrados. Deve indicar feriados e pontos facultativos. Deve destacar dias de falta e justificativas pendentes/aprovadas/reprovadas. US06 - Gerenciar Pontistas Como Supervisor, quero listar e visualizar perfis dos Pontistas, incluindo saldo de horas devidas e status das justificativas e férias, para acompanhar a equipe e realizar a gestão de forma eficiente Critérios de Aceitação: Deve permitir filtrar Pontistas por nome e status. Deve exibir saldo de horas devidas e status de justificativas e férias. O acesso deve ser restrito ao perfil Supervisor. US07 - Aprovar/Rejeitar Justificativas e Férias Como Supervisor, quero aprovar ou rejeitar justificativas de faltas e pedidos de férias dos Pontistas, para manter o controle correto de presenças e férias da equipe. Critérios de Aceitação: Deve permitir visualizar detalhes da justificativa antes da aprovação/rejeição. Deve permitir visualizar o período solicitado de férias antes da decisão. Deve registrar a decisão do Supervisor (Aprovada/Reprovada). US08 - Gerenciar Pontos Facultativos e Feriados Como Supervisor, quero visualizar e editar pontos facultativos e feriados locais no calendário, para manter o calendário da equipe atualizado e alinhado com as políticas da empresa. Critérios de Aceitação: Deve permitir cadastrar, editar e excluir pontos facultativos e feriados. Deve exibir os feriados nacionais integrados no calendário. Deve ter confirmação antes de excluir registros. US09 - Gerar Relatórios de Frequência Como Supervisor, quero gerar relatórios de frequência da equipe por usuário e período e exportá-los em PDF ou Excel, para analisar a assiduidade e pontualidade dos Pontistas. Critérios de Aceitação: Deve permitir escolher usuário(s) e período para o relatório. Deve permitir exportar o relatório em PDF e Excel. US10 - Histórico de Aprovações e Reprovações Como Supervisor, quero visualizar o histórico de minhas aprovações e reprovações (justificativas e férias), para ter um registro das minhas decisões e consultá-las quando necessário. Critérios de Aceitação: Deve exibir a lista de aprovações e reprovações com data, usuário afetado e status. Deve ser possível filtrar por tipo (justificativa, férias). O histórico deve ser mantido por no mínimo 6 meses. US11 - Enviar Mensagens e Notificações Como Supervisor, quero enviar mensagens e notificações aos Pontistas, para que eu possa comunicar informações importantes e alertas de forma prática e rápida. Critérios de Aceitação: Deve permitir redigir e enviar mensagens personalizadas. Deve ser possível escolher os destinatários (individual ou em grupo). Deve notificar o Pontista de forma clara e rastreável. US12 - Cadastrar Novos Usuários Como Administrador, quero cadastrar novos usuários no sistema e atribuir perfis de acesso, para permitir que novas pessoas utilizem a plataforma com os direitos adequados. Critérios de Aceitação: Deve permitir escolher o perfil de acesso (Pontista, Supervisor ou Administrador). Deve validar o e-mail antes de salvar. Deve exigir senha segura e confirmação de senha. US13 - Configurar Carga Horária Padrão Como Administrador, quero configurar a carga horária padrão do sistema, para garantir que os cálculos de horas devidas e banco de horas sejam corretos para todos os usuários. Critérios de Aceitação: Deve permitir definir quantidade de horas por dia/semana. Deve ser possível atualizar essa configuração a qualquer momento, com controle de versão. US14 - Configurar Período de Férias Permitido Como Administrador, quero configurar o período de férias permitido aos usuários, para garantir que as solicitações de férias estejam alinhadas com a política da empresa. Critérios de Aceitação: Deve permitir definir regras de acúmulo e utilização de férias. Deve validar se as solicitações seguem as regras configuradas. US15 - Criar Conta de Administrador Mestre Como Desenvolvedor do Sistema, quero permitir a criação automática da conta de Administrador Mestre via variáveis de ambiente, restringindo a apenas uma conta, para garantir a segurança e centralização da gestão administrativa. Critérios de Aceitação: A criação deve ocorrer na configuração inicial do sistema. Deve haver validação para permitir apenas uma conta de Administrador Mestre. US16 - Login Seguro Como usuário (Pontista, Supervisor ou Administrador), quero fazer login com e-mail e senha, protegido por Tokens JWT, sem armazenamento local de informações sensíveis, para garantir a segurança dos meus dados de acesso. Critérios de Aceitação: Deve exigir e-mail e senha para autenticação. A senha deve ser criptografada antes de ser salva. O token JWT deve ser gerado e validado no backend. Nenhuma informação sensível deve ser armazenada no navegador. US17 - Controle de Sessão e Rotas Seguras Como Administrador, quero garantir que a sessão expire após período de inatividade e que as rotas de administração sejam protegidas, para manter a segurança e o controle de acesso adequado. Critérios de Aceitação: Deve encerrar a sessão automaticamente após tempo configurável. As rotas de administração devem ser restritas ao perfil de Administrador. US18 - Registrar Logs do Sistema Como Administrador, quero registrar logs de ações e alterações no sistema, incluindo informações como usuário, IP, data/hora e tipo de ação, para auditoria e diagnóstico. Critérios de Aceitação: Deve registrar logs de login, edições, falhas, aprovações e exclusões. Deve registrar IP, data/hora, tipo de ação e código de resposta. Deve manter logs seguros por pelo menos 6 meses.  US19 - Exportar Dados para Auditoria Como Administrador, quero exportar dados do sistema para fins de auditoria ou backup, para garantir que as informações possam ser armazenadas e analisadas fora da plataforma. Critérios de Aceitação: Deve permitir exportação em formatos comuns (PDF, Excel, CSV). Deve incluir logs, histórico de ações e dados de usuários, conforme permissões. US20 - Recuperar Senha Como usuário, quero poder recuperar minha senha via e-mail (SNTP), para garantir acesso à plataforma em caso de esquecimento de senha Critérios de Aceitação: Deve enviar um e-mail com link seguro de redefinição. O link deve ter validade limitada (ex.: 24h). Deve exigir nova senha e confirmação no processo de redefinição. US21 - Controle de Dias Úteis e Feriados Como Administrador, quero controlar dias úteis, carga horária e pontos facultativos e feriados nacionais, para garantir cálculos corretos de presença e saldo de horas. Critérios de Aceitação: Deve permitir configurar calendário de feriados e pontos facultativos. Deve considerar esses dias nos cálculos de saldo e presença. US22 - Integração com Sistemas Externos Como Administrador, quero que o sistema suporte integração com outros sistemas via API, para permitir a comunicação com outras ferramentas corporativas no futuro. Critérios de Aceitação: Deve ter endpoints seguros e autenticados para comunicação. A documentação da API deve estar disponível para desenvolvedores. A integração deve ser modular para futuras expansões. Priorização MoSCoW das Histórias de Usuário  A priorização do backlog foi realizada utilizando o método  MoSCoW , uma técnica amplamente adotada para auxiliar na definição do que deve ser desenvolvido com maior urgência em projetos ágeis. Essa abordagem classifica as funcionalidades em três categorias principais:  Must have ,  Should have  e  Could have , cada uma representando um nível de prioridade distinto. Must have Funcionalidades essenciais, indispensáveis para o funcionamento mínimo do produto. Sua entrega é obrigatória, pois sem elas o produto não atende aos requisitos básicos de uso ou de negócio. Should have Funcionalidades importantes, que agregam valor significativo ao produto, mas que podem ser implementadas após os itens críticos. Embora não sejam vitais para o funcionamento imediato, sua ausência pode impactar a experiência do usuário ou a eficiência do sistema. Could have Funcionalidades desejáveis, que aumentam a atratividade ou conveniência do produto, mas que não são essenciais no escopo inicial. Podem ser consideradas caso haja tempo ou recursos disponíveis. Código História de Usuário Priorização US01 Visualizar saldo de horas, férias e histórico de ponto. Must have US04 Registrar ponto diário. Must have US16 Login seguro. Must have US20 Recuperar senha. Must have US21 Controle de dias úteis, carga horária e feriados. Must have US17 Controle de sessão e rotas seguras. Must have US15 Criar conta de Administrador Mestre. Must have US12 Cadastrar novos usuários. Must have US13 Configurar carga horária padrão. Must have US06 Gerenciar perfis de Pontistas. Should have US07 Aprovar/rejeitar justificativas e férias. Should have US02 Justificar faltas. Should have US03 Solicitar férias. Should have US05 Visualizar calendário pessoal. Should have US09 Gerar relatórios de frequência. Should have US10 Visualizar histórico de aprovações/reprovações. Should have US11 Enviar mensagens e notificações aos Pontistas. Should have US08 Gerenciar pontos facultativos e feriados. Should have US14 Configurar período de férias permitido. Should have US18 Registrar logs do sistema. Should have US19 Exportar dados para auditoria. Could have US22 Integração com sistemas externos. Could have