Recipe Manager
A C# ASP.NET Core MVC web application for managing your personal recipe collection with advanced search and filtering capabilities.
Features
- Recipe Management: Add, edit, view, and delete recipes
- Advanced Search: Search recipes by title, description, and ingredients
- Smart Filtering:
- Filter by category
- Include specific ingredients (must-have)
- Exclude unwanted ingredients (allergens, dietary restrictions)
- Responsive Design: Works on desktop, tablet, and mobile devices
- Interactive UI:
- Ingredient checklist in recipe details
- Real-time search and filtering
- Recipe cards with hover effects
Database Configuration
The application connects to a MySQL database with the following configuration:
- Server: nordh.xyz:3306
- Database: recept
- Username: recepieUser
- Password: v.FV-ssZPzVyev28
Getting Started
Prerequisites
- .NET 8.0 SDK
- Access to the MySQL database (credentials provided above)
Running the Application
- Clone or download this project
- Open the project in Visual Studio Code
- Open a terminal and navigate to the project directory
Run the application:
dotnet run
Open your web browser and navigate to http://localhost:5104
Building the Application
dotnet build Recepie.sln
Project Structure
Recepie/
├── Controllers/
│ └── RecipeController.cs # Main controller with search/filter logic
├── Data/
│ └── RecipeContext.cs # Entity Framework DbContext
├── Models/
│ └── Recipe.cs # Recipe entity model
├── ViewModels/
│ └── RecipeIndexViewModel.cs # ViewModel for index page
├── Views/
│ ├── Recipe/
│ │ ├── Index.cshtml # Main recipe listing with search/filter
│ │ ├── Details.cshtml # Recipe details view
│ │ ├── Create.cshtml # Add new recipe form
│ │ ├── Edit.cshtml # Edit recipe form
│ │ └── Delete.cshtml # Delete confirmation
│ └── Shared/
│ └── _Layout.cshtml # Main layout template
└── wwwroot/
└── css/
└── site.css # Custom styling
Usage
Adding Recipes
- Click "Add New Recipe" button
- Fill in the recipe details:
- Title and description
- Category and difficulty level
- Preparation and cooking times
- Number of servings
- Ingredients (comma-separated)
- Step-by-step instructions
- Click "Save Recipe"
Searching and Filtering
Use the left sidebar to:
- Search: Enter keywords to search in titles, descriptions, and ingredients
- Category Filter: Select a specific recipe category
- Include Ingredients: Enter ingredients that must be present (comma-separated)
- Exclude Ingredients: Enter ingredients to avoid (comma-separated)
Example Searches
- Find all recipes with "chicken": Enter "chicken" in the search box
- Find recipes you can make with eggs and flour: Enter "eggs, flour" in "Must Have Ingredients"
- Find recipes without nuts: Enter "nuts" in "Must NOT Have Ingredients"
- Combine filters: Search for "pasta" with "tomato" included and "meat" excluded
Technology Stack
- Backend: ASP.NET Core 8.0 MVC
- Database: MySQL with Entity Framework Core
- Frontend: Bootstrap 5, Font Awesome icons, jQuery
- Styling: Custom CSS with responsive design
Database Schema
The Recipe entity includes:
- Id: Primary key
- Title: Recipe name (required)
- Description: Brief description
- Ingredients: Comma-separated list (required)
- Instructions: Step-by-step cooking instructions
- Category: Recipe category (e.g., "Main Course", "Dessert")
- Difficulty: Easy, Medium, or Hard
- PreparationTimeMinutes: Prep time
- CookingTimeMinutes: Cooking time
- Servings: Number of servings
- CreatedAt/UpdatedAt: Timestamps
Contributing
This is a personal recipe management application. Feel free to customize it for your needs!
License
This project is for personal use.