Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
장바구니에 잔뜩 담아두고 뭘 살지 못 정하는 사람이, 이번 달 예산 안에서 결정을 끝내도록 돕는 웹 서비스. 기존 위시리스트·가계부 앱이 "너무 많이 산다"를 막는다면, Flushlist는 "못 고른다"를 풀어 줍니다. 사도 되는 것도, 안 사기로 한 것도 모두 "정리 완료"로 셉니다. 해커톤(BYPP) 출품작이며 1인 개발입니다. • 배포: https://bypp-hackathon.netlify.app • 프로젝트 회고(왜 만들었는지, 결정과 문제 해결): docs/PROJECT_RETROSPECTIVE.md • 기획 원칙과 설계 문서: CLAUDE.md, PRODUCT.mdREADME 전문 보기 ↗
장바구니에 잔뜩 담아두고 뭘 살지 못 정하는 사람이, 이번 달 예산 안에서 결정을 끝내도록 돕는 웹 서비스.
기존 위시리스트·가계부 앱이 "너무 많이 산다"를 막는다면, Flushlist는 "못 고른다"를 풀어 줍니다. 사도 되는 것도, 안 사기로 한 것도 모두 "정리 완료"로 셉니다. 해커톤(BYPP) 출품작이며 1인 개발입니다.
| 영역 | 사용 |
|---|---|
| 프레임워크 | Next.js 16 (App Router), React 19 |
| 스타일 | Tailwind CSS v4 |
| 드래그 앤 드롭 | @dnd-kit/core |
| DB / 인증 | Supabase (Postgres, Auth, RLS) |
| AI | Anthropic API (서버 라우트 전용, claude-sonnet-5) |
| 링크 파싱 | cheerio (OG 태그) |
| 배포 | Netlify |
npm install
cp .env.example .env.local # 없다면 아래 환경변수를 직접 만든다
npm run dev
http://localhost:3000 에서 확인합니다. 같은 와이파이의 폰에서 확인하려면 npx next dev -H 0.0.0.0 으로 실행하고 http://<컴퓨터 IP>:3000 으로 접속합니다. (next.config.ts의 allowedDevOrigins에 주소를 허용해 둬야 합니다.)
.env.local)| 이름 | 설명 |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase 프로젝트 URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase anon 키 (클라이언트 노출 가능) |
ANTHROPIC_API_KEY | Anthropic API 키. 서버 라우트에서만 사용하며 절대 클라이언트에 노출하지 않는다 |
sessions, items, evaluations)을 CLAUDE.md 9-3의 스키마대로 만듭니다.supabase/migrations/ 의 SQL을 번호 순서대로 SQL Editor에서 실행합니다.| 파일 | 내용 |
|---|---|
0001_fix_rls_and_add_columns.sql | RLS 정책 재정비, 컬럼 추가 |
0002_add_auth_and_profiles.sql | 로그인용 profiles 테이블과 정책 |
0003_add_sort_order.sql | 가판대 순서 (items.sort_order) |
0004_add_user_ratings.sql | 1~5 평가 (urgency, desire, longevity) |
0005_add_monthly_saving.sql | 권장 월 저축액 (sessions.monthly_saving) |
0006_add_avatar_url.sql | 프로필 사진 (profiles.avatar_url) |
일부 컬럼이 없어도(마이그레이션 전) 앱은 동작하지만, 해당 값은 저장되지 않습니다.
src/app/
page.tsx 목표 선택
budget/ 월 예산 설정 (직접 입력 / 몬테카를로)
board/ 메인 보드 (주머니, 심사대, 가판대, 반품함, 계산대)
login/ 닉네임 + 비밀번호 로그인·가입
wishlists/, u/ 이웃 목록과 이웃 위시리스트
api/
evaluate/ AI 판정 (로그인 필수, 호출 횟수 제한)
parse-screenshot/ 스크린샷 인식 (로그인 필수, 호출 횟수 제한)
parse-link/ 링크 OG 파싱 (로그인 필수)
src/components/ 보드 UI 조각 (Mascot, Tutorial, ProgressRunner 등)
src/lib/
scoring.ts 점수 계산 (LLM 추정 + 규칙 기반 + 슬라이더 가중치)
montecarlo.ts 예산 역산 시뮬레이션
store.tsx 앱 상태와 Supabase 동기화
auth.tsx 닉네임 로그인
scripts/ AI 판정 재현성 검증 스크립트 (Phase 1)
supabase/migrations/ DB 마이그레이션
docs/ 프로젝트 회고, 작업 문서
public/tutorial/ 튜토리얼용 실제 화면 캡처
Netlify에 배포합니다. (Vercel 무료 플랜의 하루 배포 한도에 걸려 이전)
npx netlify-cli deploy --build --prod
환경변수 3개를 Netlify 사이트 설정에도 넣어야 합니다. 배포는 로컬에서 확인한 뒤에 한 번씩만 합니다.