← ポートフォリオに戻る

制作物 02

⭐ できたすく

毎日の頑張りを家族の宝物に変える、タスク管理&親子日記アプリ。

デモを見る GitHub

開発背景

毎日の小さな「できた!」を積み重ね、家族の宝物に。タスク達成でポイントが貯まるゲーム性と、日記を通じた非同期コミュニケーション機能を組み合わせることで、子どもの自己肯定感と家族の絆を育むことを目指しています。

主な機能

🔑 ユーザー登録・ログイン・ログアウト(家族単位のアカウント管理)
⭐ タスク達成でポイント獲得・累計ポイント表示
📅 1日1回制限(同じタスクの重複達成を防止)
📔 きょうのにっき(体調・心の調子を5段階で記録)
💬 親からの返信表示(きょう・きろくの両方で確認)
📋 管理画面:今日の様子・タスク管理・子ども管理・日記一覧
🗑️ 全テーブルに論理削除(deleted_at)を実装

開発のこだわりポイント

🏠 マルチテナント設計(usersテーブルで家族単位に分離、URL直打ちでも他の家族のデータにアクセス不可)
🔄 トランザクション処理(タスク達成記録とポイント加算を1つの処理で実行)
📦 DRY原則の実践(functions.php・共通ナビ・認証ガードを分離)
🌍 .envによる環境変数管理(ローカルと本番で切り替え)
😊 子ども目線のUI(顔アイコンで直感的な体調選択)

技術スタック

PHP 8.2 MySQL HTML / CSS JavaScript Docker Xserver Git / GitHub

セキュリティ対策

🔒 SQLインジェクション対策(PDOプリペアドステートメント)
🔒 XSS対策(h関数として共通化したhtmlspecialchars)
🔒 パスワードハッシュ化(password_hash / password_verify)
🔒 セッション固定化攻撃対策(ログイン成功時にsession_regenerate_id(true))
🔒 認可チェック(user_idで所有者確認、他の家族のデータにアクセス不可)
🔒 セッション管理・認証ガード
🔒 機密情報管理(.envファイルで管理・.gitignoreで除外)

DB設計

users    ユーザー管理(ユーザー名・パスワードハッシュ)
children   子ども管理(名前・累計ポイント・ユーザーID)
tasks    タスクマスタ(タイトル・ポイント・子どもID)
task_logs  タスク達成記録(1日1回制限の核心テーブル)
diaries   日記(体調・心の調子・本文・日付)
diary_replies 日記への返信
rewards   ご褒美マスタ
reward_logs ご褒美交換履歴

ドキュメント

← ポートフォリオに戻る