This repository contains a Recipe Management System developed as part of the BLM307 Software Lab I course project at Kocaeli University's Computer Engineering Department. The project is a desktop application designed for users to save, manage, and search for recipes based on available ingredients. This README provides an overview of the project, installation instructions, features, and technical details.
The Recipe Management System is a C# desktop application that allows users to:
- Store and manage recipes and ingredients.
- Search for recipes based on ingredients in hand.
- Filter recipes by preparation time, cost, and ingredient count.
- Update and delete recipes with ease.
The project includes a relational database designed to store recipe and ingredient data, implementing dynamic search, filtering, and ingredient management capabilities.
-
Recipe Addition:
- Add recipes by entering name, category, preparation time, and instructions.
- Link multiple ingredients to each recipe with specified quantities.
- Select existing ingredients or add new ones as needed.
-
Recipe Suggestion:
- Suggest recipes based on available ingredients, highlighting those missing necessary ingredients.
- Show total cost for recipes with missing ingredients.
-
Dynamic Search:
- Search recipes by name or ingredients.
- Display search results with percentage match based on ingredient availability.
-
Filtering and Sorting:
- Filter recipes by preparation time, cost, ingredient count, and category.
- Sort recipes by preparation time or cost in ascending or descending order.
-
Recipe and Ingredient Management:
- Update and delete recipes and ingredients with automatic database updates.
- Prevent duplicate recipe entries through a duplicate check mechanism.
- Programming Language: C# (.NET)
- Database: MSSQL for relational data storage
- GUI Framework: Windows Forms with MetroSet UI for a modern interface
- Architecture: N-layered architecture including data, service, and repository layers
The database consists of three primary tables:
- Recipes: Stores recipe details like ID, name, category, preparation time, and instructions.
- Ingredients: Stores ingredient details like ID, name, quantity, unit, and price.
- Recipe-Ingredient Relation: A many-to-many relationship between recipes and ingredients, linking them with specified quantities.
- Clone the Repository
git clone https://github.com/yourusername/recipe-management-system.git cd recipe-management-system - Database Setup (Not Available for now.)
- Ensure you have an MSSQL server installed.
- Create a database named
RecipeManagementDB. - Run the SQL scripts located in the
dbfolder to initialize tables and relationships.
- Run the Application
- Open the solution in Visual Studio.
- Restore NuGet packages if required.
- Configure database connection settings in the
app.configfile. - Build and run the application.
This project adheres to object-oriented programming principles with a focus on modular and reusable code. The development process involved database normalization (1NF, 2NF, 3NF) and UI/UX design for a user-friendly experience.
- Recipe Addition Module: Facilitates adding new recipes with associated ingredients.
- Search and Filter Module: Enables dynamic search by recipe name or ingredients, and filtering options.
- Suggestion Module: Recommends recipes based on available ingredients and highlights missing ingredients.
- Enhanced Recommendation Algorithm: Improve recipe suggestions based on ingredient availability.
- User Authentication: Implement user accounts and secure data access.
- API Integration: Expose REST APIs for remote data access and third-party integrations.
This project is licensed under the MIT License.
For questions or contributions, please feel free to open an issue or contact us.
📫 Contact: mertmetin39@gmail.com
📫 Contact: akifalbayrakoffical@gmail.com




