尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Polski serwis rezerwacyjny (helptravel.pl): wyszukiwarka i rezerwacja hoteli oraz lotów, wsparta warstwą treści (kierunki, przewodniki, inspiracje) pod SEO. Rezerwacja odbywa się u nas — nie przez przekierowanie do partnera. Rozliczeniowo merchant of record jest NUITEE TRAVEL (LiteAPI), płatność kartą lub Google Pay.查看完整 README ↗
Polski serwis rezerwacyjny (helptravel.pl): wyszukiwarka i rezerwacja hoteli oraz lotów, wsparta warstwą treści (kierunki, przewodniki, inspiracje) pod SEO.
Rezerwacja odbywa się u nas — nie przez przekierowanie do partnera. Rozliczeniowo merchant of record jest NUITEE TRAVEL (LiteAPI), płatność kartą lub Google Pay.
/data, /hotels/rates, prebook/book) i loty (LiteAPI Flights)Travelpayouts / Hotellook / Aviasales / Stay22 / CJ zostały całkowicie usunięte. Linki kierunkowe prowadzą wyłącznie do naszych własnych ścieżek (
/hotele/szukaj, wyszukiwarka lotów).
Menedżer pakietów: pnpm (w repo jest pnpm-lock.yaml).
pnpm install
cp .env.example .env.local # uzupełnij wartości
pnpm db:push
pnpm dev # http://localhost:3000
pnpm lint
pnpm test
pnpm build
Pojedynczy plik testowy:
node --import tsx --test src/lib/concierge/tools.test.ts
Testy uruchamiane są z jawnej listy plików w package.json — nowy plik *.test.ts trzeba tam dopisać, inaczej nigdy się nie wykona.
Smoke'i uderzające w prawdziwe API (czytają .env.local):
pnpm smoke:liteapi
pnpm booking:smoke
Źródłem prawdy jest .env.example — zawiera komplet zmiennych z komentarzami (m.in. które klucze LiteAPI idą w X-API-Key, a które są publiczne dla widgetu płatności). Skopiuj go do .env.local; na Vercelu dodaj każdą zmienną osobno.
Minimum do startu lokalnego: DATABASE_URL, NEXT_PUBLIC_SITE_URL, klucze LiteAPI (sand_ wystarczy do wyszukiwania). Bez UPSTASH_* aplikacja działa, tylko bez cache'u i rate limitingu.
Testy płatności obciążają prawdziwą kartę — używaj klucza sand_.
Rezerwacje: /hotele (wyszukiwarka, karta hotelu, checkout), /loty (wyniki, rezerwacja), /wyjazdy/[typ], /oferta, /cennik.
Treści i SEO: /kierunki, /najlepsze-kierunki, /inspiracje, /przewodniki, /porownanie, /city-breaki, /cieple-kierunki, /bez-wizy, /tanie-podroze, /weekendowe-wyjazdy.
Zaufanie i formalności: /o-nas, /faq, /jak-pracujemy, /redakcja, /standard-redakcyjny, /regulamin, /polityka-prywatnosci, /dla-partnerow, /mapa-serwisu.
AI concierge (czat doboru wyjazdu) jest montowany w layoucie na każdej stronie; wyłącznik: NEXT_PUBLIC_SHOW_CONCIERGE=false.
Vercel, gałąź main idzie prosto na produkcję. Zmienne środowiskowe ustawiane w Project Settings.
Crony (vercel.json) grzeją cache i budują snapshot cen:
/api/cron/warm-rates — co 30 min/api/cron/warm-flights — :15 i :45Po wdrożeniu: docs/post-deploy-checklist.md.
CLAUDE.md — architektura, konwencje i pułapki (czytaj przed większą zmianą)docs/booking-flow.md — ścieżka rezerwacji, docs/analytics-events.md — eventy GA4PRODUCT.md — zasady produktowe