Ecommerce Template
Next.js·React 등으로 만든 최신 전자상거래 템플릿
호주 30개 매장의 휴대폰·TV·노트북·헤드폰 등 가격을 매일 확인하고 가격 변동을 기록합니다
Is that sale real? We check prices on phones, TVs, laptops, headphones and more at 30+ Australian stores every day, including JB Hi-Fi, Harvey Norman and The Good Guys, and keep the price history so y
커머스TypeScript · JavaScriptGitHub @Specifxx온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Is that sale real? We check prices on phones, TVs, laptops, headphones and more at 30+ Australian stores every day, including JB Hi-Fi, Harvey Norman and The Good Guys, and keep the price history so you can see a real deal.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Price comparison for Australia, starting with mobile phones. Live at compareempire.com.
npm run scrape — reads the public phone listings of 17 stores (scripts/scrapers/)
into data/phones/raw/<retailer>.json: JB Hi-Fi, Harvey Norman, The Good Guys,
Mobileciti, Apple, Samsung, Telstra, Optus, Vodafone, amaysim, TeleChoice, Costco,
Umart, MSY, digiDirect, Betta and Mwave. A store that fails keeps yesterday's file.
Carrier listings are kind: "plan" (device repayments) and never mix into the
outright ranking. docs/stores/survey.md lists the 80+ stores checked and why the
others (Amazon, eBay, Kogan, Big W, Officeworks…) aren't scraped.npm run build:catalog — matches listings to phones by brand + model + storage
(src/lib/normalize.ts), drops refurbished/carrier-locked/outlier listings, writes
data/catalog.json, today's snapshot to data/phones/history/<date>.json and the chart
series to data/series.json.next build prerenders the home, category, brand, deal, browse, compare and guide pages;
product pages render on their first request and Vercel's CDN keeps them until the next deploy.
No database..github/workflows/refresh-prices.yml runs steps 1–2 every morning and commits the
data, which triggers one Vercel deploy a day.
npm install
npm run dev # http://localhost:3000
npm run refresh # re-scrape + rebuild the catalogue (≈3 min)
npm test && npm run typecheck && npm run lint
Write scripts/scrapers/<id>.ts returning RawOffer[], register it in
scripts/scrape.ts and src/lib/retailers.ts, then run npm run refresh and check
the new titles parse (tests/normalize.test.ts).