미스터 대박 디너 주문 및 배달 관리를 위한 백엔드 서버입니다. 고객은 장바구니에 디너를 담고 주문할 수 있으며, 직원(요리사/배달원)은 주문 상태를 관리하고 재고를 확인할 수 있습니다.
- Java 17, Gradle
- Spring Boot 3.5.6 (Web, Data JPA, Validation, Security)
- Spring Data JPA (Hibernate)
- MySQL 8.x
- JWT 인증
-
환경 변수를 설정합니다.
DB_HOST=<HOST> DB_PORT=3306 DB_NAME=<DATABASE_NAME> DB_USERNAME=<USER> DB_PASSWORD=<PASSWORD> JWT_SECRET=<SECRET_KEY> -
의존성을 내려받고 애플리케이션을 실행합니다.
./gradlew bootRun
-
기본 포트
8080에서 API를 호출할 수 있습니다.
모든 API는 /api 하위 경로에 존재하며, 대부분의 API는 JWT 토큰 인증이 필요합니다.
고객/직원 통합 로그인. 응답의 role 필드로 구분됩니다 (CUSTOMER, COOK, DELIVERY).
고객 회원가입.
장바구니 조회. 여러 디너 아이템과 총액을 반환합니다.
장바구니에 디너 추가.
cartItemId가 있으면: 해당 아이템만 삭제cartItemId가 없거나0이면: 전체 장바구니 삭제
장바구니의 모든 아이템을 주문으로 생성. 주문 생성 시 장바구니는 자동으로 비워집니다.
고객의 주문 내역 조회. 모든 상태(REQUESTED, COOKING, COOKED, DELIVERING, DONE)의 주문을 반환합니다.
요리사용. REQUESTED, COOKING 상태의 주문만 반환합니다.
배달원용. COOKED, DELIVERING 상태의 주문만 반환합니다.
주문 상태 변경. COOKING, COOKED, DELIVERING, DONE 중 하나로 변경 가능합니다. COOKED 상태로 변경 시 재고가 자동으로 차감됩니다.
재고 목록 조회. 재고는 매일 오전 5시에 자동으로 100으로 리셋됩니다.