尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Next.js + Supabase + Tailwind CSS 기반 웹앱 프로젝트입니다. • Node.js 18.18 이상 (LTS 권장) • nodejs.org에서 설치 1. Node.js 설치 nodejs.org에서 LTS 버전 다운로드 후 설치합니다. 3. Supabase 환경 변수 설정 .env.local 파일에 Supabase 프로젝트 값을 넣습니다. 값은 Supabase 대시보드 → 프로젝트 → Settings → API에서 확인할 수 있습니다. (연동 전까지는 빈 값으로 두어도 앱 실행은 가능합니다.)檢視完整 README ↗
Next.js + Supabase + Tailwind CSS 기반 웹앱 프로젝트입니다.
Node.js 설치
nodejs.org에서 LTS 버전 다운로드 후 설치합니다.
의존성 설치
npm install
Supabase 환경 변수 설정
.env.local 파일에 Supabase 프로젝트 값을 넣습니다.
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
값은 Supabase 대시보드 → 프로젝트 → Settings → API에서 확인할 수 있습니다.
(연동 전까지는 빈 값으로 두어도 앱 실행은 가능합니다.)
개발 서버 실행
npm run dev
DB 스키마 적용 (최초 1회)
Supabase 대시보드 → SQL Editor에서 아래 순서로 실행합니다.
supabase/migrations/001_initial_schema.sqlsupabase/migrations/002_g2b_tenders.sql (나라장터 입찰·계약·키워드 테이블)supabase/migrations/003_clean_related.sql (청소 관련 필터 컬럼)supabase/migrations/004_tender_keywords_type.sql (키워드 구분: 포함/제외)supabase/migrations/005_tender_categories.sql (업종: 청소/소독·방역, tenders.categories)관리자 로그인 설정
supabase/set_admin.sql 내용 실행 (이메일을 본인 주소로 수정 가능)브라우저에서 http://localhost:3001 으로 접속합니다.
.env.local에 DATA_GO_KR_SERVICE_KEY=발급받은_인증키 추가POST /api/cron/fetch-g2b 호출 (헤더 x-cron-secret에 CRON_SECRET 값 전달).tender_keywords 테이블에 있으며, 관리자 페이지에서 추후 수정 가능하도록 확장할 수 있습니다.tenders.categories 배열에 매칭된 업종(cleaning, disinfection) 저장. 사용자 검색: 청소만 / 소독·방역만 / 청소+소독·방역 / 전체 선택 가능.POST /api/cron/backfill-clean-score 호출.| 명령어 | 설명 |
|---|---|
npm run dev | 개발 서버 실행 (Hot Reload) |
npm run build | 프로덕션 빌드 |
npm run start | 빌드된 앱 실행 |
npm run lint | ESLint 실행 |
├── app/ # Next.js App Router
│ ├── admin/ # 관리자 (글, 뉴스레터 큐, UGC 검수, 신고, 광고)
│ ├── api/ # API (뉴스레터 발송, cron, 인증)
│ ├── archive/ # 뉴스레터 아카이브
│ ├── categories/ # 카테고리·글 목록
│ ├── posts/ # 글 상세
│ ├── ugc/ # 현장·후기 목록·쓰기
│ ├── login, signup/
├── components/
├── lib/ # Supabase 클라이언트, 타입
├── supabase/migrations/ # DB 스키마 (Supabase SQL Editor에서 실행)
└── .env.local
newslett).NEXT_PUBLIC_SUPABASE_URL에 넣을 값NEXT_PUBLIC_SUPABASE_ANON_KEY에 넣을 값프로젝트 루트의 .env.local 파일을 열고 다음처럼 입력(복사한 값으로 교체):
NEXT_PUBLIC_SUPABASE_URL=https://xxxxxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
xxxxxxxx 부분은 본인 프로젝트 URL에 맞게.클라이언트 컴포넌트 (브라우저):
"use client";
import { createClient } from "@/lib/supabase";
const supabase = createClient();
// 예: const { data } = await supabase.from("테이블명").select();
서버 컴포넌트 / API 라우트:
import { createClient } from "@/lib/supabase-server";
const supabase = createClient();
// 예: const { data } = await supabase.from("테이블명").select();
@supabase/ssr 기반으로 쿠키 연동을 추가하면 됩니다.