logo

FoodieFinder - 지리기반 맛집 추천 웹 서비스


Redis Amazon EC2 Amazon RDS

FoodieFinder는 공공데이터를 활용하여, 지역 음식점 목록을 자동으로 업데이트 하고 이를 활용합니다. 사용자 위치 에맞게 맛집 및 메뉴를 추천하여 더 나은 다양한 음식 경험을 제공하고, 음식을 좋아하는 사람들 간의 소통과 공유를 촉진하려 합니다.

0. 목차

1. 프로젝트 요구사항

🍣지리기반 맛집 추천 웹 서비스 요구사항

유저스토리

  • 유저는 본 사이트에 들어와 회원가입 및 내 위치를 지정한다.
  • A. 내 위치 기반 맛집추천 = (내 주변보기)
    • 도보 기준 1km 이내의 맛집을 추천한다.
    • 교통수단 기준 5km 이내의 맛집을 추천한다.
  • B. 지역명 기준 맛집추천(특정 지역 보기)
    • 지정한 지명(시군구) 중심위치 기준 10km 이내의 맛집을 추천한다.
  • C. 점심 추천 서비스
    • 점심 추천 서비스 이용을 승락한 대상에게 매일 정오, 대상의 위치를 기준으로 원하는 유형(일식, 중식 등)의 가게를 3개씩 추천 해준다.
  • A, B는 다양한 검색기준 (정렬, 필터링 등)으로 조회 가능하며 (거리순, 평점순 , 양식, 중식)
  • 해당 맛집의 상세정보를 확인할 수 있다.

2. 프로젝트 구조

자세히

main

├─main
│  ├─java
│  │  └─com
│  │      └─foodiefinder
│  │          ├─auth
│  │          │  ├─config
│  │          │  ├─controller
│  │          │  ├─dto
│  │          │  ├─filter
│  │          │  ├─jwt
│  │          │  └─service
│  │          ├─cities
│  │          │  ├─controller
│  │          │  │  └─response
│  │          │  ├─domain
│  │          │  ├─factory
│  │          │  └─service
│  │          ├─common
|  |          |  ├─cache
│  │          │  ├─config
│  │          │  ├─dto
│  │          │  ├─entity
|  |          |  ├─enums
│  │          │  └─exception
│  │          ├─datapipeline
|  |          |  ├─cache
│  │          │  ├─config
│  │          │  ├─enums
│  │          │  ├─job
│  │          │  ├─processor
│  │          │  │  └─dto
│  │          │  ├─reader
│  │          │  ├─step
│  │          │  ├─util
|  |          |  |  ├─hash
|  |          |  |  └─request
│  │          │  └─writer
│  │          │      ├─entity
│  │          │      └─repository
│  │          ├─notification
│  │          │  ├─dto
│  │          │  ├─scheduler
│  │          │  └─service
|  |          ├─restaurants
|  |          |  ├─cache
|  |          |  ├─controller
|  |          |  ├─dto
|  |          |  ├─entity
|  |          |  ├─enums
|  |          |  └─service
│  │          ├─settings
│  │          │  ├─controller
│  │          │  ├─dto
│  │          │  ├─entity
│  │          │  ├─repository
│  │          │  ├─service
│  │          │  └─valid
│  │          └─user
│  │              ├─controller
│  │              ├─crypto
│  │              ├─dto
│  │              ├─entity
│  │              ├─repository
│  │              └─service
│  └─resources

test

│─test
├─java
│  └─com
│      └─foodiefinder
│          ├─auth
│          │  ├─controller
│          │  └─service
│          ├─cities
│          ├─config
│          ├─datapipeline
│          │  ├─processor
│          │  ├─reader
│          │  ├─step
│          │  └─writer
│          │      └─repository
│          ├─notification
│          │  └─service
│          ├─settings
│          │  ├─controller
│          │  ├─service
│          │  └─valid
│          └─user
│              ├─controller
│              └─service
└─resources

3. ERD

자세히

4. 동작예시

RDS

디스코드 점심 추천 서비스 예시

5. API Document

최신 문서는 FoodieFinder API Document를 참조해 주세요.

6. 프로젝트 스케줄링

image

image

7. 협업 규칙

Branch Strategy

  • main, develop, feature로 나누어서 진행
  • feature이슈번호-기능_이름 으로 명명

Commit Convention

# 타입 : 제목 형식으로 작성하며 제목은 최대 50글자 정도로만 입력
# 제목을 아랫줄에 작성, 제목 끝에 마침표 금지, 무엇을 했는지 명확하게 작성

################
# 본문(추가 설명)을 아랫줄에 작성

################
# 꼬릿말(footer)을 아랫줄에 작성 (관련된 이슈 번호 등 추가)

################
# feat : 기능 추가
# fix : 버그 수정
# docs : 문서 수정
# test : 테스트 코드 추가
# refactor : 코드 리팩토링
# style : 코드 의미에 영향을 주지 않는 변경사항
# chore : 빌드 부분 혹은 패키지 매니저 수정사항
# cicd : CI/CD 관련 설정
################

기타 규칙은 Team Q Notion - 팀 규칙 및 컨벤션을 참조해 주세요.