Skip to content

SpartaCodingClub-E1GHTEEN/Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

116 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

header


πŸ“¦Starting Point

πŸ‘€ νŒ€ λͺ…: E1GHTEEN


🚩 ν”„λ‘œμ νŠΈ λͺ©μ 

  • μŒμ‹ μ£Όλ¬Έ 관리 ν”Œλž«νΌ
    • μŒμ‹μ λ“€μ˜ 배달 및 포μž₯ μ£Όλ¬Έ 관리, 결제, 그리고 μ£Όλ¬Έ λ‚΄μ—­ 관리 κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” ν”Œλž«νΌμž…λ‹ˆλ‹€.
  • μ£Όμš” κΈ°λŠ₯
    • μ‚¬μš©μž 관리: μ‚¬μš©μžλŠ” λ‘œκ·ΈμΈν•˜μ—¬ 정보λ₯Ό 쑰회 및 μˆ˜μ •ν•  수 있으며, κ΄€λ¦¬μžλŠ” νšŒμ› 정보λ₯Ό μ—΄λžŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • μŒμ‹ μ£Όλ¬Έ 관리: μ‚¬μš©μžλŠ” μ‰½κ²Œ μŒμ‹μ„ μ£Όλ¬Έν•  수 있으며, 식당은 μŒμ‹ 정보λ₯Ό 등둝할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • 결제 μ‹œμŠ€ν…œ: κ°„νŽΈν•œ 결제 κΈ°λŠ₯으둜 μ‚¬μš©μžμ™€ μŒμ‹μ  κ°„μ˜ κ±°λž˜κ°€ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.
    • μ£Όλ¬Έ λ‚΄μ—­ 관리: μ‚¬μš©μžλŠ” μžμ‹ μ˜ μ£Όλ¬Έ 내역을 관리할 수 있으며, κ΄€λ¦¬μžλŠ” 전체 μ£Όλ¬Έ 내역을 ν™•μΈν•˜κ³  μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • 배달 ν”„λ‘œμ„ΈμŠ€: μ‚¬μš©μžκ°€ μŒμ‹μ„ μ£Όλ¬Έν•˜λ©΄ ν• λ‹Ήλœ 라이더가 μŒμ‹μ„ λ°°λ‹¬ν•˜λ©°, 배달이 μ™„λ£Œλœ 건에 ν•œν•΄ μ‚¬μš©μžλŠ” 리뷰λ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • 리뷰 및 평점 μ‹œμŠ€ν…œ: μ‚¬μš©μžλŠ” 배달이 μ™„λ£Œλœ ν›„ μŒμ‹μ— λŒ€ν•œ λ‚΄μš©μ„ μž‘μ„±ν•˜κ³  평점을 λΆ€μ—¬ν•˜μ—¬ λ‹€λ₯Έ μ‚¬μš©μžμ™€ μŒμ‹μ μ— 리뷰λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

πŸ“ MVP μ†Œκ°œ (ν”„λ‘œμ νŠΈ 상세)

μ‚¬μš©μž
  • 일반 νšŒμ›(고객/κ°€κ²Œ 주인)
  • νšŒμ›κ°€μž… : μ‚¬μš©μžλŠ” 고객/κ°€κ²Œ 주인의 κΆŒν•œμœΌλ‘œ νšŒμ›κ°€μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νšŒμ›μ •λ³΄ μˆ˜μ • : μ‚¬μš©μžλŠ” μ£Όμ†Œ, 이메일, μ „ν™”λ²ˆν˜Έ, λ‹‰λ„€μž„μ„ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 둜그인 : μ‚¬μš©μžλŠ” μƒμ„±ν•œ 아이디와 λΉ„λ°€λ²ˆν˜Έλ‘œ λ‘œκ·ΈμΈν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νšŒμ› νƒˆν‡΄ : μ‚¬μš©μžλŠ” 본인의 아이디λ₯Ό μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
κ΄€λ¦¬μž
  • νšŒμ›μ •λ³΄ 쑰회 : κ΄€λ¦¬μžλŠ” μ‚¬μš©μž κΆŒν•œ, 아이디, νŠΉμ • μ‹œμ  μ‚¬μ΄μ˜ κ°€μž…μž λ“± μ—¬λŸ¬ 쑰건에 λŒ€ν•΄ μ‚¬μš©μžλ₯Ό μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νšŒμ›μ •λ³΄ μˆ˜μ • : κ΄€λ¦¬μžλŠ” μ‚¬μš©μž κΆŒν•œ, 아이디, μ‚­μ œ μ—¬λΆ€λ“±μ˜ 정보λ₯Ό 일뢀 μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
식당
  • 식당 전체 쑰회 및 검색 : 식당 검색 및 전체 쑰회λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 식당 단건 쑰회 : 식당 λ‚΄μš©μ— λŒ€ν•œ 단건 쑰회λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 식당 생성 : λ§ˆμŠ€ν„° μ‚¬μš©μžλŠ” 식당을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 식당 μˆ˜μ • : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, 식당 주인은 식당 λ‚΄μš©μ„ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 식당 μ‚­μ œ : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, 식당 주인은 식당을 μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
μŒμ‹ - 메뉴
  • 메뉴 생성 : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, κ°€κ²Œ 사μž₯이 메뉴λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 메뉴 전체 쑰회 및 검색 : λͺ¨λ“  μ‚¬μš©μžκ°€ μ‹λ‹Ήμ˜ 전체 메뉴λ₯Ό 쑰회 및 검색 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 메뉴 단건 쑰회 : λͺ¨λ“  μ‚¬μš©μžκ°€ μ‹λ‹Ήμ˜ νŠΉμ • 메뉴λ₯Ό μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 메뉴 μˆ˜μ • : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, κ°€κ²Œ 사μž₯이 메뉴λ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 메뉴 μ‚­μ œ : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, κ°€κ²Œ 사μž₯이 메뉴λ₯Ό μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
μŒμ‹ - λ©”λ‰΄μ˜΅μ…˜
  • 메뉴 μ˜΅μ…˜ 생성 : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, κ°€κ²Œ 사μž₯이 λ©”λ‰΄μ˜ μ˜΅μ…˜μ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 메뉴 μ˜΅μ…˜ 전체 쑰회 : λͺ¨λ“  μ‚¬μš©μžκ°€ λ©”λ‰΄μ˜ μ˜΅μ…˜μ„ μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 메뉴 μ˜΅μ…˜ μˆ˜μ • : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, κ°€κ²Œ 사μž₯이 λ©”λ‰΄μ˜ μ˜΅μ…˜μ„ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 메뉴 μ˜΅μ…˜ μ‚­μ œ : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, κ°€κ²Œ 사μž₯이 λ©”λ‰΄μ˜ μ˜΅μ…˜μ„ μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
μ£Όλ¬Έ
  • μ£Όλ¬Έ 생성 : μ‚¬μš©μžλ‚˜ κ°€κ²Œ 사μž₯은 μƒˆ 주문을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ£Όλ¬Έ 쑰회 : μ£Όλ¬Έ IDλ₯Ό 톡해 ν•΄λ‹Ή μ£Όλ¬Έ 단건에 λŒ€ν•œ 상세 정보λ₯Ό 쑰회 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ£Όλ¬Έ μˆ˜μ • : 주문의 μ΄κΈˆμ•‘κ³Ό κ°€κ²Œ/λ°°λ‹¬μ›μ—κ²Œ μš”μ²­μ‚¬ν•­μ„ μˆ˜μ • ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ£Όλ¬Έ μ·¨μ†Œ : κ΄€λ¦¬μž, 식당 주인, μ‚¬μš©μžλŠ” 주문을 μ·¨μ†Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ£Όλ¬Έ μƒνƒœλ³€κ²½ : κ°€κ²Œ 사μž₯은 주문을 수락/쑰리쀑, 배달원은 배달쀑/λ°°λ‹¬μ™„λ£Œ μƒνƒœλ‘œ λ³€κ²½ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ£Όλ¬Έ λͺ©λ‘ 쑰회 : κ΄€λ¦¬μž, μ‚¬μš©μž, κ°€κ²Œ 사μž₯ μ£Όλ¬Έ λͺ©λ‘μ„ 10,20,30κ°œμ”© λ‚ μ§œ λ‚΄λ¦Ό/μ˜€λ¦„μ°¨μˆœμœΌλ‘œ 쑰회 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ£Όλ¬Έ μ‚­μ œ : λ§ˆμŠ€ν„°λŠ” 주문을 μ‚­μ œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
결제
  • 결제 μš”μ²­ : μ‚¬μš©μžλ‚˜ κ°€κ²Œ 사μž₯은 넀이버 페이 결제 μš”μ²­μ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 결제 λ‚΄μ—­ 생성 : 결제 μš”μ²­ ν›„ 결제 내역을 μƒμ„±ν•©λ‹ˆλ‹€.
  • 결제 μƒνƒœ λ³€κ²½ : 결제 μƒνƒœλ₯Ό λ³€κ²½ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 결제 μ‚­μ œ : λ§ˆμŠ€ν„°λŠ” 결제λ₯Ό μ‚­μ œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
리뷰
  • 리뷰 전체 쑰회 및 검색 : 리뷰 검색 및 전체 쑰회λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 리뷰 단건 쑰회 : 리뷰 단건 쑰회λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 리뷰 생성 : 주문을 ν•œ 고객은 리뷰λ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 리뷰 μˆ˜μ • : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, 고객(본인 리뷰)은 리뷰λ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 리뷰 μ‚­μ œ : λ§ˆμŠ€ν„°, λ§€λ‹ˆμ €, 고객(본인 리뷰)은 리뷰λ₯Ό μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ‘©β€πŸ’» νŒ€μ›μ—­ν• 

  • [νŒ€μž₯] 윀 κ΄€ : μŒμ‹, λ°œν‘œ
  • [νŒ€μ›] λ°•λ³΄ν˜„: μ£Όλ¬Έ, 결제
  • [νŒ€μ›] μ •κ· λ―Ό: μ‚¬μš©μž, CI/CD
  • [νŒ€μ›] μ΄μˆ˜μ—°: 식당, 리뷰

πŸ–₯️ μ„œλΉ„μŠ€ ꡬ성 및 μ‹€ν–‰ 방법

πŸ—οΈ API Key λ°œκΈ‰ λ°›λŠ” 방법

결제 API (Naver Pay)

ν”„λ‘œμ νŠΈμ—μ„œλŠ” λ„€μ΄λ²„νŽ˜μ΄ 개발 연동 μ²΄ν—˜μ—μ„œ μ œκ³΅ν•˜λŠ” μƒŒλ“œλ°±μŠ€ ν™˜κ²½μ„ ν™œμš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ„€μ΄λ²„νŽ˜μ΄ κ°œλ°œμžμ„Όν„°μ— μ ‘μ†ν•΄μ„œ λΆ€μ—¬ λ°›λŠ” API Keyλ₯Ό μ„€μ •ν•˜κ³  μ²΄ν—˜μš© 포인트λ₯Ό μ‚¬μš©ν•΄μ£Όμ„Έμš”.

  • API 곡톡 κ°€μ΄λ“œ β†’ μ²΄ν—˜ν•˜κΈ° β†’ λ‚΄ 인증값 ν™•μΈν•˜κΈ° β†’ μƒŒλ“œλ°•μŠ€ ν™˜κ²½

  • λ„€μ΄λ²„νŽ˜μ΄ μƒŒλ“œλ°•μŠ€ κ°€λ§Ήμ μ˜ 인증킀λ₯Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 섀정에 μΆ”κ°€

      - pay.naver.merchant-key : {가맹점 Id}
      - pay.naver.client-id : {Client Id}
      - pay.naver.client-secret : {Client Secret}
      - pay.naver.chain-id : {Chain Id}
    
  • API 곡톡 κ°€μ΄λ“œ β†’ μ²΄ν—˜ν•˜κΈ° β†’ ν…ŒμŠ€νŠΈμš© ν‘œμΈνŠΈ λ°›κΈ°μ—μ„œ 결제 μš”μ²­μ‹œ λ°›λŠ” urlμ—μ„œ 결제 ν•  수 μžˆλŠ” μƒŒλ“œλ°•μŠ€ 포인트λ₯Ό μš”μ²­

AI API(Gemini)

  • ꡬ글 AI μŠ€νŠœλ””μ˜€μ— μ ‘μ†ν•˜μ—¬ API Keyλ₯Ό λ°œκΈ‰ λ°›μ•„μ•Όν•©λ‹ˆλ‹€.

  • Get API Key(μ™Όμͺ½ 상단) β†’ ν‚€ API ν‚€ λ§Œλ“€κΈ°(ν™”λ©΄ 쀑단)

      - gemini.api-url : "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=" (API μ‚¬μš© End-Point)
      - gemini.api-key : λ°œκΈ‰ 받은 API Key
    
  • yml νŒŒμΌμ— λ„£μ–΄ μ‚¬μš©

application.yml μ˜ˆμ‹œ

spring:
  datasource:
    url:
      jdbc:postgresql://localhost:5432/{Databaseλͺ…}
    username: {μ‚¬μš©μžID}
    password: {μ‚¬μš©μžλΉ„λ°€λ²ˆν˜Έ}
    driver-class-name: org.postgresql.Driver
  jpa:
    hibernate:
      ddl-auto: update
    
# Naver Pay
pay:
  naver:
    merchant-key : {가맹점 Id}
    client-id : {Client Id}
    client-secret : {Client Secret}
    chain-id : {Chain Id}
    api-domain: https://dev-pub.apis.naver.com/
    return-url: https://test-m.pay.naver.com/z/payments/
    partner-id: naverpay-partner
		
# Gemini AI
gemini
	api-url : https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=  {API μ‚¬μš© End-Point}
	api-key : {λ°œκΈ‰ 받은 API Key}
	
# JWT
jwt:
  secret: {μž„μ˜μ˜ ν…μŠ€νŠΈ Base64 인코딩}
  access:
    exp: 1209600 # 14days(2weeks)
  rfresh:
    exp: 2592000 # 30days(1month)

πŸ”§ 기술 μŠ€νƒ


πŸ‘¨β€πŸ’» μ•„ν‚€ν…μ²˜


πŸ“ƒ ERD ν…Œμ΄λΈ”

ERD ν…Œμ΄λΈ”

ERD


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

API λͺ…μ„Έμ„œ


Footer

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors