つぶやきにTODO管理機能を追加した

概要

つぶやき投稿に「TODOにする」チェックボックスを追加した。チェックを入れると、締切日を設定してタスクとして管理できるようになる。完了マークを押すと、カードに印鑑風の「完了」スタンプが表示され、テキストに打ち消し線が入る。

実装した機能

投稿フォームの変更

タイムライン表示

未完了のTODOでは以下を表示する:

完了済みのTODOでは以下を表示する:

管理画面での操作

管理画面の投稿一覧に「✓ 完了にする」ボタンを追加した。完了済みの場合は「↩ 未完了に戻す」に変わる。押すたびに完了状態が切り替わる。

完了にした日付は自動的に記録され、登録日から完了日までの経過日数を計算して表示する。

データ構造

TODO情報はJSONカラム(todo_info)として保存する:

{
  "isTodo": true,
  "isDone": false,
  "dueDate": "2026-04-20",
  "completedAt": null
}

完了時は isDone: truecompletedAt に完了日(YYYY-MM-DD)が入る。

セキュリティ対応

データベース

ALTER TABLE posts ADD COLUMN todo_info TEXT DEFAULT NULL;

DDLラグ対策として、投稿APIにも自動ALTERを追加している。

残件・今後