Skip to content

DelivHub/delivhub

Repository files navigation

🍽️ DelivHub

배달 주문 관리 플랫폼


📌 목차


🧩 프로젝트 개요

목적

광화문 근처 음식점의 배달 주문, 결제, 주문 내역 관리 기능 제공

주요 기능

  • 보안: Spring Security + JWT: RBAC(CUSTOMER, OWNER, MANAGER, MASTER) 및 토큰 기반 인증 강화
  • 주문: 카드 결제 가상 연동 및 주문 상태 관리(접수, 배달 중, 완료)
  • AI 연동: Gemini API 활용하여 메뉴 등록 시 키워드만으로 풍부한 상품 설명 자동 생성, 점주의 운영 편의성 증대 및 플랫폼 콘텐츠 퀄리티 상향 평준화

개발 기간

기간 내용
2026.04.16 ~ 2026.04.20 기획 및 설계
2026.04.20 ~ 2026.04.26 개발
2026.04.27 ~ 2026.04.30 테스트 및 배포

👥 팀원 역할 분담

이름 역할 담당 기능
이성근 팀장 / Backend 유저 도메인 구현, 인증/인가
이재훈 Backend 주문 도메인 구현, CI/CD
하준영 Backend 결제 · 리뷰 도메인 구현, PPT 제작
조혜은 Backend 메뉴 · 옵션 도메인 구현, AI 연동
김민우 Backend 가게 · 카테고리 · 지역 도메인 구현, 배포

🛠 기술 스택

Backend

Java Spring Boot Spring Security Spring Data JPA Spring Validation JWT Lombok Swagger

Database

PostgreSQL Redis Hibernate Spatial

Test

JUnit5 Mockito

Infra

Docker GitHub Actions AWS EC2

Tools

Git Gradle Notion Slack


📐 ERD

ERD

테이블 목록 보기
테이블 설명
p_user 사용자
p_store 가게
p_category 가게 카테고리
p_area 지역
p_menu 메뉴
p_option 메뉴 옵션
p_option_item 옵션 항목
p_order 주문
p_order_item 주문 항목
p_payment 결제
p_review 리뷰
p_address 배송지
p_ai_log AI 요청 로그

🏗️ 인프라 아키텍처

System Architecture


📄 API 문서

주요 API 목록

👤 회원 API
Method URI 설명 권한
POST /api/v1/auth/signup 회원가입 전체
POST /api/v1/auth/login 로그인 전체
GET /api/v1/users/{username} 회원 조회 본인/관리자
PUT /api/v1/users/{username} 회원 수정 본인/관리자
DELETE /api/v1/users/{username} 회원 탈퇴 본인/관리자
🏪 가게 API
Method URI 설명 권한
POST /api/v1/stores 가게 등록 OWNER
GET /api/v1/stores 가게 목록 조회 전체
GET /api/v1/stores/{storeId} 가게 상세 조회 전체
PUT /api/v1/stores/{storeId} 가게 수정 OWNER
DELETE /api/v1/stores/{storeId} 가게 삭제 OWNER/관리자
🛒 주문 API
Method URI 설명 권한
POST /api/v1/orders 주문 생성 CUSTOMER
GET /api/v1/orders 주문 목록 조회 본인/관리자
GET /api/v1/orders/{orderId} 주문 상세 조회 본인/관리자
PATCH /api/v1/orders/{orderId}/cancel 주문 취소 (생성 후 5분 이내) 본인
💳 결제 API
Method URI 설명 권한
POST /api/v1/payments 결제 요청 (CARD 방식만 허용) CUSTOMER
GET /api/v1/payments/{paymentId} 결제 조회 본인/관리자
PATCH /api/v1/payments/{paymentId}/cancel 결제 취소 본인
⭐ 리뷰 API
Method URI 설명 권한
POST /api/v1/reviews 리뷰 작성 CUSTOMER
GET /api/v1/stores/{storeId}/reviews 가게 리뷰 목록 전체
PUT /api/v1/reviews/{reviewId} 리뷰 수정 본인
DELETE /api/v1/reviews/{reviewId} 리뷰 삭제 본인/관리자

🤖 JaCoCo 테스트 커버리지

서비스의 안정성을 검증하기 위해 JaCoCo를 사용하여 테스트 커버리지를 측정하고 관리하였습니다.

📊 1차 테스트 결과 (초기 단계)

초기 단계에서는 핵심 비즈니스 로직(Service) 위주의 테스트를 진행하였습니다.

1차


🚀 2차 테스트 결과 (현재)

전체 커버리지 53% → 79% 달성! 모든 Controller 레이어 테스트 100% 완료 및 주요 도메인 로직 검증을 강화했습니다.

2차


📁 프로젝트 구조

src
├─main
│  ├─java
│  │  └─com
│  │      └─sparta
│  │          └─delivhub
│  │              ├─common
│  │              │  ├─dto
│  │              │  ├─entity
│  │              │  ├─handler
│  │              │  └─util
│  │              ├─config
│  │              │  ├─JpaAuditingConfig
│  │              │  ├─RedisConfig
│  │              │  ├─RestClientConfig
│  │              │  ├─SecurityConfig
│  │              │  └─SwaggerConfig
│  │              ├─domain
│  │              │  ├─address
│  │              │  ├─ai
│  │              │  ├─area
│  │              │  ├─auth
│  │              │  ├─category
│  │              │  ├─menu
│  │              │  ├─option
│  │              │  ├─order
│  │              │  ├─payment
│  │              │  ├─review
│  │              │  ├─store
│  │              │  └─user
│  │              └─security
│  │                 ├─JwtAuthenticationEntryPoint
│  │                 ├─JwtAuthenticationFilter
│  │                 ├─JwtTokenProvider
│  │                 ├─TokenService
│  │                 ├─UserDetailServiceImpl    
│  │                 └─UserDetailsImpl
│  └─resources
└─test

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors