NutriShare는 생필품 등 상품을 공동구매로 모집하고, 장바구니·주문·결제·마이페이지까지 이어지는 흐름을 제공하는 쇼핑/공구 서비스입니다.
웹(React)과 모바일 앱이 동일한 백엔드 API(/api/v1)를 사용하는 구조입니다.
- 공동구매 모집·참여·목록/상세 조회
- 장바구니 담기 및 주문/결제 시스템 (시뮬레이션 결제 플로우)
- 공동구매 참여 기준 리뷰 작성 및 조회
- JWT 기반 사용자 인증 (액세스 토큰 + 리프레시 재발급), 카카오·구글 OAuth 로그인
- 관리자 물품 등록/삭제 및 이미지 관리 (AWS S3)
- Android, iOS, 데스크탑(웹) 에서 이용 가능한 크로스플랫폼 구성
| 구분 | URL / 설명 |
|---|---|
| 웹(React) 배포 | https://react-navy-xi.vercel.app/ |
| 앱 | Android | iOS TestFlight |
🔍 펼치기
flowchart LR
subgraph client["클라이언트"]
WEB["React 웹\n(Vite)"]
AND["Android 앱"]
IOS["iOS 앱"]
end
subgraph api["Spring Boot\nNutriShare API"]
AUTH["인증·회원\nJWT / OAuth2"]
CAT["상품·검색"]
GB["공동구매"]
CART["장바구니"]
ORD["주문"]
PAY["결제 확정"]
MYP["마이페이지·리뷰"]
end
subgraph data["데이터·외부"]
MYSQL[("MySQL")]
REDIS[("Redis")]
S3["AWS S3\n(상품 이미지 등)"]
OAUTH["Kakao / Google"]
end
WEB --> api
AND --> api
IOS --> api
AUTH --> OAUTH
AUTH --> REDIS
CAT --> MYSQL
GB --> MYSQL
CART --> MYSQL
ORD --> MYSQL
PAY --> MYSQL
MYP --> MYSQL
CAT --> S3
회원가입/로그인 (OAuth 또는 개발자 로그인)
↓
상품 목록·검색·상세
↓
구매 방식 선택
├── 장바구니
└── 공동구매 모집·참여
↓
체크아웃 · 주문 생성
↓
결제 확정 API
↓
마이페이지 (주문·참여·리뷰)
🔍 펼치기
| 항목 | 내용 |
|---|---|
| Base URL | http://3.36.139.67/api/v1 |
| 인증 | Authorization: Bearer {accessToken} |
| 응답 | 보통 data 필드에 실제 페이로드 |
| 쿠키 | withCredentials: true (토큰 재발급 등) |
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /auth/dev-login |
개발용 즉시 로그인 |
| POST | /auth/reissue |
액세스 토큰 재발급 |
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /users/me |
내 프로필 |
| PUT | /users/me |
프로필·주소 수정 |
| GET | /users/me/orders |
내 주문 |
| GET | /users/me/participations |
내 공구 참여 |
| POST | /users/me/reviews |
리뷰 작성 |
| 메서드 | 경로 | 쿼리/비고 |
|---|---|---|
| GET | /products |
size 등 |
| GET | /products/search |
q, size |
| GET | /products/{id} |
상세 |
| 메서드 | 경로 | 비고 |
|---|---|---|
| GET | /cart |
조회 |
| POST | /cart |
productId, quantity |
| PUT | /cart/{productId} |
quantity |
| DELETE | /cart/{productId} |
삭제 |
| 메서드 | 경로 | 비고 |
|---|---|---|
| GET | /groups |
size 등 |
| GET | /groups/{id} |
상세 |
| POST | /groups |
모집 생성 |
| POST | /groups/{id}/join |
참여 |
| 메서드 | 경로 | 비고 |
|---|---|---|
| POST | /orders |
주문 생성 |
| POST | /payments/confirm |
결제 확정 |
관리자·S3 등 웹에서 호출하지 않는 API는 백엔드 저장소·Swagger 기준으로 확인.
| 저장소 | 링크 |
|---|---|
| 백엔드 | Backend |
| 리액트(웹) | web |
| Android | android |
| iOS | mobile |
| 플랫폼 | 링크 |
|---|---|
| Android | APK / 스토어 링크 입력 |
| iOS | TestFlight |
- 📹 안드로이드 시연 영상 (https://youtube.com/shorts/nsMjESt-zVo)
- [📹 아이폰 시연 영상] (https://youtu.be/Mm-R8tdzca0)
- 📹 리액트(PC) 시연 영상 (https://www.youtube.com/watch?v=_P4TziFBocU))
| 항목 | NutriShare | 최우수 | 우수1 | 우수2 | 우수3 |
|---|---|---|---|---|---|
| Code | ✅ | ✅ | ✅ | ✅ | ✅ |
| Doc | ✅ | ✅ | ✅ | ❌ | ✅ |
| 영상 | ✅ | ✅ | ✅ | ❌ | ✅ |
| 화면 | W, A, I | R | R | R | R |
| AppStore/GooglePlay | ✅ | ❌ | ❌ | ❌ | ❌ |
- 최우수: 황치즈 — https://github.com/HwangCheese/VideoSummary
- 우수1: 황금토끼 — https://github.com/GolddBunny/Domain_QA_Gen
- 우수2: 초신성 — https://github.com/kola0709/2025Capstone/tree/master (작품설명 없음)
- 우수3: Prism — https://github.com/hsu-capstone-prism/DamSeol
| 역할 | 이름 | GitHub |
|---|---|---|
| 백엔드 | 김준호 | GitHub |
| 웹 프론트엔드 | 박성훈 | GitHub |
| Android | 신한석 | GitHub |
| iOS | 최용주 | GitHub |
Copyright © 2026 NutriShare. All rights reserved.