Krowz
Real discounts at local restaurants, cafés and dessert spots. Show the QR at the counter, staff scan it, done.
Translation pending
A ledger of shisha flavors — brand, grammage, price, origin.
Translation pending
CommerceJavaScript · TypeScriptGitHub @dmnlkOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
シーシャ(水タバコ)のフレーバーを検索・閲覧できるWebアプリケーションです。豊富なフレーバーデータベースから、お気に入りのフレーバーを簡単に見つけることができます。
@opennextjs/cloudflare 経由)git clone https://github.com/yourusername/shisha-search.git
cd shisha-search
pnpm install
pnpm dev
# プロダクションビルド
pnpm build
# プロダクションサーバー起動
pnpm start
# Cloudflare Workers ローカルプレビュー
pnpm preview
# Cloudflare Workers 本番デプロイ
pnpm deploy
# テスト実行
pnpm test
# テスト(ウォッチモード)
pnpm test:watch
# TypeScript型チェック
pnpm typecheck
# コード品質チェック
pnpm lint
shisha-search/
├── app/ # Next.js App Router
│ ├── api/ # APIルート(TypeScript)
│ │ ├── search/ # 検索API (route.ts)
│ │ ├── manufacturers/ # メーカー一覧API (route.ts)
│ │ └── flavor/[id]/ # フレーバー詳細API (route.ts)
│ ├── brands/[slug]/ # ブランド詳細ページ(SSG)
│ ├── flavor/[id]/ # フレーバー詳細ページ(動的SSR)
│ ├── ClientHome.tsx # クライアントサイドホームコンポーネント
│ ├── layout.tsx # ルートレイアウト
│ ├── page.tsx # ホームページ
│ └── globals.css # グローバルスタイル(Tailwind v4対応)
├── components/ # 再利用可能なコンポーネント(TypeScript)
│ ├── SearchBar.tsx # 検索バー
│ ├── BrandList.tsx # メーカーフィルター
│ └── ShishaCard.tsx # フレーバーカード
├── types/ # TypeScript型定義
│ └── shisha.ts # データ型インターフェース
├── data/ # データ層
│ ├── shishaData.js # フレーバーデータベース(2.5MB+)
│ ├── shishaMethods.ts # データ操作ユーティリティ(TypeScript)
│ ├── brandImages.ts # ブランドロゴURL解決(サーバー専用)
│ ├── brandDescriptions.ts # ブランド説明文(手動管理)
│ ├── flavorImages.ts # フレーバー画像URL解決
│ ├── curatedPicks.ts # Editor's Selection フレーバーリスト
│ └── homeSections.ts # トップページセクション構成
├── lib/ # ライブラリとサービス
│ ├── search/ # ファジー検索(Fuse.js)
│ ├── services/ # テスト用モックデータ
│ └── utils/ # ユーティリティ関数
├── scripts/ # ビルド補助スクリプト
│ ├── build-data.ts # searchIndex.json / brands.json 生成
│ └── build/ # prebuild フック用スクリプト
├── .node-version # Node.js バージョン指定
├── open-next.config.ts # Cloudflare Workers 設定
├── wrangler.jsonc # Wrangler(Cloudflare CLI)設定
├── postcss.config.js # PostCSS設定(Tailwind v4対応)
├── tsconfig.json # TypeScript設定
└── public/ # 静的ファイル
└── images/ # 画像アセット(brands/ / flavors/)
# 全テストを実行
pnpm test
# カバレッジレポート付きでテスト
pnpm test:ci
# 特定のテストファイルを実行(Vitest はパスの部分一致でフィルタ)
pnpm test -- ShishaCard
本アプリケーションは Cloudflare Workers にデプロイされています(@opennextjs/cloudflare 使用)。
# ローカルで Workers 動作確認
pnpm preview
# 本番環境へデプロイ
pnpm deploy
プルリクエストを歓迎します!
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)pnpm lint) のルールに従うこのプロジェクトはMITライセンスの下で公開されています。
質問や提案がある場合は、Issueを作成してください。
Loading the full README.
Read the full README ↗