diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..73a1f7d
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,16 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "java",
+ "name": "Launch Spring Boot App (local profile)",
+ "request": "launch",
+ "cwd": "${workspaceFolder}/backend",
+ "mainClass": "com.example.todoapp.TodoApplication",
+ "projectName": "todo-app",
+ "args": "",
+ "envFile": "${workspaceFolder}/backend/.env",
+ "vmArgs": "-Dspring.profiles.active=local"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/example/todoapp/controller/StocksController.java b/backend/src/main/java/com/example/todoapp/controller/StocksController.java
new file mode 100644
index 0000000..2631bc1
--- /dev/null
+++ b/backend/src/main/java/com/example/todoapp/controller/StocksController.java
@@ -0,0 +1,107 @@
+package com.example.todoapp.controller;
+
+import com.example.todoapp.dto.ResponseStockDTO;
+import com.example.todoapp.dto.StockDTO;
+import com.example.todoapp.model.Stocks;
+import com.example.todoapp.service.StocksService;
+import jakarta.validation.Valid;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.Authentication;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 在庫管理のコントローラー
+ *
+ * このコントローラーは在庫の取得、作成、更新、削除などの
+ * エンドポイントを提供します。すべてのエンドポイントは認証が必要です。
+ *
+ */
+@RestController
+@RequestMapping("/stocks")
+public class StocksController {
+
+ @Autowired
+ private StocksService stockService;
+
+ /**
+ * ログインユーザーのすべての在庫を取得する
+ *
+ * @param authentication 認証情報
+ * @return ユーザーの在庫リスト
+ */
+ @GetMapping("/get")
+ public ResponseEntity> getAllStocks(Authentication authentication) {
+ List stocks = stockService.getALLStocksByUser(authentication.getName());
+ // エンティティからDTOへの変換
+ List stockDTOs = stocks.stream()
+ .map(ResponseStockDTO::fromEntity)
+ .collect(Collectors.toList());
+ return ResponseEntity.ok(stockDTOs);
+ }
+
+ /**
+ * 指定されたIDの在庫を取得する
+ *
+ * @param authentication 認証情報
+ * @param stockId 在庫ID
+ * @return 在庫情報
+ */
+ @GetMapping("/{id}")
+ public ResponseEntity getStockById(
+ Authentication authentication,
+ @PathVariable("id") Long stockId) {
+ Stocks stock = stockService.getStockById(authentication.getName(), stockId);
+ return ResponseEntity.ok(StockDTO.fromEntity(stock));
+ }
+
+ /**
+ * 新しい在庫を作成する
+ *
+ * @param authentication 認証情報
+ * @param stock 作成する在庫の情報
+ * @return 作成された在庫
+ */
+ @PostMapping("/add")
+ public ResponseEntity createStock(
+ Authentication authentication,
+ @Valid @RequestBody Stocks stock) {
+ Stocks createdStock = stockService.createStock(authentication.getName(), stock);
+ return ResponseEntity.ok(StockDTO.fromEntity(createdStock));
+ }
+
+ /**
+ * 指定されたIDの在庫を更新する
+ *
+ * @param authentication 認証情報
+ * @param stockId 更新する在庫のID
+ * @param stockDetails 更新内容
+ * @return 更新された在庫
+ */
+ @PutMapping("/{id}")
+ public ResponseEntity updateStock(
+ Authentication authentication,
+ @PathVariable("id") Long stockId,
+ @Valid @RequestBody Stocks stockDetails) {
+ Stocks updatedStock = stockService.updateStocks(authentication.getName(), stockId, stockDetails);
+ return ResponseEntity.ok(StockDTO.fromEntity(updatedStock));
+ }
+
+ /**
+ * 指定されたIDの在庫を削除する
+ *
+ * @param authentication 認証情報
+ * @param taskId 削除する在庫のID
+ * @return 空のレスポンス
+ */
+ @DeleteMapping("/{id}")
+ public ResponseEntity> deleteStock(
+ Authentication authentication,
+ @PathVariable("id") Long stockId) {
+ stockService.deleteStock(authentication.getName(), stockId);
+ return ResponseEntity.ok().build();
+ }
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/example/todoapp/controller/StuffsController.java b/backend/src/main/java/com/example/todoapp/controller/StuffsController.java
new file mode 100644
index 0000000..68722f6
--- /dev/null
+++ b/backend/src/main/java/com/example/todoapp/controller/StuffsController.java
@@ -0,0 +1,64 @@
+//--------------------------------
+// StuffsController.java
+//
+// 更新履歴:2025/06/09 新規作成
+// Copyright(c) 2025 IVIS All rights reserved.
+//--------------------------------------------
+package com.example.todoapp.controller;
+
+import com.example.todoapp.dto.StuffsDTO;
+import com.example.todoapp.model.Stuffs;
+import com.example.todoapp.service.StuffsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.Collections;
+
+
+/**
+ * 材料リストに関するRESTコントローラー
+ *
+ * このコントローラーは、材料 (stuffs) の管理に関するエンドポイントを提供します。
+ *
+ */
+@RestController
+@RequestMapping("/stuff")
+public class StuffsController {
+
+ @Autowired
+ private StuffsService stuffsService;
+
+
+ /**
+ * カテゴリ指定で材料を取得するメソッド
+ *
+ * @param category カテゴリ名
+ * @return 指定されたカテゴリに属する材料のリスト
+ */
+ @GetMapping("/get")
+ public ResponseEntity> getAllStuffsByCategory(String category) {
+ List stuffsList = stuffsService.getAllStuffsByCategory(category);
+ //DTOに変換
+ List responceList = stuffsList.stream()
+ .map(stuff -> {
+ StuffsDTO resp = new StuffsDTO();
+ resp.setStuffId(stuff.getStuffId());
+ resp.setStuffName(stuff.getStuffName());
+ resp.setSummary(stuff.getSummary());
+ resp.setCategory(stuff.getCategory());
+ return resp;
+ })
+ .collect(Collectors.toList());
+ // 空のリストの場合は空のリストを返す
+ if (responceList.isEmpty()) {
+ return ResponseEntity.ok(Collections.emptyList());
+ }
+ return ResponseEntity.ok(responceList);
+ }
+
+}
diff --git a/backend/src/main/java/com/example/todoapp/controller/ToBuysController.java b/backend/src/main/java/com/example/todoapp/controller/ToBuysController.java
index 7b81ea3..d1ab6f9 100644
--- a/backend/src/main/java/com/example/todoapp/controller/ToBuysController.java
+++ b/backend/src/main/java/com/example/todoapp/controller/ToBuysController.java
@@ -7,12 +7,15 @@
package com.example.todoapp.controller;
+import com.example.todoapp.dto.BuyRequestDTO;
import com.example.todoapp.dto.DeleteToBuyRequest;
import com.example.todoapp.dto.ToBuyResponse;
import com.example.todoapp.dto.ToBuysDTO;
+import com.example.todoapp.model.Stuffs;
import com.example.todoapp.model.ToBuys;
import com.example.todoapp.model.User;
import com.example.todoapp.repository.UserRepository;
+import com.example.todoapp.repository.StuffsRepository;
import com.example.todoapp.service.ToBuysService;
import jakarta.validation.Valid;
@@ -20,6 +23,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
+import java.util.Collections;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@@ -30,7 +34,7 @@ import org.springframework.web.bind.annotation.*;
/**
* 購入リストに関するRESTコントローラー
*
- * このコントローラーは、購入リスト (to_buys) へのアイテム追加機能を提供します。
+ * このコントローラーは、購入リスト (toBuys) へのアイテム追加機能を提供します。
* リクエストボディには ToBuyDTO 形式のデータが期待されます。
*
*/
@@ -52,19 +56,36 @@ public class ToBuysController {
*/
@PostMapping("/add")
- public ResponseEntity addToBuys(
+ public ResponseEntity