Skip to content
junha12345Public

About

LLM base recipe recommendation (OhMyCook)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

OhMyCook 로고

OhMyCook

냉장고 속 재료로 시작하는 오늘의 요리

가지고 있는 재료로 무엇을 만들 수 있을까요?
OhMyCook은 내 재료와 요리 조건에 맞는 레시피를 추천하고,
요리 중 궁금한 점을 AI 셰프에게 물어볼 수 있는 서비스입니다.

오늘의 메뉴를 찾는 과정

냉장고에 있는 재료를 등록하고, 먼저 사용하고 싶은 재료를 골라보세요. 요리 종류, 인분, 맵기, 난이도, 조리 시간을 선택하면 AI가 조건에 맞는 레시피를 추천합니다.

1. 재료·조건 선택 2. AI 레시피 생성 3. 추천 결과 확인
먼저 사용할 재료를 고르고 레시피 추천 조건을 설정하는 화면 선택한 재료와 조건으로 AI가 레시피를 생성하는 화면 추천받은 요리의 사진, 조리 시간, 인분 등을 확인하는 화면
먼저 쓸 재료와 요리 조건을 선택해요. AI가 만들 수 있는 요리를 찾아요. 추천된 레시피에서 오늘의 메뉴를 골라요.

재료 관리부터 요리 공유까지

내 냉장고에 재료를 모아두고, 만든 요리는 커뮤니티에서 나눠보세요. 프로필에서는 개인 설정과 저장한 레시피, 장보기 목록을 확인할 수 있습니다.

내 냉장고 커뮤니티 내 프로필
보유 재료를 채소, 고기, 양념 등 종류별로 관리하는 내 냉장고 화면 레시피와 요리 경험을 공유하고 댓글과 좋아요로 소통하는 커뮤니티 화면 프로필, 개인 설정, 저장한 레시피와 장보기 목록을 확인하는 화면
보유 재료를 종류별로 관리해요. 요리를 공유하고 이야기를 나눠요. 개인 설정과 저장한 목록을 확인해요.

주요 기능

  • 내 냉장고 관리 — 재료를 검색해 추가하거나 영수증 이미지를 올려 재료를 등록합니다.
  • 재료 기반 레시피 추천 — 보유 재료와 우선 사용할 재료, 요리 조건을 바탕으로 메뉴를 추천합니다.
  • AI 셰프와 대화 — 레시피에 대해 질문하고 조리 방법이나 재료에 관한 도움을 받습니다.
  • 레시피 저장과 장보기 목록 — 마음에 드는 레시피를 저장하고 필요한 재료를 장보기 목록으로 관리합니다.
  • 요리 커뮤니티 — 레시피와 요리 경험을 공유하고 댓글과 좋아요로 소통합니다.
  • 계정과 개인 설정 관리 — Supabase Auth로 이메일·Google 로그인을 지원하고, 닉네임·프로필 이미지·요리 수준·알레르기 등 개인 설정을 Supabase 데이터베이스에 저장합니다.
  • 한국어·영어 지원 — 원하는 언어로 서비스를 이용할 수 있습니다.

기술 구성

역할 사용 기술
화면 개발 React, TypeScript, Vite
스타일과 애니메이션 Tailwind CSS, Framer Motion
레시피 추천·영수증 분석·AI 대화 Gemini API
인증·프로필·커뮤니티 데이터 Supabase

개발 환경에서 실행하기

설치와 실행 안내

Node.js와 npm이 필요합니다.

1. 의존성 설치

npm install

2. 환경 변수 설정

프로젝트 루트에 .env.local 파일을 만들고 다음 값을 설정합니다.

VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your_public_anon_key

AI 기능을 제공하는 서버 환경에는 다음 값을 설정합니다. 현재 API 코드는 Gemini 키를 API_KEY로 읽습니다.

API_KEY=your_gemini_api_key

# 레시피 이미지 검색을 사용할 경우
GOOGLE_SEARCH_CX=your_google_custom_search_engine_id

현재 이미지 검색 코드도 API_KEY를 사용하므로, 이미지 검색에는 해당 키로 Google Custom Search API에 접근할 수 있어야 합니다.

3. 화면 실행

npm run dev

기본 주소는 http://localhost:3000입니다.

프런트엔드는 AI 요청을 /api/gemini로 보냅니다. 현재 Vite 설정에는 이 경로를 처리하는 서버나 프록시가 없으므로, AI 기능까지 사용하려면 API 코드를 실행하는 서버와 연결해야 합니다. npm run dev는 프런트엔드 개발 서버를 실행합니다.

4. Supabase 연결

인증과 사용자 프로필, 커뮤니티 기능에는 Supabase 설정이 필요합니다. 현재 앱 코드에서 사용하는 테이블은 다음과 같습니다.

  • profiles — 사용자 프로필과 요리 설정
  • community_posts — 공유한 레시피와 게시글
  • community_comments — 게시글 댓글

각 테이블은 앱에서 사용하는 필드와 접근 정책에 맞춰 준비해야 합니다. 저장소에는 이 테이블들의 전체 스키마를 생성하는 마이그레이션이 포함되어 있지 않습니다.

재료, 저장한 레시피, 장보기 목록은 현재 브라우저의 로컬 스토리지에 저장합니다. 별도의 Supabase 헬퍼는 user_profiles, user_ingredients, search_events, recipe_search_counts를 참조하므로, 앱에서 직접 사용하는 테이블과 구분해야 합니다.

5. 빌드

npm run build

About

LLM base recipe recommendation (OhMyCook)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages