{"id":32641614,"url":"https://github.com/etff/bread-trip","last_synced_at":"2026-07-02T08:31:17.650Z","repository":{"id":320563357,"uuid":"1082536587","full_name":"etff/bread-trip","owner":"etff","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-14T08:19:11.000Z","size":1406,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T04:47:29.089Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://bread-trip.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/etff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-24T11:44:17.000Z","updated_at":"2026-02-14T08:19:14.000Z","dependencies_parsed_at":"2025-10-24T14:41:13.710Z","dependency_job_id":null,"html_url":"https://github.com/etff/bread-trip","commit_stats":null,"previous_names":["etff/bread-trip"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/etff/bread-trip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etff%2Fbread-trip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etff%2Fbread-trip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etff%2Fbread-trip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etff%2Fbread-trip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/etff","download_url":"https://codeload.github.com/etff/bread-trip/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etff%2Fbread-trip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35040015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-31T02:58:18.817Z","updated_at":"2026-07-02T08:31:17.639Z","avatar_url":"https://github.com/etff.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍞 빵지순례 (BreadTrip)\n\n\u003e \"서울의 빵집을 탐험하고, 나만의 빵지도를 채워가는 따뜻한 탐방 서비스\"\n\n서울 한정 MVP 버전\n\n---\n\n## 📋 프로젝트 현황\n\n### ✅ 완료된 기능 (Phase 0-3)\n\n#### Phase 0: 프로젝트 초기 설정\n- [x] Next.js 14+ (App Router) 프로젝트 생성\n- [x] TypeScript 설정\n- [x] Tailwind CSS 커스텀 테마 (빵집 감성)\n- [x] 폴더 구조 (`/app`, `/components`, `/lib`, `/types`)\n- [x] 환경 변수 설정\n\n#### Phase 1: Supabase 설정\n- [x] Supabase 클라이언트 (client, server, middleware)\n- [x] TypeScript 타입 정의\n- [x] DB 스키마 SQL (`users`, `bakeries`, `reviews`)\n- [x] 시드 데이터 (서울 빵집 10개)\n- [x] RLS 정책\n\n#### Phase 2: 기본 레이아웃 \u0026 인증\n- [x] 하단 네비게이션 바\n- [x] 로그인 모달 (Email Magic Link)\n- [x] Auth Server Actions\n- [x] 프로필 페이지 스켈레톤\n- [x] 피드 페이지 스켈레톤\n\n#### Phase 3: 지도 탐색 (핵심 기능)\n- [x] Kakao Map 통합\n- [x] 커스텀 빵집 마커 (🍞)\n- [x] 마커 클릭 이벤트\n- [x] 하단 시트 (빵집 미리보기)\n- [x] 빵집 상세 페이지\n- [x] API 엔드포인트 (`/api/bakeries`)\n\n---\n\n## 🚀 시작하기\n\n### 1. 환경 변수 설정\n\n`.env.local` 파일이 이미 생성되어 있습니다:\n\n\n### 2. Supabase 데이터베이스 설정\n\n**중요: 아직 Supabase에서 SQL을 실행하지 않았다면 반드시 실행하세요!**\n\n1. [Supabase Dashboard](https://supabase.com/dashboard) 접속\n2. 프로젝트: `vetpzzvvdkpjgqdywflb` 선택\n3. 좌측 메뉴 \u003e **SQL Editor** 클릭\n4. 아래 파일 내용을 순서대로 복사 \u0026 실행:\n   - `supabase/migrations/001_initial_schema.sql`\n   - `supabase/migrations/002_seed_data.sql`\n\n자세한 설명: `supabase/README.md` 참고\n\n### 3. 개발 서버 실행\n\n```bash\nnpm install  # 이미 설치됨\nnpm run dev  # 이미 실행 중\n```\n\n브라우저에서 [http://localhost:3000](http://localhost:3000) 접속\n\n---\n\n## 📱 주요 기능\n\n### 현재 사용 가능한 페이지\n\n| 페이지 | 경로 | 설명 |\n|--------|------|------|\n| 🗺️ 홈 (지도) | `/` | Kakao Map 기반 빵집 탐색 |\n| 📰 피드 | `/feed` | 리뷰 피드 (스켈레톤) |\n| 👤 프로필 | `/profile` | 로그인/찜 목록 |\n| 🍞 빵집 상세 | `/bakeries/:id` | 빵집 정보 상세 보기 |\n\n### 주요 컴포넌트\n\n```\ncomponents/\n├── layout/\n│   ├── Navigation.tsx       # 하단 네비게이션 바\n│   └── AuthModal.tsx        # 로그인 모달\n├── map/\n│   ├── KakaoMap.tsx         # 카카오맵 컴포넌트\n│   └── BottomSheet.tsx      # 빵집 미리보기 시트\n└── ui/\n    ├── Button.tsx           # 버튼\n    ├── Input.tsx            # 입력 필드\n    └── Modal.tsx            # 모달\n```\n\n---\n\n## 🛠 기술 스택\n\n| 구분 | 기술 |\n|------|------|\n| **Frontend** | Next.js 16 (App Router), TypeScript, Tailwind CSS |\n| **Backend** | Next.js API Routes, Server Actions |\n| **Database** | Supabase (PostgreSQL) |\n| **Auth** | Supabase Auth (Email Magic Link) |\n| **Map** | Kakao Maps SDK |\n| **Storage** | Supabase Storage (준비 중) |\n| **Deploy** | Vercel (예정) |\n\n---\n\n## 📂 프로젝트 구조\n\n```\nbread-trip/\n├── app/                      # Next.js App Router\n│   ├── actions/              # Server Actions\n│   │   └── auth.ts\n│   ├── api/                  # API Routes\n│   │   └── bakeries/\n│   ├── auth/                 # 인증 관련\n│   ├── bakeries/[id]/        # 빵집 상세\n│   ├── feed/                 # 피드\n│   ├── profile/              # 프로필\n│   └── page.tsx              # 홈 (지도)\n├── components/               # React 컴포넌트\n│   ├── layout/\n│   ├── map/\n│   └── ui/\n├── lib/                      # 유틸리티\n│   ├── supabase/             # Supabase 클라이언트\n│   └── utils.ts\n├── types/                    # TypeScript 타입\n│   ├── database.ts           # DB 타입\n│   ├── common.ts             # 공통 타입\n│   └── kakao.d.ts            # Kakao Maps 타입\n├── supabase/                 # Supabase 설정\n│   ├── migrations/           # SQL 마이그레이션\n│   └── README.md\n└── public/                   # 정적 파일\n```\n\n---\n\n## 🔄 다음 단계 (Phase 4-6)\n\n### Phase 4: 빵집 등록\n- [ ] 빵집 등록 폼\n- [ ] Kakao 주소 검색 API\n- [ ] 이미지 업로드 (Supabase Storage)\n- [ ] 등록 API\n\n### Phase 5: 피드 시스템\n- [ ] 리뷰 작성 모달\n- [ ] 리뷰 API\n- [ ] 무한 스크롤\n- [ ] 리뷰 카드 컴포넌트\n\n### Phase 6: 최적화 \u0026 배포\n- [ ] 이미지 최적화\n- [ ] 로딩/에러 상태 개선\n- [ ] GA4 이벤트\n- [ ] Vercel 배포\n\n---\n\n## 🐛 현재 알려진 제한사항\n\n1. **Supabase SQL 실행 필요**: 데이터베이스 스키마를 수동으로 실행해야 합니다\n2. **찜하기 미구현**: UI는 있지만 백엔드 연동 필요\n3. **리뷰 미구현**: 피드와 리뷰 작성 기능은 Phase 5에서 구현 예정\n4. **이미지 업로드 미구현**: Storage 설정 후 구현 예정\n5. **인증 상태 관리**: 프로필 페이지에서 실제 유저 정보 연동 필요\n\n---\n\n## 📝 개발 노트\n\n### Tailwind 커스텀 색상\n\n```css\n--cream-beige: #F6E9D8  /* 크림베이지 */\n--brown: #8B5E3C         /* 브라운 */\n--white-warm: #FFF9F4    /* 따뜻한 화이트 */\n```\n\n사용 예:\n```tsx\n\u003cdiv className=\"bg-cream text-brown\"\u003e\n```\n\n### API 엔드포인트\n\n```typescript\nGET  /api/bakeries          # 빵집 목록 조회\nPOST /api/bakeries          # 빵집 등록 (인증 필요)\nGET  /api/bakeries/:id      # 빵집 상세 조회\n```\n\n### 데이터베이스 테이블\n\n- `users`: 사용자 정보\n- `bakeries`: 빵집 정보\n- `reviews`: 리뷰 (준비됨, 미사용)\n\n---\n\n## 🙋 문제 해결\n\n### 지도가 표시되지 않는 경우\n\n1. Kakao Maps API 키 확인\n2. 브라우저 콘솔에서 에러 확인\n3. `window.kakao` 객체 로드 확인\n\n### API 호출 실패\n\n1. Supabase URL/Key 확인\n2. Supabase에서 SQL 실행 여부 확인\n3. RLS 정책 확인\n\n### 빌드 에러\n\n```bash\nnpm run build\n```\n\nTypeScript 에러가 발생하면 타입 정의 확인\n\n---\n\n## 📄 라이선스\n\nMIT\n\n---\n\n## 🎯 프로젝트 목표\n\n- **유입**: 서울 시드 빵집 50개 등록\n- **참여**: 지도 클릭률 40% 이상\n- **유지**: D7 재방문율 20% 이상\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetff%2Fbread-trip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetff%2Fbread-trip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetff%2Fbread-trip/lists"}