# タスケット シンプル版仕様書 app_name: タスケット (Tasket) version: 1.0.0 (シンプル版) description: 友達と2人で使えるいっしょにすることリストPWA tag_line: タスクをタスケットに入れるね # 基本情報 basics: url: https://app.chiilabo.jp/tasket/ hosting: mixhost レンタルサーバー technologies: - PHP 7.4+ - MySQL 5.7+ - JavaScript (ES6) - HTML5/CSS3 browser_support: - Chrome (最新版) - Firefox (最新版) - Safari (最新版) - Edge (最新版) responsiveness: true # URL構造 url_structure: main: /tasket/ create: /tasket/create/ tasket_page: /tasket/t/{tasket_id}/ authentication: ハッシュパラメータ (#key-password形式) # データベース設計 database: tables: - name: taskets description: タスケット(タスク集合)の情報 fields: - id: VARCHAR(10) PRIMARY KEY - title: VARCHAR(100) NOT NULL - created_at: DATETIME NOT NULL - password_hash: VARCHAR(255) NOT NULL - name: tasks description: 個々のタスク情報 fields: - id: INT AUTO_INCREMENT PRIMARY KEY - tasket_id: VARCHAR(10) NOT NULL - title: TEXT NOT NULL - is_urgent: BOOLEAN DEFAULT 1 - is_important: BOOLEAN DEFAULT 0 - is_completed: BOOLEAN DEFAULT 0 - created_at: DATETIME NOT NULL - created_by: VARCHAR(50) - completed_at: DATETIME - completed_by: VARCHAR(50) - FOREIGN KEY: (tasket_id) REFERENCES taskets(id) # 機能仕様 features: phase1: - name: 基本UI構築 description: まずすること/予定することの2エリア表示 details: - PC版では左右に並べて表示 - スマホ版では左右スワイプで切り替え - 基本的なヘッダー(アプリ名、操作ボタン) - name: タスク追加 description: 基本的なタスク追加機能 details: - テキスト入力によるタスク追加 - エンターキーで確定 - name: タスク完了チェック description: チェックボックスでタスク完了管理 details: - チェックでタスク完了状態に - 完了タスクは取り消し線と薄い色で表示 - name: データ保存 description: ローカルストレージによる一時保存 details: - ブラウザのlocalStorageを使用 - ブラウザを閉じても情報が残る phase2: - name: 重要度マーク description: ★マークによる重要タスクの表示 details: - 重要タスクは★マークを表示 - 重要タスクは常に上部に表示 - name: タスク並び替え description: タスクの自動ソート機能 details: - 完了状態→重要度→追加日時の順でソート - 完了タスクは下部に表示 - name: 一括入力 description: 複数タスクの一括入力機能 details: - 行頭記号によるタスク属性指定 - "*": 重要タスク - ">": 予定すること(非緊急タスク) - "-": 完了状態のタスク - name: データベース連携 description: MySQLを使ったデータの永続化 details: - タスクデータをサーバーに保存 - ページをリロードしても情報が保持される phase3: - name: シンプル認証 description: 固定URLとシンプルなパスワード認証 details: - URLハッシュを使った認証(#key-password) - パスワードはサーバー側でハッシュ化して保存 - name: 疑似リアルタイム更新 description: Ajaxポーリングによる定期的な更新 details: - 30秒ごとにサーバーに更新を問い合わせ - 最終更新時刻以降の変更のみを取得 - name: ユーザー識別 description: 編集者情報の表示 details: - タスク作成者の表示 - タスク完了者の表示 - ニックネーム入力機能 # UI設計 ui_design: colors: - まずすること: オレンジ系 (#FFA500) - 予定すること: 緑系 (#4CAF50) - 重要タスク: 太字表示 - 完了タスク: グレー系 (#999) + 取り消し線 layout: pc: - まずすることと予定することを左右に表示 - 入力欄は画面下部に配置 mobile: - まずすることと予定することを左右スワイプで切り替え - 追加ボタンは画面右下に配置 markers: - まずすること: 四角マーク (■) - 予定すること: 三角マーク (▶) - 重要タスク: 星マーク (★) # APIエンドポイント api: - path: /api/get_tasks.php method: GET params: - id: タスケットID - since: 最終更新タイムスタンプ response: JSONでタスクリストと現在タイムスタンプを返却 - path: /api/save_task.php method: POST params: - tasket_id: タスケットID - title: タスクタイトル - is_urgent: 緊急フラグ - is_important: 重要フラグ - created_by: 作成者名 response: 成功・失敗のステータスとタスクID - path: /api/complete_task.php method: POST params: - task_id: タスクID - is_completed: 完了フラグ - completed_by: 完了者名 response: 成功・失敗のステータス # ファイル構成 file_structure: - /tasket/ - index.php # メインアプリケーション - create.php # 新規タスケット作成 - api/ - get_tasks.php # タスク取得API - save_task.php # タスク保存API - complete_task.php # タスク完了API - auth.php # 認証処理 - assets/ - css/ - style.css # スタイルシート - js/ - app.js # メインのJavaScript - taskUI.js # タスク表示UI - sync.js # 同期機能 - includes/ - config.php # 設定ファイル - db.php # データベース接続 - functions.php # 共通関数 # 開発タイムライン timeline: phase1: estimated_duration: 2週間 priority: 高 phase2: estimated_duration: 2週間 priority: 中 phase3: estimated_duration: 3週間 priority: 中 # 将来拡張性 future_expansion: - tasketRealとのデータ連携 - メール通知機能(オプション) - タスクの期限設定 - タグによる分類