Saleor Store
우리 컬렉션을 쇼핑하세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Nền tảng web P2P cho người chơi TCG ở Nhật (Pokémon / One Piece) trao đổi thẻ trực tiếp, không thu phí. Mục tiêu cốt lõi: thu thập giá đóng (closing price) đáng tin cậy qua cơ chế give-to-get — muốn xem dữ liệu giá thị trường thì phải đóng góp ít nhất 1 giao dịch đã xác nhận. Core loop MVP: List thẻ → Chat → Xác nhận giao dịch → Lưu giá (nhãn confirmed / self-reported).README 전문 보기 ↗
Nền tảng web P2P cho người chơi TCG ở Nhật (Pokémon / One Piece) trao đổi thẻ trực tiếp, không thu phí. Mục tiêu cốt lõi: thu thập giá đóng (closing price) đáng tin cậy qua cơ chế give-to-get — muốn xem dữ liệu giá thị trường thì phải đóng góp ít nhất 1 giao dịch đã xác nhận.
Core loop MVP: List thẻ → Chat → Xác nhận giao dịch → Lưu giá (nhãn confirmed / self-reported).
DATABASE_URLYêu cầu: Node.js 20+.
cd deal
npm install
npx prisma migrate dev # tạo db + generate client + seed tự động
npm run dev # → http://localhost:3000
Tài khoản demo (seed sẵn): [email protected] / password123
(4 tài khoản khác: taro|hanako|kenji|[email protected], cùng mật khẩu.)
Lệnh khác:
npm test # unit tests (vitest)
npm run build # production build + typecheck
npm run db:seed # chạy lại seed (idempotent)
deal/
├── CLAUDE.md ← bản đồ dự án: làm gì đọc file nào
├── docs/ ← tài liệu theo chủ đề; docs/api/ = API contract (nguồn chân lý)
├── prisma/
│ ├── schema.prisma ← 8 bảng (users, cards, listings, conversations,
│ │ messages, trades, price_records, sessions)
│ └── seed.ts ← 5 users, 38 thẻ, 10 listing, 66 price records
├── src/
│ ├── app/ ← pages (App Router) + API route handlers
│ │ └── api/ ← routes: CHỈ validate + gọi service
│ ├── server/
│ │ ├── services/ ← business logic (unit test ở tests/)
│ │ ├── repositories/ ← mọi truy cập Prisma
│ │ ├── session.ts ← session cookie (bảng sessions)
│ │ ├── validation.ts ← zod schemas + "enum" values
│ │ └── errors.ts ← ApiError + error response thống nhất
│ ├── components/ ← React components (client)
│ └── lib/
│ ├── api-client.ts ← tầng gọi API duy nhất của frontend
│ └── types.ts ← DTO dùng chung FE/BE
└── tests/ ← vitest (28 tests)
| Biến | Mặc định | Ghi chú |
|---|---|---|
DATABASE_URL | file:./dev.db | SQLite dev; Postgres khi deploy |
APP_URL | http://localhost:3000 | URL gốc dùng trong link email |
SMTP_HOST/PORT/USER/PASS/FROM | (trống) | Trống → email vào hộp thư dev /dev/mailbox. Muốn gửi Gmail thật: bật 2FA → tạo App Password tại myaccount.google.com/apppasswords → điền SMTP_HOST=smtp.gmail.com, SMTP_PORT=465, SMTP_USER=địa chỉ Gmail, SMTP_PASS=app password |
Xem .env.example.
/dev/mailbox để xem mail và bấm link.PRICE_MISMATCH nếu lệch).self_reported (lazy-check khi có request, không cần cron).price_records không có cột user nào.GET /api/prices/:cardId trả 403 NEED_CONTRIBUTION (kèm teaser số record) nếu user chưa đóng góp giao dịch nào.cards, condition là field bắt buộc./terms + /privacy (bản mẫu, nên nhờ luật sư rà trước khi vận hành thật); đồng ý bắt buộc khi đăng ký + modal re-accept khi đổi TERMS_VERSION (src/lib/terms.ts — nhớ sync bản hardcode trong prisma/seed.ts); server chặn 403 TERMS_NOT_ACCEPTED.Lỗi 500 ngẫu nhiên khi npm run dev (log: SyntaxError: Unexpected end of JSON input): dự án nằm trong thư mục OneDrive — OneDrive khóa file trong .next khi sync. Cách xử lý: tạm dừng OneDrive sync khi dev (icon OneDrive → 一時停止), hoặc bỏ sync thư mục deal (OneDrive 設定 → アカウント → フォルダーの選択), hoặc chuyển dự án ra ngoài OneDrive (vd C:\dev\deal) sau khi đã đưa code lên GitHub. Không chạy npm run build khi dev server đang chạy (cả hai cùng ghi .next).
LINE Login · SMS OTP chống Sybil · push/email notification nhắc xác nhận · tích hợp Pokémon TCG API · cloud storage cho ảnh · deploy Vercel + Supabase · AI dự đoán giá.