diff --git a/backend/src/main/java/com/example/todoapp/config/InitTables.java b/backend/src/main/java/com/example/todoapp/config/InitTables.java
new file mode 100644
index 0000000..413f9f2
--- /dev/null
+++ b/backend/src/main/java/com/example/todoapp/config/InitTables.java
@@ -0,0 +1,133 @@
+//--------------------------------
+// InitTables.java
+//
+// 更新履歴:2025/06/10 新規作成
+// Copyright(c) 2025 IVIS All rights reserved.
+//
+// Tobuys, Stocks, Stuffs, Recipes, RecipeStuffsを起動時に初期化するクラス
+//
+//--------------------------------------------
+
+package com.example.todoapp.config;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+
+import jakarta.annotation.PostConstruct;
+
+import com.example.todoapp.model.ToBuys;
+import com.example.todoapp.repository.ToBuysRepository;
+import com.example.todoapp.model.Stocks;
+import com.example.todoapp.repository.StocksRepository;
+import com.example.todoapp.model.Recipes;
+import com.example.todoapp.repository.RecipesRepository;
+import com.example.todoapp.model.RecipeStuffs;
+import com.example.todoapp.repository.RecipeStuffsRepository;
+import com.example.todoapp.model.Stuffs;
+import com.example.todoapp.repository.StuffsRepository;
+
+@Configuration
+public class InitTables {
+
+ @Autowired
+ private ToBuysRepository tobuysRepository;
+ @Autowired
+ private StocksRepository stocksRepository;
+ @Autowired
+ private RecipesRepository recipesRepository;
+ @Autowired
+ private RecipeStuffsRepository recipeStuffsRepository;
+ @Autowired
+ private StuffsRepository stuffsRepository;
+
+ @PostConstruct
+ public void initTables() {
+
+ // tobuysRepository.deleteAll(); //データを残す場合はコメントアウト
+ // stocksRepository.deleteAll(); //データを残す場合はコメントアウト
+ // recipeStuffsRepository.deleteAll(); //データを残す場合はコメントアウト
+ // recipesRepository.deleteAll(); //データを残す場合はコメントアウト
+ // stuffsRepository.deleteAll(); //データを残す場合はコメントアウト
+
+ if (stuffsRepository.count() > 0) {
+ return; // すでにデータが存在する場合は何もしない
+
+ } else {
+ setNewStuff(1L, "牛乳", null, "乳製品");
+ setNewStuff(2L, "ヨーグルト", null, "乳製品");
+ setNewStuff(3L, "チーズ", null, "乳製品");
+ setNewStuff(4L, "バター", null, "乳製品");
+ setNewStuff(5L, "生クリーム", null, "乳製品");
+
+ setNewStuff(6L, "鮭", null, "魚・肉");
+ setNewStuff(7L, "鶏むね肉", null, "魚・肉");
+ setNewStuff(8L, "豚バラ肉", null, "魚・肉");
+ setNewStuff(9L, "牛ひき肉", null, "魚・肉");
+ setNewStuff(10L, "まぐろ", null, "魚・肉");
+
+ setNewStuff(11L, "にんじん", null, "野菜");
+ setNewStuff(12L, "キャベツ", null, "野菜");
+ setNewStuff(13L, "ほうれん草", null, "野菜");
+ setNewStuff(14L, "玉ねぎ", null, "野菜");
+ setNewStuff(15L, "ピーマン", null, "野菜");
+ setNewStuff(16L, "じゃがいも", null, "野菜");
+
+
+ setNewStuff(17L, "醤油", null, "調味料");
+ setNewStuff(18L, "味噌", null, "調味料");
+ setNewStuff(19L, "塩", null, "調味料");
+ setNewStuff(20L, "砂糖", null, "調味料");
+ setNewStuff(21L, "酢", null, "調味料");
+
+ setNewStuff(22L, "米", null, "その他");
+ setNewStuff(23L, "パスタ", null, "その他");
+ setNewStuff(24L, "小麦粉", null, "その他");
+ setNewStuff(25L, "卵", null, "その他");
+ setNewStuff(26L, "豆腐", null, "その他");
+ }
+
+ if (stuffsRepository.count() > 0) {
+ return; // すでにデータが存在する場合は何もしない
+ } else {
+ setNewRecipe(1L, "鮭のムニエル", "鮭を小麦粉で焼いた料理");
+ setNewRecipe(2L, "カレー", "野菜と肉を煮込んだカレー");
+ }
+
+ if (recipesRepository.count() > 0) {
+ return; // すでにデータが存在する場合は何もしない
+ } else {
+ setNewRecipeStuffs(1L, recipesRepository.findById(1L).orElse(null), 6L, 1); // 鮭
+ setNewRecipeStuffs(3L, recipesRepository.findById(1L).orElse(null), 17L, 10); // 醤油
+ setNewRecipeStuffs(2L, recipesRepository.findById(1L).orElse(null), 24L, 50); // 小麦粉
+ setNewRecipeStuffs(4L, recipesRepository.findById(2L).orElse(null), 11L, 1); // にんじん
+ setNewRecipeStuffs(5L, recipesRepository.findById(2L).orElse(null), 16L, 1); // じゃがいも
+ setNewRecipeStuffs(6L, recipesRepository.findById(2L).orElse(null), 9L, 100); // 牛ひき肉
+ }
+
+ }
+
+ private void setNewStuff(Long stuffId, String stuffName, String summary, String category) {
+ Stuffs stuff = new Stuffs();
+ stuff.setStuffId(stuffId);
+ stuff.setStuffName(stuffName);
+ stuff.setSummary(summary);
+ stuff.setCategory(category);
+ stuffsRepository.save(stuff);
+ }
+
+ private void setNewRecipe(Long recipeId, String recipeName, String summary) {
+ Recipes recipe = new Recipes();
+ recipe.setRecipeId(recipeId);
+ recipe.setRecipeName(recipeName);
+ recipe.setSummary(summary);
+ }
+
+ private void setNewRecipeStuffs(Long recipeStuffsId, Recipes recipe, Long stuffId, int amount) {
+ RecipeStuffs recipeStuff = new RecipeStuffs();
+ recipeStuff.setRecipeStuffsId(recipeStuffsId);
+ recipeStuff.setRecipes(recipe);
+ recipeStuff.setRecipeStuffsId(stuffId);
+ recipeStuff.setAmount(amount);
+ recipeStuffsRepository.save(recipeStuff);
+ }
+}
diff --git a/backend/src/main/java/com/example/todoapp/controller/RecipesController.java b/backend/src/main/java/com/example/todoapp/controller/RecipesController.java
new file mode 100644
index 0000000..b2f97ab
--- /dev/null
+++ b/backend/src/main/java/com/example/todoapp/controller/RecipesController.java
@@ -0,0 +1,116 @@
+package com.example.todoapp.controller;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.Authentication;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.example.todoapp.dto.RecipeDetailDTO;
+import com.example.todoapp.dto.RecipeRequestDTO;
+import com.example.todoapp.dto.RecipeResponseDTO;
+import com.example.todoapp.model.Recipes;
+import com.example.todoapp.service.RecipeService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * 料理レシピ管理のコントローラー
+ *
+ * このコントローラーはレシピの取得、作成、更新、削除などの
+ * エンドポイントを提供します。すべてのエンドポイントは認証が必要です。
+ *
+ */
+@RestController
+@RequestMapping("/recipes")
+public class RecipesController {
+
+ @Autowired
+ private RecipeService recipeService;
+
+ /**
+ * 新しいレシピを作成する
+ *
+ * @param dto 作成するレシピの情報
+ * @return 作成結果(recipeIdとメッセージを含む)
+ */
+ @PostMapping("/add")
+ public ResponseEntity