30秒で分かる要点
reservation-waiting-time-v1とは?
NearQueue 店舗の近くからスマートフォンで受付番号を取得し、待ち時間を自由に使える順番待ちシステムです 主にTypeScriptを使用し、公開コミットから機能追加と改善を積み重ねた過程を確認できます。
01 / 概要
プロジェクトの概要と目的
NearQueue 店舗の近くからスマートフォンで受付番号を取得し、待ち時間を自由に使える順番待ちシステムです。 本番URL: https://reservation waiting time v1.syunnjack.workers.dev 主な機能 店舗から半径5km以内だけ受付可能な位置情報判定 受付番号、待ち組数、目安時間の自動更新 同じ端末からの重複受付防止 受付の取り消し スタッフコードで保護された店舗受付ボード 呼び出し、案内済み、取り消しの状態管理 受付完了後のクーポン・提携サービス掲載枠 D1による永続データ保存 位置情報は距離判定にだけ使用し、緯度・経度はデータベースへ保存しません。端末識別子もSHA 256でハッシュ化して保存します。 開発 本番ビルドと確認: 店舗設定 店舗の緯度・経度、受付半径、1組あたりの目安時間は lib/queue.ts で設定します。店舗受付ボードは、ホスティング環境の STAFF PIN を設定すると利用できます。 Cloudflareへデプロイ 1. 初回のみD1を作成 2. npm run build 後、 dist/server/wrangler.json の d1 databases 0 を実DBに合わせる database name : reservation waiting time v1 db database id : 作成時に表示されたUUID 3. スキーマ適用 4. デプロイ 注意 ブラウザから送信される位置情報は改ざんされる可能性があります。高額商品の確保や本人確認が必要な用途では、SMS認証、不正検知、レート制限などを追加してください。
本記事は公開されている構成と main ブランチのコミットを一次情報として整理しています。
02 / 使用技術
使用技術と役割
主要な実装言語として、プロダクトの中心機能を構成します。
03 / 設計
構成から読み解く設計
主な項目は です。
- 単一アプリケーション構成
- 機能単位の責務分割
04 / 変更履歴
コミットから見る実装の変遷
以下は既定ブランチの直近の変更です。リンク先で原文と一次情報を確認できます。
- 支援・購入への導線を追加するc5991f4をGitHubで確認 ↗
- 説明資料を更新3f7aaf1をGitHubで確認 ↗
- 実装内容を更新a931accをGitHubで確認 ↗
- 実装内容を更新9f63d7bをGitHubで確認 ↗
05 / 学び
このプロジェクトから得られる学び
- 変更を小さく記録する
コミット単位で目的を分けると、実装の意図を追跡しやすくなります。
- 構成と技術選定を結び付ける
TypeScriptの採用理由と各ディレクトリの責務を説明できることが保守性につながります。
- READMEと実装を同時に育てる
説明とコードを近い状態に保つことが、再利用と振り返りを助けます。
06 / よくある質問
よくある質問
reservation-waiting-time-v1は何を作るプロジェクトですか?
NearQueue 店舗の近くからスマートフォンで受付番号を取得し、待ち時間を自由に使える順番待ちシステムです
reservation-waiting-time-v1の主要技術は何ですか?
TypeScriptを中心に構成されています。
この記事の情報源は何ですか?
公開README、リポジトリ構成、既定ブランチのGitHubコミット履歴です。
コメント
この記事へのコメント
お名前だけで投稿できます。アカウント登録やログインは不要です。 いただいたコメントは確認のうえ公開します。