現在、スプレッドシート⇔Webぺージの双方向で更新できる「Spreadsheet Product Sync」発展版を作成中
ひとこと
[Portfolio] ToDoリスト DB連携版 (REACT + TypeScript + PHP + MySQL)
前回作成したReact + TypeScriptのToDoリスト拡張版を発展させ、PHP・MySQLと連携してタスクをデータベースへ保存できるDB連携版を作成しました。
これまでブラウザ内で管理していたToDoデータに加え、PHPを通じてMySQLへ保存する仕組みを追加しています。
サーバー側へデータを保存することで、1台のブラウザ内だけで完結するのではなく、複数デバイスから同じToDoデータを利用できる構成にしました。
主な機能・特徴
- ToDoの追加・編集・削除
- localStorageによるデータ保持
- PHP・MySQLと連携したDB保存
- 複数デバイスから同じToDoデータを利用可能
- 日付ごとの完了履歴を表示
- 日付順の昇順・降順切り替え
- 日付ごとの折りたたみ表示
- グループの追加・分類
- 期限の設定
- 期限間近・期限切れの通知
- ページ表示時および1分ごとの期限チェック
期限通知は、現状ではページを開いている間のみ動作する仕様です。
活用例
- 個人用のToDo・タスク管理
- PC・スマートフォン間でのタスク共有
- 期限付き作業の管理
- 案件・業務ごとのタスク整理
- グループ別の作業管理
- ReactとPHP・MySQLを連携するWebアプリの構築例
フロントエンドだけで完結するアプリから、サーバー・データベースまで連携するWebアプリへ発展させたサンプルとして制作しています。
実装の仕組み
画面側はReact + TypeScriptで構築し、タスクデータをPHPへ送信してMySQLへ保存する構成です。
React + TypeScriptでToDoを操作
↓
PHPへデータを送信
↓
MySQLへ保存
↓
保存データをPHPから取得
↓
React側へ反映
↓
PHPへデータを送信
↓
MySQLへ保存
↓
保存データをPHPから取得
↓
React側へ反映
ブラウザ内だけにデータを保存する構成に加え、サーバー側のDBを利用することで、異なる端末からでも同じデータを扱えるようにしています。
工夫・改善した点
- 前回のReact + TypeScript版の機能を維持しながら、PHP・MySQL連携を追加しました。
- ブラウザ内だけで完結していたデータ保存を、サーバー側へ拡張しました。
- 複数デバイスから同じToDoデータを利用できる構成にしました。
- 期限・グループ・完了履歴など、実際のタスク管理を想定した機能を組み合わせています。
- フロントエンドとバックエンド、データベースを連携させる構成を実装しました。
ReactとTypeScriptの学習・実装を主目的としているため、画面の装飾は必要最低限とし、機能やデータ連携の実装を中心にしています。
今後の拡張
現在の期限通知は、ページを開いている間のみ動作します。
今後の拡張案として、PWA・Service Worker・Push APIなどを利用し、ページを閉じている状態でも通知を受け取れる構成を検討しています。
使用技術
React / TypeScript / PHP / MySQL / localStorage
2025.10.12

![[Portfolio] ToDoリスト DB連携版(REACT + TypeScript + PHP + MySQL)](https://yuta-shiina.com/wp_files/wp-content/uploads/2025/10/20251012-1.jpg)