/repo2_restaurant_recommend

지리기반 맛집 추천 웹 서비스 (원티드 팀 과제 2)

Primary LanguagePythonMIT LicenseMIT

image

개요


  • 본 서비스는 위치를 기반으로 하여 맛집을 추천해주는 웹 서비스입니다.
  • 본 서비스의 사용자는 맛집 추천 목록을 거리순 또는 평점순으로 조회가 가능합니다.
  • 본 서비스는 공공 데이터를 활용하여, 지역 음식점 목록을 자동으로 업데이트 하고 이를 활용하여 사용자 위치를 기반으로, 도보기준 1km이내 또는 교통수단 기준 5km이내의 맛집 및 메뉴를 추천합니다. 또한 사용자는 시도, 시군구 단위로 최신 업데이트한 지역별 맛집 목록을 조회할 수 있습니다.
  • 본 서비스의 사용자는 맛집을 이용해 본 경험을 0 ~ 5 사이의 점수로 평가할 수 있고, 평가된 모든 점수는 평균 계산되어 본 서비스의 다른 사용자들이 맛집에 대한 정보를 미리 알 수 있습니다.
  • 본 서비스의 사용자 중 점심 추천 서비스 사용에 동의한 사용자에 한해 점심시간 30분 전, 주변 맛집 목록을 제공합니다.
  • 더 나아가 본 서비스는 사용자들에게 다양한 음식 경험을 제공하고, 음식을 좋아하는 사람들 간에 자유로운 소통과 다양한 맛집 탐방 경험 공유를 촉진하고자 합니다.

버전


Backend


Database


Management


설치 및 테스트


설치

docker compose up #localhost:8000

테스트

docker compose run django poetry run python3 manage.py test restaurants_recommendation
스크린샷 2023-11-19 오후 5 54 21

image

API 명세


스크린샷 2023-11-19 오후 5 52 16 스크린샷 2023-11-19 오후 5 52 45

ERD


restraunt_recommendation

image

데이터

#data_pipeline
fetch_restaurant_count ->  URL의  데이터 개수 요청
fetch_restaurant_data ->  개수를 바탕으로 page 할당  데이터 요청
map_api_data_to_model -> 모델에 맞게 data mapping
save_data_to_db -> mapping된 데이터 db에 저장

apscheduler 이용하여 서버 작동 시매일 오전 2 30분에 데이터 요청하도록 구현.

팀 소개 및 회고


박대준

윤성원

사재혁

이슬기