IEFA Docs
SISUB

Visão Geral

Sistema de Subsistência — cardápios, receitas, planejamento e analytics de rancho.

O que é o SISUB

O SISUB (Sistema de Subsistência) é a aplicação responsável pela gestão do rancho militar. Permite criar cardápios semanais, gerenciar receitas, planejar refeições mensalmente e acompanhar analytics de consumo por cozinha.

Stack Técnica

CamadaTecnologia
FrameworkReact 19 + TanStack Start
SSRNitro (preset Bun)
RoteamentoTanStack Router (file-based)
Banco de dadosSupabase — schema sisub
EstiloTailwind CSS v4 — Flat Design (rounded-xl canônico)
LinguagemTypeScript 5.x

Design System

O Sisub usa Flat Design — incompatível com o Portal. Regras:

  • Radius genérico 0.5rem; primitivo <Card> usa rounded-xl (0.75rem) canônico
  • Referência: apps/sisub/docs/STYLE_CONTRACT.md

Módulos

Cardápios Semanais (/local/weekly-menus/)

CRUD de templates de cardápio semanal (menu_template). Cada template define refeições por dia da semana. Templates podem ser globais (SDAB, kitchen_id = null) ou locais (por cozinha).

Receitas (/local/recipes/$recipeId/)

Cadastro e edição de receitas. Rota usa layout outlet com sub-rotas para detalhes, ingredientes e modo de preparo.

Planejamento (/local/planning)

PlanningBoard — calendário mensal que aplica templates semanais a datas específicas. Permite visualizar e editar o planejamento de refeições de um mês inteiro por cozinha.

Analytics

Acompanhamento de consumo, custo e planejamento por cozinha. Dados agregados do schema sisub no Supabase.

Cozinhas: Local vs Global

Tipokitchen_idVisibilidade
Global (SDAB)nullTodas as cozinhas
LocalUUID da cozinhaApenas aquela cozinha

Templates locais podem ser derivados (fork) de templates globais via base_template_id — mecânica similar a git.

Server Functions

Padrão obrigatório para funções server-side (TanStack Start v1.x):

// src/server/*.fn.ts
createServerFn({ method: 'GET' | 'POST' })
  .inputValidator(z.object({ ... }))   // inputValidator, NÃO validator
  .handler(async ({ data }) => {
    const supabase = getSupabaseServerClient();  // per-request, nunca singleton
    // ...
  })

Banco de Dados

  • Supabase com schema sisub (default)
  • Variáveis de ambiente:
    • VITE_SISUB_SUPABASE_URL
    • VITE_SISUB_SUPABASE_PUBLISHABLE_KEY (client)
    • SISUB_SUPABASE_SECRET_KEY (server)

Integrações

  • sisub-mcp — MCP server que expõe os dados do Sisub para agentes AI (stdio/HTTP)
  • ai — Serviço de AI com LangChain/LangGraph para ingestão de documentos e orquestração LLM

On this page