Skip to content

KidsCafe/KidsCafe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

698 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧸KIDS~CAFE


λ‹€μ–‘ν•œ 검색 쑰건으둜 μ „κ΅­μ˜ ν‚€μ¦ˆ 카페λ₯Ό 검색할 수 μžˆλŠ” μ„œλΉ„μŠ€

πŸ“œμš”κ΅¬ 사항 λͺ…μ„Έμ„œ

  • λ‹€μ–‘ν•œ 검색 쑰건으둜 μ „κ΅­μ˜ ν‚€μ¦ˆ 카페λ₯Ό 검색
  • μ΄ˆλ°˜μ—” 크둀링으둜 μ „κ΅­μ˜ 카페λ₯Ό 일괄 등둝
  • κ΄€λ¦¬μž, 사μž₯λ‹˜, μœ μ € κΆŒν•œμ„ λΆ€μ—¬ν•˜μ—¬ 각 κΆŒν•œμ— 따라 μ΄μš©κ°€λŠ₯ν•œ κΈ°λŠ₯을 μ œν•œ
  • μ†Œμ…œλ‘œκ·ΈμΈ μ—°λ™μœΌλ‘œ κ°„νŽΈν•œ νšŒμ›κ°€μž…
  • μ˜ˆμ•½ 및 결제 μ‹œμŠ€ν…œ 연동

πŸ‘©β€πŸ‘§β€πŸ‘¦νŒ€ μ†Œκ°œ

πŸ“Œλ…Έμ…˜ 링크

πŸ‘‘κΉ€ν˜œμ§„
(리더)
πŸ‘‘λ°•κ²¬μš°
(뢀리더)
λ°•λ„ν˜„
(νŒ€μ›)
λ₯˜μ§€μˆ˜
(νŒ€μ›)
κΉ€ν˜„μ •
(νŒ€μ›)
Github
Blog
Github
Github
Blog
Github
Blog
Github
Blog

πŸ–₯οΈμ‹œμŠ€ν…œ ꡬ성도


πŸŽ¨μ™€μ΄μ–΄ ν”„λ ˆμž„

πŸ“‹ERD

πŸ–₯οΈκ°œλ°œν™˜κ²½

πŸ§·μ‚¬μš© μ–Έμ–΄/라이브러리

🧷운용 ν™˜κ²½


🧷개발 ν™˜κ²½ & λ°μ΄ν„°λ² μ΄μŠ€


πŸ§·μ™ΈλΆ€ API

πŸ“‘API λͺ…μ„Έμ„œ

πŸ§·μœ μ € API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
λ°•λ„ν˜„ POST Public πŸ”—νšŒμ› κ°€μž… /api/auth/signup μ™„λ£Œ
λ°•λ„ν˜„ POST Public πŸ”—λ‘œκ·ΈμΈ /api/auth/signin μ™„λ£Œ
λ°•λ„ν˜„ GET Public πŸ”—μ†Œμ…œ 둜그인 /api/oauth2/{provider}/signin μ™„λ£Œ
κΉ€ν˜œμ§„ GET Admin πŸ”—νšŒμ› 쑰회(κ΄€λ¦¬μž) /api/admin/users μ™„λ£Œ
κΉ€ν˜œμ§„ GET Owner πŸ”—νšŒμ› 쑰회(κ°€κ²Œλ₯Ό 즐겨찾기 ν•œ) /api/owners/users μ™„λ£Œ
κΉ€ν˜œμ§„ GET User πŸ”—ν”„λ‘œν•„ 쑰회 /api/owners/users μ™„λ£Œ
κΉ€ν˜œμ§„ PUT User πŸ”—ν”„λ‘œν•„ μˆ˜μ • /api/owners/users μ™„λ£Œ
κΉ€ν˜œμ§„ DELETE User πŸ”—νšŒμ› νƒˆν‡΄ /api/owners/users μ™„λ£Œ

πŸ§·ν‚€μ¦ˆ 카페 API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
κΉ€ν˜„μ • POST Admin πŸ”—μΉ΄νŽ˜ 등둝(κ΄€λ¦¬μž) /api/admin/cafes μ™„λ£Œ
κΉ€ν˜„μ • POST Owner πŸ”—μΉ΄νŽ˜ 등둝(사μž₯λ‹˜) /api/owners/cafes μ™„λ£Œ
κΉ€ν˜„μ • GET Public πŸ”—μΉ΄νŽ˜ 리슀트 쑰회(μœ μ €κ°€ 검색) /api/cafes μ™„λ£Œ
κΉ€ν˜„μ • GET Admin πŸ”—μΉ΄νŽ˜ 리슀트 쑰회(κ΄€λ¦¬μž 검색) /api/admin/cafes μ™„λ£Œ
κΉ€ν˜„μ • GET Owner πŸ”—μΉ΄νŽ˜ 리슀트 쑰회(사μž₯λ‹˜μ΄ λ“±λ‘ν•œ) /api/owners/cafes μ™„λ£Œ
κΉ€ν˜„μ • GET Public πŸ”—μΉ΄νŽ˜ 상세 쑰회 /api/cafes/{cafeId} μ™„λ£Œ
κΉ€ν˜„μ • PUT Owner πŸ”—μΉ΄νŽ˜ μˆ˜μ • /api/cafes/{cafeId} μ™„λ£Œ
κΉ€ν˜„μ • DELETE Admin πŸ”—μΉ΄νŽ˜ μ‚­μ œ(κ΄€λ¦¬μž) /api/admin/cafes μ™„λ£Œ
κΉ€ν˜„μ • DELETE Owner πŸ”—μΉ΄νŽ˜ μ‚­μ œ(사μž₯λ‹˜) /api/owners/cafes μ™„λ£Œ
κΉ€ν˜„μ • POST Owner πŸ”—μΉ΄νŽ˜ 이미지 μ—…λ‘œλ“œ /api/owners/cafes μ™„λ£Œ
κΉ€ν˜„μ • DELETE Owner πŸ”—μΉ΄νŽ˜ 이미지 μ‚­μ œ /api/owners/cafes μ™„λ£Œ
κΉ€ν˜œμ§„ POST Admin πŸ”—μΉ΄νŽ˜ 크둀링 /api/owners/cafes μ™„λ£Œ

🧷인기 ν‚€μ›Œλ“œ API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
λ₯˜μ§€μˆ˜ GET Public πŸ”—μΈκΈ° 카페(ν‚€μ›Œλ“œ 기반) 검색 v1 /api/cafes/v1/search?keyword={keyword} μ™„λ£Œ
λ₯˜μ§€μˆ˜ GET Public πŸ”—μΈκΈ° ν‚€μ›Œλ“œ Top 10 v1 /api/cafes/v1/search/keywords/top10 μ™„λ£Œ
λ₯˜μ§€μˆ˜ GET Public πŸ”—μΈκΈ° 카페(ν‚€μ›Œλ“œ 기반) 검색 v2 /api/cafes/v2/search?keyword={keyword} 진행쀑
λ₯˜μ§€μˆ˜ GET Public πŸ”—μΈκΈ° ν‚€μ›Œλ“œ Top 10 v2 /api/cafes/v2/search/keywords/top10 진행쀑
λ₯˜μ§€μˆ˜ GET Public πŸ”—μΈκΈ° 카페(ν‚€μ›Œλ“œ 기반) 검색 v3 /api/cafes/v3/search?keyword={keyword} 진행쀑
λ₯˜μ§€μˆ˜ GET Public πŸ”—μΈκΈ° ν‚€μ›Œλ“œ Top 10 v3 /api/cafes/v3/search/keywords/top10 진행쀑

🧷방 API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
λ°•κ²¬μš° POST Owner πŸ”—λ£Έ 생성 /api/cafes/{cafeId}/rooms μ™„λ£Œ
λ°•κ²¬μš° GET Public πŸ”—λ£Έ 쑰회 /api/cafes/rooms/{roomId} μ™„λ£Œ
λ°•κ²¬μš° PUT Owner πŸ”—λ£Έ μˆ˜μ • /api/cafes/rooms/{roomId} μ™„λ£Œ
λ°•κ²¬μš° DELETE Owner πŸ”—λ£Έ μ‚­μ œ /api/cafes/rooms/{roomId} μ™„λ£Œ

🧷즐겨찾기 API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
λ₯˜μ§€μˆ˜ POST User πŸ”—μ¦κ²¨μ°ΎκΈ° μΆ”κ°€ 및 μ‚­μ œ /api/cafes/{cafeId}/bookmarks μ™„λ£Œ
λ₯˜μ§€μˆ˜ GET User πŸ”—μ¦κ²¨μ°ΎκΈ° 쑰회(μ‚¬μš©μž) /api/users/bookmarks μ™„λ£Œ
λ₯˜μ§€μˆ˜ GET Owner πŸ”—μ¦κ²¨μ°ΎκΈ° 쑰회(카페) /api/owners/bookmarks μ™„λ£Œ

🧷리뷰 API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
λ°•κ²¬μš° POST User πŸ”—λ¦¬λ·° μž‘μ„± /api/cafes/{cafeId}/reviews μ™„λ£Œ
λ°•κ²¬μš° GET Public πŸ”—νŠΉμ • ν‚€μ¦ˆ 카페의 리뷰 λͺ©λ‘ 쑰회 /api/cafes/{cafeId}/reviews μ™„λ£Œ
λ°•κ²¬μš° GET User πŸ”—λ‚΄κ°€ μž‘μ„±ν•œ 리뷰 λͺ©λ‘ 쑰회 /api/reviews μ™„λ£Œ
λ°•κ²¬μš° PUT User πŸ”—λ¦¬λ·° μˆ˜μ • /api/reviews/{reviewId} μ™„λ£Œ
λ°•κ²¬μš° DELETE User πŸ”—λ¦¬λ·° μ‚­μ œ /api/reviews/{reviewId} μ™„λ£Œ
λ°•κ²¬μš° POST Owner πŸ”—λ¦¬λ·° 이미지 μ—…λ‘œλ“œ /api/reviews/images μ™„λ£Œ
λ°•κ²¬μš° DELETE Owner πŸ”—λ¦¬λ·° 이미지 μ‚­μ œ /api/reviews/images μ™„λ£Œ
λ°•κ²¬μš° POST User πŸ”—λ¦¬λ·° μΆ”μ²œ & μΆ”μ²œ μ·¨μ†Œ /api/review/recommend/{review_id} μ™„λ£Œ
κΉ€ν˜œμ§„ POST User πŸ”—μ˜μˆ˜μ¦ 리뷰 /api/cafes/{cafeId}/receipts/reviews μ™„λ£Œ

🧷리뷰 μ‹ κ³  API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
λ°•κ²¬μš° POST Owner πŸ”—μ‹ κ³  생성(사μž₯λ‹˜) /api/reviews/{reviewId}/reports μ™„λ£Œ
λ°•κ²¬μš° GET Owner πŸ”—μ‚¬μž₯λ‹˜ 본인이 μ‹ κ³ ν•œ μ‹ κ³  λͺ©λ‘ 쑰회(사μž₯λ‹˜) /api/owners/reports μ™„λ£Œ
λ°•κ²¬μš° GET Admin πŸ”—μ‚¬μž₯λ‹˜λ“€μ΄ μ‹ κ³ ν•œ μ‹ κ³  λͺ©λ‘ 쑰회(κ΄€λ¦¬μž) /api/admin/reports μ™„λ£Œ
λ°•κ²¬μš° PATCH Admin πŸ”—μ‹ κ³  μƒνƒœ λ³€κ²½ /api/reports/{reportId} μ™„λ£Œ

πŸ§·μ˜ˆμ•½ API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
λ₯˜μ§€μˆ˜ POST User πŸ”—μ˜ˆμ•½ 생성 /api/reservations/cafes/{cafeId} μ™„λ£Œ
λ₯˜μ§€μˆ˜ GET User πŸ”—μ˜ˆμ•½ λ‚΄μ—­ 쑰회(μ‚¬μš©μž) /api/users/reservations μ™„λ£Œ
λ₯˜μ§€μˆ˜ GET Owner πŸ”—μ˜ˆμ•½ λ‚΄μ—­ 쑰회(카페) /api/owners/reservations/cafes/{cafeId} μ™„λ£Œ
λ₯˜μ§€μˆ˜ GET Owner
User
πŸ”—μ˜ˆμ•½ 상세 쑰회 /api/users/reservations/{reservationId}
/api/owners/reservations/{reservationId}
μ™„λ£Œ
λ₯˜μ§€μˆ˜ PUT User πŸ”—μ˜ˆμ•½ 정보 μˆ˜μ • /api/users/reservations/{reservationId}/update μ™„λ£Œ
λ₯˜μ§€μˆ˜ PUT Owner πŸ”—μ˜ˆμ•½ 수락 /api/owners/reservations/{reservationId}/approve μ™„λ£Œ
λ₯˜μ§€μˆ˜ PUT Owner πŸ”—μ˜ˆμ•½ μƒνƒœ λ³€κ²½ /api/owners/reservations/{reservationId}/complete μ™„λ£Œ
λ₯˜μ§€μˆ˜ PUT Owner
User
πŸ”—μ˜ˆμ•½ μ·¨μ†Œ /api/users/reservations/{reservationId}/cancel
/api/owners/reservations/{reservationId}/{cafeId}/cancel
μ™„λ£Œ

πŸ§·κ°€κ²© μ •μ±… API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
κΉ€ν˜œμ§„ POST Owner πŸ”—κ°€κ²© μ •μ±… μΆ”κ°€ /api/cafes/{cafeId}/prices μ™„λ£Œ
κΉ€ν˜œμ§„ GET Owner πŸ”—κ°€κ²© μ •μ±… 쑰회 /api/cafes/{cafeId}/prices μ™„λ£Œ
κΉ€ν˜œμ§„ PATCH Owner πŸ”—κ°€κ²© μ •μ±… μˆ˜μ • /api/cafes/{cafeId}/prices/{pricesId} μ™„λ£Œ
κΉ€ν˜œμ§„ DELETE Owner πŸ”—κ°€κ²© μ •μ±… μ‚­μ œ /api/cafes/{cafeId}/prices/{pricesId} μ™„λ£Œ

πŸ§·μž…μž₯료 API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
λ°•λ„ν˜„ PATCH Owner πŸ”—μž…μž₯료 μˆ˜μ • /api/cafes/{cafeId}/fees/{feeId} μ™„λ£Œ

πŸ§·μ΄λ―Έμ§€ API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
κΉ€ν˜„μ • DELETE Admin πŸ”—μœ λ Ή 이미지 μ‚­μ œ /api/images μ™„λ£Œ

πŸ§·ν”„λ‘œκ·Έλž¨ API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
κΉ€ν˜„μ • POST Owner πŸ”—ν‚€μ¦ˆ 카페 ν”„λ‘œκ·Έλž¨ μΆ”κ°€ /api/cafes/{cafeId}/lessons μ™„λ£Œ
κΉ€ν˜„μ • GET Owner πŸ”—ν‚€μ¦ˆ 카페 ν”„λ‘œκ·Έλž¨ 쑰회 /api/cafes/{cafeId}/lessons μ™„λ£Œ
κΉ€ν˜„μ • PATCH Owner πŸ”—ν‚€μ¦ˆ 카페 ν”„λ‘œκ·Έλž¨ μˆ˜μ • /api/lessons/{lessionId} μ™„λ£Œ
κΉ€ν˜„μ • DELETE Owner πŸ”—ν‚€μ¦ˆ 카페 ν”„λ‘œκ·Έλž¨ μ‚­μ œ /api/lessons/{lessonId} μ™„λ£Œ

🧷쿠폰 API λͺ…μ„Έ

λ‹΄λ‹Ήμž Method Role κΈ°λŠ₯ API path μ§„ν–‰ μƒνƒœ
λ°•λ„ν˜„ POST Owner πŸ”—μΏ ν° 생성 /api/cafes/{cafeId}/coupons μ™„λ£Œ
λ°•λ„ν˜„ GET User πŸ”—μΏ ν° 쑰회(μ‚¬μš©μž) /api/users/coupons μ™„λ£Œ
λ°•λ„ν˜„ GET Owner πŸ”—μΏ ν° 쑰회(사μž₯λ‹˜) /api/owners/cafes/{cafeId}/coupons μ™„λ£Œ
λ°•λ„ν˜„ POST Owner πŸ”—μΏ ν° μ§€κΈ‰ /api/{couponId}/assign/{userId} μ™„λ£Œ
λ°•λ„ν˜„ POST User πŸ”—μΏ ν° μ‚¬μš© /api/{couponId}/use μ™„λ£Œ

πŸ—‚οΈν”„λ‘œμ νŠΈ ꡬ쑰

'KidsCafe'
β”œβ”€β”€ 'api'                     # API와 κ΄€λ ¨λœ 컨트둀러, ν•„ν„°, 인터셉터, μ™ΈλΆ€ 연동 둜직
β”‚   β”œβ”€β”€ 'auth'                # 인증 및 인증 κ΄€λ ¨ 둜직
β”‚   β”‚   β”œβ”€β”€ 'controller'      # 인증 μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” 컨트둀러
β”‚   β”‚   β”œβ”€β”€ 'exception'       # 인증 κ΄€λ ¨ μ˜ˆμ™Έ 처리
β”‚   β”‚   └── 'service'         # 인증 μ„œλΉ„μŠ€ 둜직
β”‚   β”œβ”€β”€ 'filter'              # μš”μ²­ ν•„ν„° 처리
β”‚   β”œβ”€β”€ 'interceptor'         # 인터셉터λ₯Ό ν†΅ν•œ μš”μ²­/응닡 처리
β”‚   β”œβ”€β”€ 'kakao'               # 카카였 APIμ™€μ˜ 연동
β”‚   β”œβ”€β”€ 'naver'               # 넀이버 APIμ™€μ˜ 연동
β”‚   └── 'oauth2'              # OAuth2 인증 κ΄€λ ¨ λͺ¨λ“ˆ
β”‚       β”œβ”€β”€ 'adapter'         # OAuth2 μ–΄λŒ‘ν„° ꡬ성
β”‚       β”œβ”€β”€ 'config'          # OAuth2 μ„€μ •
β”‚       β”œβ”€β”€ 'controller'      # OAuth2 κ΄€λ ¨ μš”μ²­ 처리
β”‚       β”œβ”€β”€ 'provider'        # OAuth2 제곡자 μ„€μ •
β”‚       └── 'service'         # OAuth2 μ„œλΉ„μŠ€ 둜직
β”œβ”€β”€ 'common'                  # 곡톡 λͺ¨λ“ˆ 및 μœ ν‹Έλ¦¬ν‹°
β”‚   β”œβ”€β”€ 'annotation'          # μ–΄λ…Έν…Œμ΄μ…˜ μ •μ˜
β”‚   β”œβ”€β”€ 'config'              # 곡톡 μ„€μ •
β”‚   β”œβ”€β”€ 'dto'                 # κ³΅ν†΅μ μœΌλ‘œ μ‚¬μš©λ˜λŠ” 데이터 객체
β”‚   β”œβ”€β”€ 'entity'              # 곡톡 μ—”ν‹°ν‹° μ •μ˜
β”‚   β”œβ”€β”€ 'enums'               # 곡톡 Enum μ •μ˜
β”‚   └── 'util'                # 곡톡 μœ ν‹Έλ¦¬ν‹°
β”œβ”€β”€ 'config'                  # ν”„λ‘œμ νŠΈ 전체 μ„€μ •
β”œβ”€β”€ 'domain'                  # λΉ„μ¦ˆλ‹ˆμŠ€ 도메인 λͺ¨λ“ˆ
β”‚   β”œβ”€β”€ 'bookmark'            # 즐겨찾기 관리
β”‚   β”œβ”€β”€ 'cafe'                # 카페 κ΄€λ ¨ 도메인
β”‚   β”œβ”€β”€ 'coupon'              # 쿠폰 관리
β”‚   β”œβ”€β”€ 'fee'                 # μš”κΈˆ 관리
β”‚   β”œβ”€β”€ 'image'               # 이미지 관리
β”‚   β”œβ”€β”€ 'lesson'              # 레슨 관리
β”‚   β”œβ”€β”€ 'pricepolicy'         # 가격 μ •μ±… 관리
β”‚   β”œβ”€β”€ 'recommend'           # μΆ”μ²œ μ‹œμŠ€ν…œ
β”‚   β”œβ”€β”€ 'report'              # μ‹ κ³  관리
β”‚   β”œβ”€β”€ 'reservation'         # μ˜ˆμ•½ 관리
β”‚   β”œβ”€β”€ 'review'              # 리뷰 및 영수증 μŠ€μΊ”
β”‚   β”œβ”€β”€ 'room'                # λ£Έ 정보 관리
β”‚   └── 'user'                # μ‚¬μš©μž 관리
β”œβ”€β”€ 'dummy'                   # ν…ŒμŠ€νŠΈ 데이터 생성
└── 'exception'               # μ „μ—­ μ˜ˆμ™Έ 처리 및 μ˜ˆμ™Έ 클래슀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages