Specサイト

カウンターとPDF生成の仕様

了解www
これはしゃむ向け説明書じゃなく、私が次にこの案件を見たときに「何が決まってたっけ?」を復元するための作業メモとしてまとめる。

Kaia Counter / PDF Generator — Current Specification Memo

1. Kaia Counter の役割

カウンター本体はSupporter Number の発行機能に専念する。

現在のテスト仕様

  • カウンター番号:8桁
  • テスト用クールダウン:3分
  • 1回の寄付につき1番号という発行制御
  • 発行履歴はDBに保持
  • 発行済み番号をF5/再読み込み時に表示しない
  • 再読み込み時は8枠を KaiaSpec で目隠し
  • GET NUMBER 実行直後だけ発行番号を表示
  • クールダウン終了後は再取得可能

現在の表示構成

YOUR SUPPORTER'S NUMBER

[ K ][ a ][ i ][ a ][ S ][ p ][ e ][ c ]

READY TO CLAIM

[ GET NUMBER ]

One number is issued per donation.

発行後:

YOUR SUPPORTER'S NUMBER

[ 0 ][ 0 ][ 0 ][ 0 ][ 0 ][ 0 ][ 2 ][ 1 ]

SUCCESS
GOT IT!

One number is issued per donation.

デザイン

  • カウンター全体:クリーム色の背景
  • 数字8枠:白背景にする方向で決定
  • GET NUMBER:青背景+白文字
  • SUCCESS:グレー系の状態表示
  • GOT IT!:SUCCESSの下に、大きめ・太字
  • One number is issued per donation.:表示する
  • SUCCESSGOT IT! は同じボタン内部ではなく、SUCCESSは状態表示、GOT IT!はその下
  • F5後も説明文を消さない

2. PDF Generator は別プラグイン

カウンター本体にPDF生成機能を全部詰め込まず、

Kaia Counter

Supporter Number発行

Kaia PDF Generator

PDF生成

として分離する。

理由:

  • 責務分離
  • 修正時の影響範囲縮小
  • カウンター側を変更してPDFまで壊す事故を避ける
  • 将来PDF形式・レイアウトを変更しやすくする

Counterから発行済みSupporter NumberをPDF Generatorへ渡し、客に番号を再入力させない


3. 客側のPDF Generator UI

カウンターと同じ幅・同じクリーム色のブロックとして配置する案。

理想は、カウンターと一続きの大きなクリーム色の箱。

ただし、それを実現するためにプラグイン同士を強く結合する必要があるなら、

同じ幅・同じ背景・同じデザインの別ブロックを縦に並べる

方式を採用する。

見た目は一体、技術的には分離。


客が入力する項目

① Display name

PDFに表示したい名前。

② Language

ラジオボタン形式。

例:

○ 日本語
○ English

実際の選択肢はPDF Generator側で設定可能にする余地あり。

③ Timestamp

タイムゾーンを客自身に選択させない。

ブラウザから客のタイムゾーンを自動取得し、現在時刻を取得するボタンを設置する。

例:

[ GET CURRENT TIME ]

押した時点の客側の時刻・タイムゾーン情報を取得してPDF生成用データにする。

つまり客側UIに、

Timezone選択欄は置かない。


4. PDF生成ボタン

ボタン:

CREATE PDF

条件が揃っていない状態でもボタン自体は押せる。

不足している場合は、ボタン直下に紺色の案内文を表示する。

日本語を直訳せず、海外向けUIとして自然な英語を使う。

基本文:

Please complete the following before creating your PDF:

その下に不足している項目だけ列挙。

例:

Please complete the following before creating your PDF:
• Display name
• Language
• Timestamp

全部揃っている場合、この案内は表示しない。

「あと少しです★」のような表現は使わない。


5. 不具合導線

PDF Generator側にも、

Report a problem / 不具合はこちら

に相当する導線を置く。

具体的な英語文言・リンク先は後で確定。


6. PDF Generatorの「HTML窓」

重要:

フリーHTML編集窓は客側には見せない。

これは私たちがPDF Generatorを制作・設定するときの管理側機能

管理側で、

  • PDFレイアウト
  • 表示内容
  • HTML
  • 必要な装飾

などを自由に編集できるようにする。

つまり、

管理者側
    ↓
Free HTML / PDF template editor
    ↓
PDF Generatorのレイアウトを設定

客側は、

Display name
Language
Get current time
CREATE PDF

だけを見る。


7. Counter → PDF連携

客がCounterでSupporter Numberを取得。

例:

0000021

この番号をPDF Generatorへ自動的に渡す。

客に番号を手入力させない。

PDF Generatorは、

Supporter Number
Display name
Language
Timestamp
Timezone metadata
管理側で設定したHTML/template

などを材料にPDFを生成する。


8. 修正・バージョン管理ルール

ここは最重要

既存版を直接修正しない。

例:

v0.5.8
   ↓
v0.5.9 の白紙を新規作成
   ↓
v0.5.8を転記
   ↓
v0.5.9だけ修正
  • 前版は原本として残す
  • 新しい修正は必ず新しい番号
  • 記憶からコードを再生成しない
  • 「たぶん現行版」を推測して作らない
  • 修正前/修正後を番号で明確に分離する
  • 構文チェック後に納品する

今回の事故を踏まえ、このルールを必ず優先する。


9. 現在の実装状態

現行カウンター:

v0.5.8

v0.5.8では、

  • v0.5.7から転記
  • F5時の番号目隠しを維持
  • F5時の One number is issued per donation. を復元
  • PHP構文チェック済み

まで実装済み。

現在、PDF Generatorはまだ設計段階


10. 未実装・次回検討

  • 数字8枠の白背景化
  • PDF Generatorプラグイン新規設計
  • 客側PDF生成ブロック
  • Display name入力
  • Languageラジオボタン
  • ブラウザからのタイムゾーン自動取得
  • Current Time取得ボタン
  • CREATE PDF
  • 条件不足時の紺色メッセージ
  • 不具合導線
  • 管理側Free HTML / PDF template editor
  • CounterからPDF GeneratorへのSupporter Number連携
  • PDFレイアウト仕様
  • PDFファイル名・保存/ダウンロード方式
  • 実際のPDF生成ライブラリ/方式

現時点では、この設計を勝手に5.9として実装開始しない。
次に再開するときは、このメモを基準にして、既存v0.5.8現物との照合から始める。

kaia-counter-v0.5.8-reload-note-fix

The Day I Said “Rejected ★”Prev

Kaiaカウンター製品化仕様書Next

Comment

  1. No comments yet.

  1. No trackbacks yet.

PAGE TOP
Table of contents