A web application for users to keep track of recipes, built with C#, using EFCore, Identity & MVC structure and a MySQL database.
By Ravin Fisher, Henry Oberholtzer, Kim Robinson
- C#
- MySQL
- EFCore
-
As a user, I want to rate my recipes, so I know which ones are the best.
-
Add tags to recipes: GF, VEGAN ETC
-
As a user, I want to add a recipe with ingredients and instructions, so I remember how to prepare my favorite dishes.
-
As a user, I want to tag my recipes with different categories, so recipes are easier to find. A recipe can have many tags and a tag can have many recipes.
-
As a user, I want to be able to update and delete tags (Meals), so I can have flexibility with how I categorize recipes.
-
As a user, I want to edit my recipes, so I can make improvements or corrections to my recipes.
-
As a user, I want to be able to delete recipes I don't like or use, so I don't have to see them as choices.
-
As a user, I want to see all recipes that use a certain ingredient, so I can more easily find recipes for the ingredients I have.
As a user, I want to create an account.
As a user, I want to be able to log in and log off.
As a user, I want to be able to see my account details.
Add authorization:
As a user, I should only be able to create, update and delete if I am logged in. All users should be able to have read functionality.
- If not signed in, can not leave comment
- Leaving comment attaches userName to comment
- As a user, I want to list my recipes by highest rated so I can see which ones I like the best (each recipe has rating average (details) sort recipes by ratings on recipes index page.)
- .NET 6 or greater is required for set up, and dotnet-ef to manage migrations.
- To establish locally, download the repository to your computer.
- Open the folder with your terminal and run
dotnet restore
to gather necessary resources. - In the production direction,
/RecipeBox
run$ touch appsettings.json
- In
appsettings.json
, enter the following, replacingUSERNAME
andPASSWORD
to match the settings of your local MySQL server.
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Port=3306;database=RecipeBox;uid=USERNAME;pwd=PASSWORD;"
}
}
- A local instance of MySQL (8.0.0 or greater) is required to be set up and running to use the project, for information on installing and configuring MySQL, please see the official documentation.
- If you do not have
dotnet-ef
installed, first install it by runningdotnet tool install --global dotnet-ef --version 6.0.0
- Run
dotnet ef database update
to create the database based on the provided database migrations. - To start the projet, in the production directory, run the command
dotnet run
on your terminal.
- When a user goes to add a Meal type to a recipe if they don't choose any checkboxes nothing happens. I want an error msg and to stay on that page. Temp fix: Breakfast box is checked as default. Otherwise it redirects to the page but is no longer attached to the recipe by Id anymore and no error msg shows.
(c) 2024 Ravin Fisher, Kim Robinson, Henry Oberholtzer
Original code licensed under the GNU GPLv3, other code bases and libraries as stated.