# Documento de Requisitos do Aplicativo de Gestão do Bar ## 1. Introdução ### 1.1. Propósito Este documento detalha os requisitos funcionais, não funcionais, regras de negócio e requisitos de sistema para o desenvolvimento de um aplicativo web de gestão para o bar, a ser desenvolvido em Django/Python. Este aplicativo centralizará o controle de todas as operações do bar, incluindo as funcionalidades já existentes nos aplicativos mobile (BarApp e GarçomApp), além de novas funcionalidades de gestão empresarial. ### 1.2. Escopo O aplicativo de gestão será uma plataforma web acessível por navegadores, destinada a administradores e gerentes do bar. Ele englobará a gestão de clientes, produtos, tickets, ingressos, karaokê, comandas, funcionários, salários, estoque e dashboards de resultados. ### 1.3. Público-alvo - **Administradores:** Usuários com acesso total ao sistema, responsáveis pela configuração e gestão estratégica. - **Gerentes:** Usuários com acesso a funcionalidades operacionais e de relatórios. - **Funcionários Administrativos:** Usuários com acesso a funcionalidades específicas, como gestão de estoque ou folha de pagamento. ## 2. Requisitos Funcionais (RF) Os requisitos funcionais descrevem as funcionalidades que o sistema deve oferecer aos usuários do aplicativo de gestão. ### 2.1. Gerenciamento de Usuários (Clientes e Garçons) - **RFGSA001 - Gerenciar Clientes (BarApp):** O sistema deve permitir que o administrador visualize, edite e exclua cadastros de clientes do BarApp. - **RFGSA002 - Gerenciar Garçons (GarçomApp):** O sistema deve permitir que o administrador cadastre, edite (nome, usuário, senha) e exclua garçons que utilizarão o GarçomApp. - **RFGSA003 - Gerenciar Permissões de Garçons:** O sistema deve permitir que o administrador atribua diferentes níveis de permissão aos garçons (e.g., acesso a comandas, acesso a karaokê). ### 2.2. Gerenciamento de Cardápio e Produtos - **RFGSA004 - Cadastrar Produto:** O sistema deve permitir que o administrador cadastre novos produtos no cardápio (nome, descrição, preço, imagem, categoria). - **RFGSA005 - Editar Produto:** O sistema deve permitir que o administrador edite informações de produtos existentes. - **RFGSA006 - Excluir Produto:** O sistema deve permitir que o administrador exclua produtos do cardápio. - **RFGSA007 - Gerenciar Categorias de Produtos:** O sistema deve permitir o cadastro, edição e exclusão de categorias de produtos. - **RFGSA008 - Gerenciar Disponibilidade de Produtos:** O sistema deve permitir que o administrador marque produtos como disponíveis ou indisponíveis no cardápio do BarApp. ### 2.3. Gerenciamento de Tickets - **RFGSA009 - Visualizar Tickets Vendidos:** O sistema deve exibir uma lista de todos os tickets vendidos, com detalhes (produto, comprador, data de compra, status). - **RFGSA010 - Consultar Histórico de Tickets:** O sistema deve permitir a consulta do histórico de uso e transferência de tickets. - **RFGSA011 - Configurar Prazo de Validade de Tickets:** O sistema deve permitir que o administrador configure o prazo de validade padrão para os tickets. - **RFGSA012 - Configurar Limite de Compra de Tickets:** O sistema deve permitir que o administrador configure o limite de compra de tickets por produto por usuário. ### 2.4. Gerenciamento de Eventos e Ingressos - **RFGSA013 - Cadastrar Evento:** O sistema deve permitir que o administrador cadastre novos eventos (nome, data, hora, descrição, preço do ingresso, imagem). - **RFGSA014 - Editar Evento:** O sistema deve permitir que o administrador edite informações de eventos existentes. - **RFGSA015 - Excluir Evento:** O sistema deve permitir que o administrador exclua eventos. - **RFGSA016 - Visualizar Ingressos Vendidos:** O sistema deve exibir uma lista de todos os ingressos vendidos para eventos. - **RFGSA017 - Consultar Status de Ingressos:** O sistema deve permitir verificar o status de uso de cada ingresso. ### 2.5. Gerenciamento da Fila do Karaokê - **RFGSA018 - Visualizar Fila do Karaokê:** O sistema deve exibir a fila do karaokê em tempo real, permitindo ao administrador acompanhar e gerenciar. - **RFGSA019 - Gerenciar Fila do Karaokê (Admin):** O sistema deve permitir que o administrador adicione, edite, exclua e altere a posição de pessoas na fila do karaokê. ### 2.6. Gerenciamento de Comandas - **RFGSA020 - Visualizar Todas as Comandas:** O sistema deve exibir uma lista completa de todas as comandas (abertas, aguardando pagamento, pagas, fechadas). - **RFGSA021 - Detalhes da Comanda:** O sistema deve permitir que o administrador visualize os detalhes de cada comanda (itens, valores, histórico de pagamentos). - **RFGSA022 - Editar Comanda (Admin):** O sistema deve permitir que o administrador edite qualquer informação de uma comanda (itens, status, etc.). - **RFGSA023 - Fechar Comanda (Admin):** O sistema deve permitir que o administrador feche uma comanda manualmente. - **RFGSA024 - Gerar Relatório de Comandas:** O sistema deve gerar relatórios de comandas por período, garçom, status, etc. ### 2.7. Gerenciamento de Funcionários - **RFGSA025 - Cadastrar Funcionário:** O sistema deve permitir o cadastro de novos funcionários (nome, CPF, cargo, data de contratação, salário base, dados bancários). - **RFGSA026 - Editar Dados do Funcionário:** O sistema deve permitir a edição dos dados cadastrais dos funcionários. - **RFGSA027 - Excluir Funcionário:** O sistema deve permitir a exclusão de registros de funcionários. - **RFGSA028 - Gerenciar Cargos:** O sistema deve permitir o cadastro, edição e exclusão de cargos e suas descrições. ### 2.8. Gestão de Pagamentos de Salário - **RFGSA029 - Registrar Pagamento de Salário:** O sistema deve permitir o registro de pagamentos de salário para funcionários (valor, data, período de referência). - **RFGSA030 - Gerar Holerite:** O sistema deve gerar holerites (recibos de pagamento) para os funcionários, contendo detalhes do salário, descontos e benefícios. - **RFGSA031 - Visualizar Histórico de Pagamentos:** O sistema deve exibir o histórico de pagamentos de salário por funcionário. ### 2.9. Gestão de Estoque e Entrada de Mercadorias - **RFGSA032 - Registrar Entrada de Mercadoria:** O sistema deve permitir o registro de entrada de mercadorias no estoque (produto, quantidade, data, fornecedor, custo unitário). - **RFGSA033 - Atualizar Estoque:** O sistema deve atualizar automaticamente o estoque dos produtos após a entrada de mercadorias. - **RFGSA034 - Visualizar Estoque Atual:** O sistema deve exibir o estoque atual de todos os produtos. - **RFGSA035 - Alerta de Estoque Baixo:** O sistema deve gerar alertas quando o estoque de um produto atingir um nível mínimo configurável. - **RFGSA036 - Gerenciar Fornecedores:** O sistema deve permitir o cadastro, edição e exclusão de informações de fornecedores. ### 2.10. Dashboard de Resultados e Relatórios - **RFGSA037 - Dashboard de Vendas:** O sistema deve exibir um dashboard com métricas de vendas (total de vendas, vendas por produto, vendas por período, vendas por garçom). - **RFGSA038 - Dashboard de Lucratividade:** O sistema deve exibir um dashboard com métricas de lucratividade (receita, custo de mercadoria vendida, lucro bruto). - **RFGSA039 - Relatório de Estoque:** O sistema deve gerar relatórios detalhados sobre o estoque (movimentação, valor do estoque). - **RFGSA040 - Relatório de Desempenho de Funcionários:** O sistema deve gerar relatórios sobre o desempenho dos garçons (e.g., número de comandas abertas, valor total de vendas). - **RFGSA041 - Relatório Financeiro:** O sistema deve gerar relatórios financeiros consolidados (receitas, despesas, fluxo de caixa). ## 3. Requisitos Não Funcionais (RNF) ### 3.1. Usabilidade - **RNFGSA001 - Interface Web Intuitiva:** A interface web deve ser intuitiva, responsiva e fácil de navegar para administradores e gerentes. - **RNFGSA002 - Painéis de Controle Claros:** Os dashboards e relatórios devem apresentar informações de forma clara e visualmente atraente. - **RNFGSA003 - Geração de Relatórios:** Relatórios devem ser exportáveis em formatos comuns (e.g., PDF, CSV, Excel). ### 3.2. Desempenho - **RNFGSA004 - Tempo de Resposta:** O tempo de resposta para operações de gestão e carregamento de dashboards não deve exceder 5 segundos. - **RNFGSA005 - Capacidade de Processamento:** O sistema deve ser capaz de processar um grande volume de dados de vendas, estoque e funcionários sem lentidão. ### 3.3. Segurança - **RNFGSA006 - Autenticação de Administradores:** O sistema deve garantir que apenas usuários autorizados (administradores, gerentes) possam acessar o painel de gestão. - **RNFGSA007 - Controle de Acesso Baseado em Papéis (RBAC):** O sistema deve implementar um controle de acesso robusto, onde diferentes papéis de usuário (administrador, gerente, etc.) têm permissões específicas. - **RNFGSA008 - Proteção de Dados Sensíveis:** Informações financeiras, de funcionários e de clientes devem ser armazenadas e transmitidas de forma criptografada e segura. - **RNFGSA009 - Auditoria:** O sistema deve registrar logs de auditoria para ações críticas realizadas pelos usuários de gestão. ### 3.4. Confiabilidade - **RNFGSA010 - Disponibilidade:** O sistema deve estar disponível 99,5% do tempo. - **RNFGSA011 - Integridade dos Dados:** O sistema deve garantir a integridade e consistência de todos os dados financeiros e de estoque. - **RNFGSA012 - Backup e Recuperação:** Deve haver um plano de backup e recuperação de desastres para os dados do sistema. ### 3.5. Manutenibilidade - **RNFGSA013 - Arquitetura Modular:** O sistema deve ser desenvolvido com uma arquitetura modular para facilitar a manutenção e a adição de novas funcionalidades. - **RNFGSA014 - Documentação Interna:** O código e a arquitetura do sistema devem ser bem documentados. ### 3.6. Compatibilidade - **RNFGSA015 - Compatibilidade com Navegadores:** O sistema deve ser compatível com os principais navegadores web modernos (Chrome, Firefox, Edge, Safari). - **RNFGSA016 - Responsividade Web:** A interface deve ser responsiva e adaptável a diferentes tamanhos de tela (desktops, tablets). ## 4. Regras de Negócio (RN) ### 4.1. Funcionários e Salários - **RNGSA001 - Salário Base:** Cada funcionário deve ter um salário base definido. - **RNGSA002 - Período de Pagamento:** Salários são pagos em períodos definidos (e.g., mensalmente). - **RNGSA003 - Descontos Legais:** O sistema deve calcular e aplicar descontos legais (e.g., impostos, previdência) nos holerites. ### 4.2. Estoque - **RNGSA004 - Atualização de Estoque:** A venda de produtos (via tickets ou comandas) deve decrementar automaticamente o estoque. - **RNGSA005 - Custo Médio Ponderado:** O sistema deve calcular o custo médio ponderado dos produtos em estoque para fins de lucratividade. ## 5. Requisitos de Sistema (RS) ### 5.1. Tecnologia - **RSGSA001 - Framework:** O sistema será desenvolvido utilizando o framework Django (Python). - **RSGSA002 - Banco de Dados:** Será utilizado um banco de dados relacional (e.g., PostgreSQL, MySQL). - **RSGSA003 - Servidor Web:** O sistema será hospedado em um servidor web (e.g., Nginx, Apache). ### 5.2. Integrações - **RSGSA004 - Integração com BarApp e GarçomApp:** O sistema de gestão atuará como o backend central para os aplicativos mobile, gerenciando seus dados. - **RSGSA005 - Integração com Gateway de Pagamento:** O sistema de gestão deve ter acesso às informações de transações do gateway de pagamento. - **RSGSA006 - Integração com Sistema de Cozinha:** O sistema de gestão deve se comunicar com o sistema da cozinha para gerenciar o status dos pedidos.