terada_life

PickNic 要件定義書

1. プロダクトビジョン

「その場にいる全員が、カメラマンになる。」 プロのカメラマンには撮れない「親友だけに見せる笑顔」や「テーブルごとの盛り上がり」を、リアルタイムに会場のスクリーンへ集約。ゲスト参加型の最高のエンターテインメント体験を提供する。

2. ターゲットユーザー

  • 新郎新婦: ゲストと一緒に会場を盛り上げたい、堅苦しくない式にしたい。
  • ゲスト: 撮った写真をすぐにみんなで見たい。アプリのダウンロードなど面倒なことはしたくない。

3. 主要機能要件

① ゲスト専用ウェブアプリ(PWA/Mobile Browser)

  • ログインレス・アクセス: アプリのダウンロードや会員登録は不要。QRコードを読み込むだけで即座に参加可能。
  • 直感的なスワイプアップ撮影: 撮影した写真を「シュッ!」と上にスワイプすると、スクリーンに向かって写真が飛んでいくUI演出。
  • クライアントサイド画像圧縮: 通信量とストレージを節約するため、送信前に端末内で画像を500KB〜1MB程度にリサイズして送信。
  • オフライン一時保存: 式場の電波が不安定な場合、一時的に端末内に保存し、接続が回復した際に自動でアップロードする。

② 会場投影用:ライブフォトウォール(Projector View)

  • リアルタイム反映: ゲストが投稿した瞬間に、プロジェクター画面にアニメーションと共に表示(遅延2秒以内)。
  • 動的グリッドレイアウト: 新着写真は大きく、過去の写真はタイル状に自動配置されるMasonryレイアウト。
  • オートスライドショー: 投稿がない時間は、これまでの写真をランダムに再生するループ機能。
  • アスペクト比調整: 会場に合わせて 16:9 または 4:3 をワンクリックで切り替え。

③ アーカイブ・ダウンロード機能

  • 参加者全員がダウンロード可能: 式の終了後、新郎新婦・ゲストを問わずイベントに参加した全員が、全てのオリジナルデータをZIP形式で保存可能。
  • 個別写真の保存・共有: タイムライン/ギャラリーから、気に入った写真を個別にダウンロード・SNS共有できる。
  • 公開期間の設定: 主催者(新郎新婦)はダウンロード可能期間を設定できる(例: イベント後30日間)。

4. 技術スタック & ゼロコスト設計

150名規模に耐える「無料枠の最大活用」プランです。

コンポーネント選定技術無料枠での運用ロジック
FrontendNext.js (App Router)VercelのHobbyプラン(無料)でホスティング。
Real-time DBSupabase無料枠で200同時接続まで対応。150名規模なら十分。
StorageSupabase Storage無料枠1GB。画像1枚を500KBに圧縮すれば、約2,000枚まで無料。
AnimationFramer Motion「写真が飛ぶ」滑らかな動きを実装。

5. 非機能要件(UXのこだわり)

  • パフォーマンス: 150名が一斉にアクセスしてもDBがロックしないよう、SupabaseのRealtime機能を活用。
  • セキュリティ: イベントごとに推測不可能なUUID(例: picknic.io/e/[unique-id])を発行。
  • 現場の守り: 会場WiFiに頼り切らず、テザリング等でも動くようページ重量を極限まで軽量化。

6. 爆速開発マイルストーン(3週間)

  • Week 1 (MVP):
    • Supabaseプロジェクト作成、Next.jsからの画像アップロード。
    • Goal: 「撮って送ってサーバーに残る」の完遂。
  • Week 2 (Real-time):
    • Supabase Realtimeでプロジェクター画面の同期。
    • Framer Motionで「シュッ!」と飛ぶ演出の磨き込み。
  • Week 3 (Release):
    • アーカイブ・ダウンロード機能(ZIP一括/個別)とクライアント側圧縮の実装。
    • 負荷テストと会場持ち込み用マニュアル作成。