Requisitos junto com Users Storys
Requisitos Funcionais
| ID | Descrição do Requisito Funcional |
|---|---|
| RF01 | Permitir o login de usuários com e-mail e senha. |
| RF02 | Suportar dois perfis de acesso: Supervisor e Usuário Comum (Pontista). |
| RF03 | Oferecer funcionalidade de recuperação de senha via e-mail (SNTP). |
| RF04 | Permitir ao Pontista visualizar o saldo de horas devidas. |
| RF05 | Permitir ao Pontista visualizar o saldo de dias de férias disponíveis. |
| RF06 | Exibir ao Pontista o histórico de registros de ponto por data. |
| RF07 | Apresentar um calendário pessoal ao Pontista, com marcação de pontos, feriados e faltas. |
| RF08 | Permitir ao Pontista justificar faltas com upload de documentos e/ou texto. |
| RF09 | Notificar o Supervisor sobre novas justificativas de faltas pendentes. |
| RF10 | Exibir ao Pontista o status da justificativa (Pendente, Aprovada, Reprovada). |
| RF11 | Permitir ao Pontista solicitar períodos de férias. |
| RF12 | Permitir ao Supervisor listar e visualizar perfis de Pontistas, com filtro por nome e status de ponto. |
| RF13 | Permitir ao Supervisor visualizar as horas devidas de cada Pontista. |
| RF14 | Permitir ao Supervisor aprovar ou rejeitar justificativas de faltas. |
| RF15 | Permitir ao Supervisor aprovar ou rejeitar pedidos de férias. |
| RF16 | Permitir ao Supervisor visualizar pontos facultativos e feriados no calendário. |
| RF17 | Permitir ao Supervisor adicionar e editar pontos facultativos locais. |
| RF18 | Permitir ao Supervisor gerar relatórios de frequência (por usuário, período) e exportá-los em PDF/Excel. |
| RF19 | Exibir ao Supervisor o histórico de aprovações/reprovações (justificativas, férias). |
| RF20 | Permitir ao Supervisor enviar mensagens ou notificações aos Pontistas. |
| RF21 | Permitir o registro de ponto de entrada/saída com horário automático. |
| RF22 | Exibir o histórico de pontos por mês. |
| RF23 | Marcar feriados nacionais e pontos facultativos no calendário. |
| RF24 | Controlar dias úteis e carga horária. |
| RF25 | Enviar e-mails de notificação (justificativa, solicitação de férias, mudança de status). |
| RF26 | Exibir notificações internas (alerta de ponto atrasado, solicitações pendentes para Supervisor). |
| RF27 | Registrar logs de alterações (quem aprovou, quando). |
| RF28 | Manter histórico completo de atividades por Pontista. |
| RF29 | Permitir a exportação de dados para fins de auditoria ou backup. |
| RF30 | Permitir o cadastro de novos usuários. |
| RF31 | Fazer a gestão de permissões (para futura expansão). |
| RF32 | Permitir a configuração da carga horária padrão. |
| RF33 | Permitir a configuração do período de férias permitido. |
| RF34 | Suportar integração com outros sistemas via API (futuramente). |
| RF35 | Permitir a criação automática da conta de Administrador Mestre via variáveis de ambiente. |
| RF36 | Restringir o sistema à criação de apenas um Administrador Mestre. |
| RF37 | Assegurar que as validações de identidade sejam feitas a cada operação crítica. |
| RF38 | Proteger as rotas de administração para acesso exclusivo do perfil ADMIN. |
| RF39 | Permitir o registro de apenas um ponto de entrada e um ponto de saída por dia. |
| RF40 | Registrar FALTA caso o pontista não bata o ponto no dia. |
| RF41 | Registrar FALTA* (período de saída) caso haja apenas ponto de ENTRADA no dia. |
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 le 200ms, banda ge 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
| ID | História de Usuário e Critérios de Aceitação |
|---|---|
| US01 | Como um Desenvolvedor do Sistema, eu desejo que a conta do Administrador Mestre seja criada automaticamente na implantação, para que o sistema tenha um ponto de partida seguro para a gestão de usuários. |
| US02 | Como um Administrador Mestre, eu desejo poder fazer login no sistema, para que eu possa gerenciar todos os aspectos do ambiente, incluindo usuários e configurações. |
| US03 | Como um Administrador Mestre, eu desejo acessar um painel exclusivo, para que eu possa cadastrar e gerenciar diferentes tipos de usuários no sistema. |
| US04 | Como um usuário (PONTISTA, SUPERVISOR ou ADMINISTRADOR), eu desejo fazer login na plataforma, para que eu possa acessar as funcionalidades específicas do meu perfil, como gerenciar meus pontos ou supervisionar estagiários. |
| US05 | Como um Pontista, eu desejo visualizar meu saldo de horas devidas, para que eu saiba se preciso compensar horas ou se tenho banco de horas positivo. |
| US06 | Como um Pontista, eu desejo visualizar meus dias de férias disponíveis, para que eu possa planejar minhas próximas férias. |
| US07 | Como um Pontista, eu desejo visualizar meu histórico de registros de ponto por data, para que eu possa acompanhar minhas presenças e identificar possíveis inconsistências. |
| US08 | Como um Pontista, eu desejo ter um calendário pessoal no sistema, para que eu possa ver meus dias de trabalho, feriados e faltas de forma organizada. |
| US09 | Como um Pontista, eu desejo poder justificar minhas faltas, para que elas sejam consideradas e não impactem negativamente meu registro. |
| US10 | Como um Pontista, eu desejo solicitar meus períodos de férias pelo sistema, para que o processo seja formalizado e acompanhado pelo meu Supervisor. |
| US11 | Como um Pontista, eu desejo poder registrar meus horários de entrada e saída, para que eu tenha um controle preciso da minha presença, ausências e horas trabalhadas. |
| US12 | Como um Supervisor, eu desejo listar e visualizar os perfis dos Pontistas, para que eu possa acompanhar a equipe e realizar as gestões necessárias. |
| US13 | Como um Supervisor, eu desejo visualizar as horas devidas de cada Pontista, para que eu possa gerenciar a carga horária da minha equipe. |
| US14 | Como um Supervisor, eu desejo aprovar ou rejeitar as justificativas de faltas submetidas pelos Pontistas, para que eu possa validar as ausências e manter os registros precisos. |
| US15 | Como um Supervisor, eu desejo aprovar ou rejeitar os pedidos de férias dos Pontistas, para que eu possa planejar a escala da equipe e garantir a cobertura adequada. |
| US16 | Como um Supervisor, eu desejo visualizar, adicionar e editar pontos facultativos locais no calendário, para que o registro de ponto da minha equipe esteja sempre alinhado com as políticas da empresa. |
| US17 | Como um Supervisor, eu desejo gerar relatórios de frequência da equipe, para que eu possa analisar a assiduidade e pontualidade dos Pontistas. |
| US18 | Como um Supervisor, eu desejo visualizar o histórico de minhas aprovações e reprovações (justificativas, férias), para que eu tenha um registro das minhas decisões e possa consultá-las |
| US19 | Como um Supervisor, eu desejo enviar mensagens ou notificações aos Pontistas, para que eu possa comunicar informações importantes ou alertas. |
| US20 | Como um Administrador, eu desejo configurar a carga horária padrão do sistema, para que os cálculos de horas devidas e banco de horas sejam precisos para todos os usuários. |
| US21 | Como um Administrador, eu desejo configurar o período de férias permitido aos usuários, para que as solicitações de férias estejam alinhadas com as políticas da empresa. |
| US22 | Como um Administrador, eu desejo cadastrar novos usuários no sistema, para que novas pessoas possam utilizar a plataforma com seus devidos perfis. |