Rose Kattiyarat
← Back to selected projects

Independent project · Console application

What’s for Dinner?

Turn what’s in your kitchen into ideas for your next meal.

I built this C# application to suggest recipes from available ingredients and cooking preferences. It connects to OpenAI, validates the structured response, and presents the result in an interactive console.

Features

Start with your ingredients

Enter ingredients and seasonings, choose a cuisine, and set servings and an optional cooking-time limit. Input validation catches empty entries and invalid values.

Find a practical suggestion

Prioritize available ingredients. If the AI reports no match, the app can make one additional request allowing up to three extra ingredients, clearly marking missing items.

See the recipe clearly

Read ingredient quantities, estimated preparation and cooking times, and step-by-step instructions for your requested servings.

Adjust without restarting

Request another recipe or edit individual preferences. Add, delete, or replace ingredients; duplicate additions are skipped. Apply changes or discard them without an API call.

From ingredients to a recipe

  1. Set your preferences

    Enter ingredients such as chicken, rice, broccoli, and mushrooms. Choose seasonings, cuisine, servings, and a cooking-time limit.

  2. Explore a suggestion

    Review the generated recipe and instructions. Choose “Try another recipe” to request an alternative using the same preferences.

  3. Refine your ingredients

    Choose “Edit my preferences” to update your list or cooking settings, then generate a recipe with the changes.

Behind the application

The application separates console interaction, recipe generation, data models, and validation. It uses built-in .NET HTTP and JSON libraries, with no external NuGet packages required.

Console interface
Collects and validates input, manages preference edits, and displays recipes and errors.
API integration
Sends cooking preferences to the OpenAI Responses API and requests output matching a JSON schema. The API key is read from an environment variable.
Recipe validation
Checks servings, times, required content, and ingredient references. It recalculates missing-ingredient status and rejects invented inventory references.
Error handling
Reports API failures such as invalid credentials and unavailable models. Errors do not trigger an automatic fallback request.

Development status

Working console application, demonstrated locally. The current version supports recipe generation, alternative suggestions, and preference editing during a session.

Read the setup instructions and current limitations on GitHub →