|
| 1 | + |
| 2 | +# Regras de negócio para o sistema de "Sugestão de Refeições Veganas" |
| 3 | + |
| 4 | +--- |
| 5 | + |
| 6 | +## Visão Geral |
| 7 | + |
| 8 | +Este documento descreve os requisitos de negócio para um aplicativo web que oferece sugestões de refeições veganas. O aplicativo permite que os usuários busquem refeições veganas com base em categorias específicas ou conteúdo de alta proteína. O objetivo do aplicativo é fornecer aos usuários ideias rápidas e acessíveis de refeições veganas com ingredientes e opções de filtragem que atendam a várias preferências alimentares. |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +## Funcionalidades Principais e Requisitos Funcionais |
| 13 | + |
| 14 | +### 1. Categorias e Filtros de Refeição |
| 15 | + |
| 16 | +- **Filtro de Tipo de Refeição**: Os usuários podem filtrar as refeições por categorias predefinidas: |
| 17 | + - Salada |
| 18 | + - Sopa |
| 19 | + - Sanduíche |
| 20 | + - Pratos quentes |
| 21 | + - Lanches |
| 22 | +- **Opção de Alta Proteína**: Os usuários também podem filtrar para exibir apenas refeições com alto teor de proteína. |
| 23 | +- **Implementação**: |
| 24 | + - Um dropdown em HTML com os tipos de refeição disponíveis e uma opção específica para refeições de alta proteína. |
| 25 | + - Funcionalidade de filtragem que atualiza a exibição das refeições com base na opção selecionada no dropdown. |
| 26 | + |
| 27 | +### 2. Funcionalidade de Busca de Refeições |
| 28 | + |
| 29 | +- **Busca por Nome**: Os usuários podem buscar refeições inserindo palavras-chave em um campo de busca. |
| 30 | +- **Comportamento da Busca**: |
| 31 | + - Exibir refeições cujos nomes incluam o termo de busca. |
| 32 | + - Limpar o campo de busca após o envio. |
| 33 | +- **Implementação**: |
| 34 | + - JavaScript para gerenciar a entrada de busca, filtrar refeições no conjunto de dados e exibir resultados correspondentes. |
| 35 | + |
| 36 | +### 3. Geração de Refeição Aleatória |
| 37 | + |
| 38 | +- **Exibição de Refeição Aleatória**: Quando a página é carregada ou quando nenhuma refeição específica é buscada, uma sugestão de refeição aleatória da lista filtrada aparece na tela. |
| 39 | +- **Implementação**: |
| 40 | + - Função em JavaScript para selecionar uma refeição aleatória da lista filtrada atual e exibi-la com seus ingredientes. |
| 41 | + |
| 42 | +### 4. Dados e Estrutura das Refeições |
| 43 | + |
| 44 | +- **Conjunto de Dados de Refeições**: Os dados das refeições são armazenados como um array de objetos, cada um representando uma refeição com os seguintes atributos: |
| 45 | + - `name`: O nome da refeição. |
| 46 | + - `ingredients`: Uma lista de ingredientes da refeição. |
| 47 | + - `type`: Tipo de refeição (ex.: salada, sopa, sanduíche, etc.). |
| 48 | + - `highProtein`: Um booleano indicando se a refeição é rica em proteínas. |
| 49 | +- **Implementação**: |
| 50 | + - Os dados são definidos em um arquivo JavaScript e carregados no aplicativo para uso em filtragem e busca. |
| 51 | + |
| 52 | +### 5. Exibição e Informação das Refeições |
| 53 | + |
| 54 | +- **Detalhes da Refeição**: Cada refeição exibida inclui: |
| 55 | + - Nome da refeição. |
| 56 | + - Tipo de refeição e indicador de proteína (se aplicável). |
| 57 | + - Lista de ingredientes. |
| 58 | +- **Componentes da Interface**: |
| 59 | + - Elemento `meal-name` para o nome da refeição com o tipo e status de proteína. |
| 60 | + - Elemento `ingredients-list` exibindo cada ingrediente como um item de lista. |
| 61 | + |
| 62 | +--- |
| 63 | + |
| 64 | +## Requisitos Não Funcionais |
| 65 | + |
| 66 | +### 1. Interface do Usuário e Usabilidade |
| 67 | + |
| 68 | +- A interface do usuário deve ser amigável, com rótulos claros para o dropdown de filtro, barra de busca e funcionalidades de botões. |
| 69 | +- Uma experiência fluida com sugestões de refeições e resultados de busca exibidos imediatamente, sem recarregar a página. |
| 70 | + |
| 71 | +### 2. Desempenho |
| 72 | + |
| 73 | +- O aplicativo deve carregar rapidamente, incluindo os dados das refeições de um arquivo JavaScript pré-carregado. |
| 74 | +- A filtragem e seleção aleatória de refeições devem ser otimizadas para minimizar o atraso. |
| 75 | + |
| 76 | +### 3. Compatibilidade com Navegadores |
| 77 | + |
| 78 | +- O aplicativo deve ser compatível com navegadores modernos, garantindo uma experiência consistente em diferentes plataformas. |
| 79 | + |
| 80 | +--- |
| 81 | + |
| 82 | +## Considerações Futuras |
| 83 | + |
| 84 | +- **Filtros Expandidos**: Filtros alimentares adicionais (ex.: sem glúten, sem nozes) poderiam ser incluídos. |
| 85 | +- **Detalhes da Refeição**: A inclusão de informações nutricionais, tempo de preparo e instruções passo a passo poderia aprimorar a experiência do usuário. |
| 86 | +- **Contas de Usuário**: Opção de salvar refeições favoritas ou criar um plano de refeições personalizado. |
| 87 | + |
| 88 | +--- |
| 89 | + |
| 90 | +Este documento descreve a funcionalidade e os objetivos do sistema de sugestão de refeições veganas para garantir uma experiência confiável e agradável para os usuários que buscam ideias de refeições veganas. |
0 commit comments