Saleor Store
우리 컬렉션을 쇼핑하세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Mobile-first nonprofit fundraising platform for collectible pack sales, live openings, fulfillment, and donation-back tracking
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Status: Phase 9 (Reporting & CSV Export) done. Admin has a Reports page covering Campaign/Financial (gross sales, orders, packs sold, AOV, refunds, product cost, estimated net funds raised), Operations (opening/shipping/donation-back queue counts, unresolved exceptions), and Inventory (received/available/reserved/sold/opened/damaged/missing/adjusted) — each with CSV export.README 전문 보기 ↗Status: Phase 9 (Reporting & CSV Export) done. Admin has a Reports page covering Campaign/Financial (gross sales, orders, packs sold, AOV, refunds, product cost, estimated net funds raised), Operations (opening/shipping/donation-back queue counts, unresolved exceptions), and Inventory (received/available/reserved/sold/opened/damaged/missing/adjusted) — each with CSV export. Phase 8 (Audit History & Exception Handling) is done: every sensitive state transition writes an append-only, before/after audit row that no role can update or delete, and a real pre-existing authorization gap in several Phase 4/6/7 database functions was found and fixed (confirmed via a real unauthenticated REST call). Phase 4 (Stripe Checkout & Inventory Reservations) is built and verified at the database level, but still not live-tested against a real Stripe account — STRIPE_SECRET_KEY/STRIPE_WEBHOOK_SECRET remain blank in .env.local. See TODO.md for the full running list of open items, CLAUDE.md and PRODUCT_BUILD_SPEC.md for the source of truth before any architectural changes.
A transparent, mobile-first nonprofit e-commerce platform. A supporter purchases a real physical collectible pack, the specific physical pack assigned to their order is opened live or on recorded video, and the actual contents pulled are attributed to that supporter. The supporter then chooses to have the items shipped or donated back to the nonprofit.
This is not a raffle, sweepstakes, gambling product, or chance-based prize mechanic — it is standard e-commerce with full chain-of-custody tracking from inventory receipt through final disposition. See PRODUCT_BUILD_SPEC.md §2–3 for the non-negotiable rules and compliance boundary.
organizations/profiles/organization_members live, RLS enabled.github/workflows/ci.yml) — lint, typecheck, unit tests, build, E2E on every push/PRsamoanfro/LIve-Pull-Fundraiser)Copy .env.example to .env.local and fill in real values. Never commit .env.local or any file containing real secrets.
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase project URL (public) |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Supabase anon/publishable key (public) |
SUPABASE_SECRET_KEY | Supabase service-role key — server-side only, never expose to the browser |
STRIPE_SECRET_KEY | Stripe secret key — server-side only |
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY | Stripe publishable key (public) |
STRIPE_WEBHOOK_SECRET | Used to verify Stripe webhook signatures |
NEXT_PUBLIC_APP_URL | Base URL of the app (for redirects, links in emails) |
EMAIL_PROVIDER_API_KEY | Resend (or equivalent) API key — server-side only |
EMAIL_FROM_ADDRESS | From-address for transactional email |
supabase link; ask a maintainer for access, or create your own project and re-link for a personal dev environment).supabase login, then supabase link --project-ref <your-project-ref>.supabase db push.supabase/seed.sql (safe, non-real demo data per PRODUCT_BUILD_SPEC.md §42) does not exist yet — it lands with the Phase 2 campaign/product/inventory schema.supabase/migrations/20260914000000_phase1_auth_org.sql for the pattern: SECURITY DEFINER helper functions to avoid policy self-recursion).supabase db push # push new migrations to the linked project
supabase migration list # confirm local/remote migration state match
supabase db query "<sql>" --linked # run an ad-hoc query against the linked project (bypasses RLS — use with care)
There is no local Postgres/Docker stack running yet (supabase start is not part of the current workflow) — all migrations apply directly to the linked hosted project. This is fine for now (empty pre-launch project) but should be revisited before real customer data exists.
npm install
npm run dev
Then open http://localhost:3000.
npm run lint # ESLint
npm run typecheck # TypeScript, no emit
npm run test # Vitest unit tests
npm run test:watch # Vitest in watch mode
npm run test:e2e # Playwright end-to-end tests (builds and runs the app first)
See CLAUDE.md for the required working method (inspect before editing, state the phase, smallest coherent change, migrations + tests per change, no silent chain-of-custody or pack-assignment changes).