Skip to content

6. Diagramas de Domínio

Sérgio Martins edited this page May 15, 2025 · 2 revisions

Sabor Express - Diagrama de Domínio

Este documento apresenta o modelo de domínio do aplicativo Sabor Express, destacando as principais entidades, seus atributos e relacionamentos.

Diagrama de Classes do Domínio

classDiagram
    %% Entidades Principais
    class Usuario {
        +String id
        +String nome
        +String email
        +String foto
        +DateTempo dataCadastro
        +List~Receita~ favoritos
        +List~Receita~ historicoPreparo
    }
    
    class Receita {
        +String id
        +String titulo
        +String descricao
        +String imagem
        +TipoReceita tipo
        +String paisOrigem
        +int tempoPreparo
        +int porcoes
        +String dificuldade
        +String videoUrl
        +DateTempo dataCriacao
        +int avaliacaoMedia
    }
    
    class Categoria {
        +String id
        +String nome
        +String descricao
        +String imagem
        +TipoReceita tipo
    }
    
    class Ingrediente {
        +String id
        +String nome
        +String unidadeMedida
        +String grupoPrincipal
    }
    
    class IngredienteReceita {
        +String quantidade
        +String observacao
        +boolean opcional
    }
    
    class PassoPreparo {
        +int ordem
        +String descricao
        +String imagem
        +int tempoEstimado
    }
    
    class Avaliacao {
        +String id
        +int nota
        +String comentario
        +DateTempo dataAvaliacao
        +String fotoResultado
    }
    
    class RecomendacaoReceita {
        +TipoCompatibilidade tipoCompatibilidade
        +int nivelCompatibilidade
    }
    
    class HistoricoPreparo {
        +String id
        +DateTempo dataPreparo
        +boolean concluido
        +List~Boolean~ ingredientesUsados
        +List~Boolean~ passosConcluidos
        +String anotacoes
    }
    
    %% Enumerações
    class TipoReceita {
        <<enumeration>>
        COMIDA
        BEBIDA
    }
    
    class TipoCompatibilidade {
        <<enumeration>>
        HARMONIZACAO
        COMPLEMENTO
        ALTERNATIVA
    }
    
    class MetodoPesquisa {
        <<enumeration>>
        NOME
        INGREDIENTE
        PRIMEIRA_LETRA
        PAIS
        CATEGORIA
    }
    
    %% Relacionamentos
    Usuario "1" -- "*" Receita : favorita
    Usuario "1" -- "*" HistoricoPreparo : possui
    HistoricoPreparo "*" -- "1" Receita : registra
    
    Receita "1" -- "*" PassoPreparo : contém
    Receita "*" -- "*" Categoria : pertence
    
    Receita "1" -- "*" IngredienteReceita : possui
    IngredienteReceita "*" -- "1" Ingrediente : referencia
    
    Receita "1" -- "*" Avaliacao : recebe
    Usuario "1" -- "*" Avaliacao : faz
    
    Receita "1" -- "*" RecomendacaoReceita : oferece
    RecomendacaoReceita "*" -- "1" Receita : recomenda
Loading

Descrição das Entidades

Entidade Descrição Responsabilidades
Usuário Representa o utilizador do aplicativo. • Favoritar receitas
• Registrar histórico de preparos
• Avaliar receitas
• Manter perfil pessoal
Receita Entidade central do sistema. • Armazenar dados básicos do prato/bebida
• Manter lista de ingredientes e quantidades
• Preservar instruções de preparo
• Exibir avaliações e média
• Oferecer recomendações
Categoria Classificação das receitas. • Organizar receitas por tipo
• Facilitar navegação e descoberta
• Agrupar receitas similares
Ingrediente Base de ingredientes do sistema. • Padronizar nomes e unidades
• Permitir buscas por ingrediente
• Facilitar cálculos de nutrição
IngredienteReceita Associação entre ingrediente e receita. • Especificar quantidade para a receita
• Indicar observações de uso
• Marcar ingredientes opcionais
PassoPreparo Etapas do preparo da receita. • Detalhar instruções sequenciais
• Estimar tempo por etapa
• Associar imagens ilustrativas
Avaliação Feedback dos usuários. • Registrar notas e comentários
• Mostrar fotos de resultados
• Ajudar outros usuários na escolha
RecomendacaoReceita Relações entre receitas. • Sugerir harmonizações
• Recomendar complementos
• Propor alternativas
HistoricoPreparo Registro de experiências. • Acompanhar progresso
• Salvar adaptações pessoais
• Marcar receitas já preparadas

Regras de Domínio

  1. Uma receita deve ser sempre classificada como COMIDA ou BEBIDA.
  2. Recomendações são sempre cruzadas: comidas recomendam bebidas e vice-versa.
  3. Uma receita deve ter pelo menos um ingrediente e um passo de preparo.
  4. Um usuário só pode avaliar uma receita após registrá-la como preparada em seu histórico.
  5. As categorias são específicas para um tipo de receita (comida ou bebida).
  6. O histórico de preparo pode ser parcial (não concluído) ou completo.
  7. Uma receita pode pertencer a múltiplas categorias, mas ao menos uma é obrigatória.
  8. O sistema de avaliação varia de 1 a 5 estrelas.

Clone this wiki locally