Plataforma de Simulação Estratégica (Bernard
Simulações)
Empresa-foco: VeloxTelecom | Período de Análise: #9 (Realizado)
& #10 (Planejamento)
O Simulador de Gestão Estratégica é uma aplicação web desenvolvida para espelhar fidedignamente o ambiente de simulação empresarial da Bernard Simulações, amplamente adotado em cursos superiores de Administração e Gestão Empresarial.
flowchart LR
subgraph UI["Camada de Apresentação (Next.js App Router)"]
Page["app/dashboard/page.tsx"]
Header["TopHeader.tsx & KpiTopBar.tsx"]
Sidebar["SidebarMenu.tsx"]
Views["Views de Relatórios P.#9\n(Home, DFC, Balanço, Indicadores, Mercado)"]
Decisoes["DecisoesView.tsx\n(Planejamento Interativo P.#10)"]
end
subgraph DataEngine["Camada de Dados e Simulação (Client/Server)"]
GameData["lib/gameData.ts\n(Histórico P.#0 a P.#9)"]
SimP10["lib/simulationEngine.ts\n(simulateP10 - Tempo Real)"]
RoundProc["src/engine/roundProcessor.ts\n(Motor Multi-Empresa)"]
PyEngine["engine.py & /api/run-round"]
end
subgraph DB["Camada de Persistência (PostgreSQL)"]
Schema["db/schema.sql\n(9 Tabelas Relacionais)"]
end
Page --> Header
Page --> Sidebar
Page --> Views
Page --> Decisoes
Views --> GameData
Decisoes -->|Inputs das 7 áreas| SimP10
SimP10 -->|Projeção DRE, Caixa e Alertas| Decisoes
RoundProc --> Schema
PyEngine --> Schema
simulador/
├── app/
│ ├── api/
│ │ └── run-round/
│ │ └── route.ts # Endpoint API para execução de rodada via motor Python
│ ├── dashboard/
│ │ └── page.tsx # Página principal do simulador (orquestrador de views)
│ ├── globals.css # Estilos base e temas (TailwindCSS v4)
│ ├── layout.tsx # Shell da aplicação Next.js
│ └── page.tsx # Redirecionamento raiz para /dashboard
├── components/
│ ├── bernard/
│ │ ├── TopHeader.tsx # Cabeçalho azul marinho institucional com seletores
│ │ ├── KpiTopBar.tsx # Barra preta flutuante com KPIs críticos (REA, Caixa, Especial)
│ │ ├── SidebarMenu.tsx # Menu lateral retrátil/gaveta com as seções do jogo
│ │ ├── DashboardHome.tsx # Visão geral "Olá, Adriano" com cards e mini-gráficos
│ │ ├── BalancoPatrimonialView.tsx # Balanço Patrimonial (Ativo, Passivo e Outros Indicadores)
│ │ ├── FluxoDeCaixaView.tsx # DFC detalhado com todas as linhas de saídas e entradas
│ │ ├── ResumoIndicadoresView.tsx # Gráficos comparativos de REA e tabela dos rivais
│ │ ├── MarketShareView.tsx # Gráficos de demanda global, preço e share com estrela
│ │ └── DecisoesView.tsx # Painel de decisão P.#10 com simulador em tempo real
│ └── ui/
│ └── tabs.tsx # Componente base de abas (Radix UI / Shadcn)
├── lib/
│ ├── gameData.ts # Base de dados estruturada com valores reais do jogo (P.#0 a P.#9)
│ ├── simulationEngine.ts # Motor matemático de projeção em tempo real para o Período #10
│ └── utils.ts # Utilitários de classes (clsx / tailwind-merge)
├── src/
│ └── engine/
│ └── roundProcessor.ts # Motor genérico de processamento multi-empresa de rodadas
├── db/
│ ├── jogos_empresariais.db # Banco físico SQLite pré-populado (pronto para DBeaver)
│ ├── schema.sql # Script DDL SQL para criação do banco PostgreSQL
│ ├── schema_oracle_plsql.sql # Script DDL SQL compatível com Oracle / PL/SQL Developer
│ ├── seed.sql # Carga de dados reais das 5 empresas (Períodos #6 a #10)
│ ├── queries_analise_dbeaver.sql # 4 consultas analíticas prontas (Ranking, Share, DRE, Decisões)
│ ├── Abrir_no_DBeaver.bat # Atalho 1-clique para abrir o banco e as queries no DBeaver
│ └── DER.md # Diagrama Entidade-Relacionamento e dicionário de dados
└── engine.py # Motor complementar em Python para cálculo de elasticidade e share
#0F172A#1E293B#020617#F1F5F9#FFFFFF e
#F8FAFC com bordas #E2E8F0REA: 1.736.860 ⬇ (com seta vermelha indicando tendência
de queda);Caixa Final: 0;E. Especial: 1.249.771 (em destaque de alerta
vermelho);Resultado: -479.310;[Comparar], [Exportar],
[Destacar], [Imprimir].A demanda global do mercado gira em torno de 26.000 unidades para o P.#10. A atratividade de cada empresa é calculada por:
\[A_i = w_p \cdot \left(\frac{1}{Preço_i}\right) + w_m \cdot \log(Propaganda_i + 1) + w_t \cdot Factor(Prazo_i) + w_{inv} \cdot \left(\frac{Inovação_i}{30000}\right)^{0.4}\]
\[Vendas_i = \min(Demanda_i, EstoqueInicial_i + ProducaoEfetiva_i)\] \[EstoqueFinal_i = (EstoqueInicial_i + ProducaoEfetiva_i) - Vendas_i\]
\[SaldoCaixaProjetado = SaldoInicial + EntradasOperacionais + EmprestimoSolicitado - SaidasTotais\] * Se \(SaldoCaixaProjetado < 0\): * \(CaixaFinal = 0\); * \(ChequeEspecial = |SaldoCaixaProjetado|\); * Incide juros punitivos automáticos de 12,0% ao mês. * Se \(SaldoCaixaProjetado \ge 0\): * \(CaixaFinal = SaldoCaixaProjetado\); * \(ChequeEspecial = 0\).
Os contratos de dados estão centralizados em lib/gameData.ts, lib/simulationEngine.ts
e src/engine/roundProcessor.ts:
| Interface / Tipo | Arquivo | Finalidade |
|---|---|---|
Company |
lib/gameData.ts |
Identificação, cor institucional e flag
isUserCompany das 5 empresas do oligopólio. |
MarketHistoryPoint |
lib/gameData.ts |
Série histórica (p.#0 a p.#9)
de preço médio, propaganda, prazo, inovação, demanda e vendas. |
CompanyPeriodMarketData |
lib/gameData.ts |
Desempenho comercial no Período #9 (preço, Market Share %, demanda não atendida e unidades vendidas). |
VeloxHistoryPoint |
lib/gameData.ts |
Evolução da VeloxTelecom (p.#6 a
p.#9) em preço, volume vendido, receita bruta, lucro
líquido e REA. |
CashFlowStatement |
lib/gameData.ts |
Estrutura completa da DFC com entradas, saídas detalhadas, fluxo líquido e cheque especial acionado. |
BalanceSheet |
lib/gameData.ts |
Estrutura hierárquica do Balanço Patrimonial (Ativo Circulante, Imobilizado, Passivo, PL e Outros Indicadores). |
DecisionP10 |
lib/gameData.ts |
Parâmetros das 7 áreas de decisão do jogador para o Período #10. |
SimulationResultP10 |
lib/simulationEngine.ts |
Retorno calculado em tempo real pela função
simulateP10(), incluindo DRE, DFC, estoques e diagnósticos
(CRITICAL, WARNING,
HEALTHY). |
MarketParameters &
RoundResult |
src/engine/roundProcessor.ts |
Contratos do motor multi-empresa para processamento em lote de rodadas. |
O estado inicial pré-configurado em INITIAL_DECISION_P10
(lib/gameData.ts) foi
calibrado para tirar a VeloxTelecom da crise financeira
do Período #9:
| Área de Decisão | Parâmetro Recomendado | Justificativa Estratégica |
|---|---|---|
| Marketing | Preço: R$ 935,00 | Propaganda: 16 ins. | Prazo: 30 dias | Inovação: R$ 35.000 | Preço competitivo frente à média do mercado (R$ 965,78), permitindo ganhar Market Share (~21,9%) e girar o estoque parado. |
| Fabricação | Produção: 1.500 un | Turnos: 1 | Manutenção: R$ 12.000 | Como a empresa já possui 5.025 smartphones acabados em estoque, produzir apenas 1.500 unidades evita custo de estocagem ociosa e disponibiliza 6.525 unidades para venda. |
| Recursos Humanos | Operários: 20 | Salário Base: R$ 2.300 | Treinamento: R$ 5.000 | Mantém a capacidade fabril de 1º turno sem inflar a folha salarial (que sofre 68% de encargos). |
| Insumos | Compra de Kits: 2.000 un | Prazo Fornecedor: 30 dias | Comprar a prazo posterga o desembolso de R$ 500.000 para o Período #11, preservando o caixa imediato do Período #10. |
| Finanças (Crítico) | Empréstimo Bancário Regular: R$ 3.500.000 a R$ 4.000.000 | Substitui o Cheque Especial punitivo (12% a.m.) e cobre o vencimento de R$ 3.890.690,49 em amortizações com taxa bancária normal (2,5% a.m.). |
Consulte o arquivo dedicado db/DER.md, o banco local
pré-populado db/jogos_empresariais.db
e os scripts SQL na pasta db/:
db/jogos_empresariais.db
— Contém todas as 9 tabelas criadas e populadas com os dados reais do
jogo. Basta executar db/Abrir_no_DBeaver.bat
para abrir o DBeaver conectado ao banco e com as consultas analíticas de
db/queries_analise_dbeaver.sql
prontas para execução (Ctrl + Enter).db/schema.sql seguido de db/seed.sql.db/schema_oracle_plsql.sql
seguido de db/seed.sql.erDiagram
UNIVERSITIES ||--o{ USERS : "vincula"
USERS ||--o{ COMPANY_USERS : "atua em"
COMPANIES ||--o{ COMPANY_USERS : "composta por"
GAMES ||--|{ COMPANIES : "possui concorrentes"
GAMES ||--|{ ROUNDS : "executa ciclos"
ROUNDS ||--o{ COMPANY_DECISIONS : "registra"
ROUNDS ||--o{ FINANCIAL_REPORTS : "apura DRE"
ROUNDS ||--o{ INVENTORY_LOGS : "armazena estoque"
COMPANIES ||--o{ COMPANY_DECISIONS : "envia decisões"
COMPANIES ||--o{ FINANCIAL_REPORTS : "possui resultados"
COMPANIES ||--o{ INVENTORY_LOGS : "possui saldos"
# 1. Instalar dependências
npm install
# 2. Executar build de produção para validação
npm run build
# 3. Iniciar o servidor de desenvolvimento local
npm run dev
A construção do projeto ocorreu de forma iterativa em 4 etapas principais, combinando engenharia de software, extração de dados de capturas de tela reais do simulador Bernard e modelagem contábil/financeira. Abaixo está o resumo dos prompts utilizados em cada fase:
roundProcessor.ts e engine.py com
rota /api/run-round) capaz de calcular a demanda global de
mercado com tendência, sazonalidade senoidal e ruído normal truncado,
índice de atratividade por empresa (preço, marketing, prazo e
produtividade), restrições de capacidade produtiva (máquinas, mão de
obra e matéria-prima), DRE completa e acionamento automático de cheque
especial (overdraft) caso o saldo de caixa fique negativo.”#0D3B66, barra preta de KPIs #181818 com REA
1.736.860, Caixa Final 0, E. Especial
1.249.771 e Resultado -479.310, fundo
pergaminho #F5EEDB e tabelas em marrom
#5C4938). Implemente todas as telas: Visão Geral (‘Olá,
Adriano’), Demonstração do Fluxo de Caixa, Balanço Patrimonial com
Outros Indicadores, Resumo de Indicadores e Market Share.”DecisoesView.tsx e
simulationEngine.ts) contemplando as 7 áreas do
Bernard (Marketing, Fabricação, RH, Imobilizados, Insumos, Relatórios e
Finanças). Adicione um simulador em tempo real que recalcule
instantaneamente Vendas Projetadas, Market Share, Estoque Final, Lucro
Líquido (DRE), REA e Fluxo de Caixa. Inclua alertas inteligentes que
avisem sobre o risco de Cheque Especial (12% a.m.) e recomendem o
empréstimo bancário normal ideal (R$ 3,5M a R$ 4,2M) e produção enxuta
para escoar os 5.025 smartphones em estoque.”schema.sql), o Diagrama Entidade-Relacionamento
(DER.md) e a documentação completa do sistema
(DOCUMENTACAO_PROJETO.md).schema.sql) em PostgreSQL e o
Diagrama Entidade-Relacionamento (DER.md) em Mermaid
cobrindo instituições, usuários, equipes, rodadas, parâmetros
macroeconômicos, fornecedores, decisões das 7 áreas, relatórios
financeiros (DRE/DFC) e logs de estoque.”DOCUMENTACAO_PROJETO.md) e um resumo dos prompts
utilizados para construir e recriar este simulador.”Copie e cole o prompt abaixo em qualquer IA avançada (Gemini, Claude, ChatGPT, etc.) para recriar esta aplicação do absoluto zero com a mesma fidelidade:
Você é um desenvolvedor full-stack sênior especialista em Next.js (App Router), TypeScript, TailwindCSS e modelagem de simulações empresariais para ensino superior.
Crie uma aplicação web completa e hiper-realista que reproduza com máxima fidelidade visual e funcional o simulador "Jogos Empresariais" da Bernard Simulações, utilizado para a disciplina de Gestão Estratégica.
A simulação foca em um oligopólio com 5 empresas fabricantes de smartphones:
- VeloxTelecom (Equipe do usuário, atualmente em 5º lugar, necessitando de recuperação)
- Mobile Four (2º lugar, share alto mas com demanda não atendida por falta de estoque)
- BDP Telecom (preço alto, nicho)
- SkyLinePhone (Líder isolado de mercado em REA e share)
- TMM Tecnolog (Vice-líder competitivo)
DIRETRIZES DE DESIGN E UI (PALETA EXECUTIVA CORPORATIVA SLATE & GRAPHITE):
1. Paleta de Cores Oficial:
- Header Institucional: Deep Slate Navy (#0F172A) e Charcoal Slate (#1E293B) com o logo "SIMULADOR Jogos Empresariais", seletores de Empresas, Períodos e link "Carregar planejamento empresa".
- Barra de KPIs Superior Flutuante: Faixa Carbon (#020617) fixa com REA (ex: 1.736.860 com seta vermelha em queda), Caixa Final (0), E. Especial (1.249.771 em destaque vermelho), Resultado (-479.310) e botões de ação: [Comparar], [Exportar], [Destacar], [Imprimir].
- Fundo da Aplicação: Cinza gelo executivo (#F1F5F9) com cards brancos puros (#FFFFFF), linhas alternadas (#F8FAFC / #F1F5F9) e contornos em aço claro (#E2E8F0).
- Cabeçalhos de Tabelas: Grafite escuro (#0F172A) com texto em caixa alta e subtítulos em Charcoal (#1E293B).
2. Layout Responsivo & Navegação:
- Menu lateral retrátil/gaveta (SidebarMenu) contendo as seções: "Decisões (p.#10 - VeloxTelecom)" com Marketing, Fabricação, RH, Imobilizados, Insumos, Relatórios e Finanças; "Relatórios da Empresa" com Balanços, DFC e Indicadores; "Relatórios de Mercado"; e "Configurações".
TELAS OBRIGATÓRIAS IMPLEMENTADAS:
1. Dashboard Inicial ("Olá, Adriano"): Card de Ranking (5º lugar), Market Share com gráfico em pizza, gráficos de evolução de Vendas e Preços do p.#6 ao p.#9, e o card de "Dados Gerais" destacando os R$ 3.890.690,49 em empréstimos vencendo no p.#10 e o estoque de 5.025 smartphones prontos.
2. Demonstração do Fluxo de Caixa (DFC): Exatamente como no simulador real, com Entradas (R$ 2.355.200,00), Saídas Totais (R$ 5.760.089,98) discriminadas em Salários (R$ 1.019.373,41), Amortizações (R$ 3.293.035,67), Compra de Imobilizados (R$ 386.100,00), estocagem, juros e o acionamento do Cheque Especial de R$ 1.249.771,00.
3. Balanço Patrimonial: Ativo Total de R$ 5.191.420,00, Ativo Circulante, Imobilizado líquido, Passivo com empréstimos a vencer no p.#10, Patrimônio Líquido e tabela de "Outros Indicadores" (Ativo Médio, PL Médio, Rentabilidade e Liquidez Corrente).
4. Resumo de Indicadores: Gráfico de barras comparativo de Resultado Acumulado e tabela cruzada completa com os dados dos 4 concorrentes.
5. Market Share & Mercado: Gráficos de demanda global e histórico de vendas (p.#0 a p.#9), gráfico de share com preço médio indicado por estrelas e ponto de alerta para demandas não atendidas, além das tabelas com as médias de mercado (Preço R$ 965,78, Propaganda 14, Prazo 30 dias, Inovação R$ 33.200,00).
6. Painel de Decisões do Período #10 com Simulador em Tempo Real:
- Controles interativos para todas as 7 áreas do Bernard (Marketing, Fabricação, RH, Imobilizados, Insumos, Relatórios e Finanças).
- Motor de cálculo em tempo real que projeta imediatamente o impacto das decisões sobre o Market Share, DRE projetada, estoque de desova dos 5.025 smartphones e saldo de caixa.
- Sistema de diagnóstico inteligente que alerta o usuário se o caixa fechará negativo (evitando o juro de 12% a.m. do cheque especial) e orienta a solicitação de um empréstimo regular adequado (em torno de R$ 3,5M a R$ 4,2M) para quitar os empréstimos vincendos de R$ 3,89M.
Gere todo o código em TypeScript limpo, modular, componentizado e 100% livre de erros de compilação.