- ドラッグ&ドロップ: 直感的なタスク移動とカラム並び替え
- カスタムラベル: 10種類のPrimerカラーバリアント対応
- 期限管理: 期限切れ・当日・明日期限の自動警告表示
- 時刻設定: 期限日に詳細時刻を設定(デフォルト23:59)
- 繰り返し設定: 毎日・毎週・毎月・毎年の自動タスク再作成・期限なし繰り返し対応
- 完了機能: ワンクリックでタスク完了状態を切り替え
- タスク複製: 既存タスクを簡単に複製して効率的に作業
- サブタスク: チェックリスト形式のサブタスク管理と進捗表示
- サブタスク並び替え: ドラッグ&ドロップによるサブタスクの順序変更
- リッチテキストエディタ: 太字・斜体・下線・取り消し線・リンク・コードブロック・emoji picker対応の高機能エディタ
- 優先度管理: Critical/High/Medium/Low 4段階優先度システム
- テンプレート機能: タスクテンプレートの作成・編集・削除・お気に入り・カテゴリー管理
NEW! 自然言語によるタスク作成とAI推奨機能
- AI自然言語タスク作成:
"明日までにレポート"→ 自動的に期限・優先度付きタスク生成 - AI推奨タスク: コンテキスト分析に基づく次のタスク提案
- リアルタイム通知: WebSocket経由でタスクの作成・更新をリアルタイム受信
セットアップ:
# 1. GraphQLバックエンド起動(必須)
cd taskflow-graphql
npm run dev
# → http://localhost:4000/graphql
# 2. 環境変数設定
echo "VITE_GRAPHQL_URL=http://localhost:4000/graphql" >> .env
# 3. フロントエンド起動
npm start詳細は GraphQL統合ガイド を参照してください。
- ファイル添付: ドラッグ&ドロップによるファイルアップロード(5MBまで)
- プレビュー: 画像・テキストファイルのフルスクリーンプレビュー
- ダウンロード: Base64エンコード形式でブラウザ内保存・ダウンロード
- 月次表示: タスクをカレンダー形式で視覚的に管理
- 期限ベース: 期限日ごとにタスクを整理して表示
- インタラクティブ: カレンダーから直接タスクの詳細確認・編集
- フィルタリング: カレンダー内でもラベルやステータスでフィルタ可能
- ソート機能: 各日付内でタスクの並び順をカスタマイズ
- ドラッグ&ドロップ: 直感的なタスク移動とステータス変更
- カラム移動: kebabメニューからカラムを左右に移動
- デフォルトカラム設定: 新しいボード作成時のカラム設定をカスタマイズ
- 完了タスク配置: 完了タスクを自動的にカラムの最上部に配置
- カラム管理: 表示カラムの表示/非表示切り替え機能
- 豊富な表示項目: タスク名・ステータス・期限・ラベル・サブタスク・ファイル・進捗・作成日・更新日・完了日・説明・繰り返し設定
- タスク件数表示: リアルタイムなタスク数カウンター
- 進捗表示: サブタスクの完了状況を視覚的なプログレスバーで表示
- スマートフィルタ: 期限別・ラベル別・優先度別の高度なフィルタリング
- 多軸ソート: 作成日・更新日・期限・名前・優先度順の5種類ソート
- 統計表示: 未完了タスク数・期限警告の集計表示
- ローカル保存: ブラウザのlocalStorageでオフライン対応
- データインポート: JSONファイルによるデータ一括インポート
- ボード選択エクスポート: 任意のボードを選択してデータエクスポート
- 複数ボード: プロジェクト別のボード管理
- ラベル管理: ラベルの作成・編集・削除・ソート機能付きテーブル表示
- ごみ箱機能: 削除されたタスクの一時保存・復元機能(ソフトデリート対応)
- テンプレート管理: テンプレートのインポート・エクスポート・バックアップ機能
- データアクセスポリシー: IndexedDB(ローカル)とGraphQL(リモート)の明確な役割分離
- デフォルトカラム設定: 新しいボード作成時のカラム設定をカスタマイズ
- ごみ箱機能: ソフトデリートされたタスクの管理・復元・設定機能
- テンプレート設定: テンプレートカテゴリー・お気に入り・使用統計管理
- Shadcn/UI: モダンで統一されたデザインシステム採用
- Tailwind CSS: ユーティリティファーストによる柔軟なスタイリング
- レスポンシブ: モバイル・デスクトップ対応
- アクセシビリティ: WCAG準拠のアクセシブルUI
- ダークモード: ユーザー設定に応じたテーマ対応
- オフライン対応: ネットワーク接続なしでもアプリケーション使用可能
- インストール可能: デスクトップ・モバイルのホーム画面に追加可能
- 自動更新: 新バージョンの自動検出と更新通知
- 高速起動: Service Workerによるキャッシュで高速なアプリケーション起動
- アプリショートカット: 新規タスク・カンバン・カレンダーへのクイックアクセス
- 通知基盤: 将来的なタスク期限リマインダー通知に対応
詳細は PWA機能ドキュメント を参照してください。
本番環境: https://tflow-app.vercel.app
- Node.js 18.0.0以上
- npm 8.0.0以上
# リポジトリのクローン
git clone git@github.com:sanae-abe/task-flow.git
cd task-flow
# 依存関係のインストール
npm install
# 開発サーバーの起動
npm startアプリケーションは http://localhost:3000 で起動します。
# 1. GraphQLバックエンドのセットアップ
cd taskflow-graphql
npm install
npm run dev
# → http://localhost:4000/graphql
# 2. フロントエンドの環境変数設定
cd ../taskflow-app
echo "VITE_GRAPHQL_URL=http://localhost:4000/graphql" >> .env
# 3. GraphQL型定義の生成
npm run codegen
# 4. フロントエンド起動
npm start詳細は GraphQL統合ガイド を参照してください。
npm start # 開発サーバー起動
npm run typecheck # TypeScript型チェック
npm run typecheck:watch # TypeScript型チェック(ウォッチモード)
npm run lint # ESLintによるコード品質チェック・自動修正
npm run lint:check # ESLintチェックのみ(修正なし)
npm run format # Prettierによるコード整形
npm run format:check # Prettierチェックのみ(整形なし)npm run codegen # GraphQL型定義生成(.graphqlファイルから)
npm run codegen:watch # GraphQL型定義生成(ウォッチモード)使用例:
src/graphql/*.graphqlでクエリ/ミューテーション定義npm run codegenで型安全なReact Hooks生成src/generated/graphql.tsから自動生成されたhooksをインポート
npm test # インタラクティブテスト実行(Vitest)
npm run test:run # 単発テスト実行
npm run test:coverage # カバレッジレポート生成
npm run test:ci # CI用テスト実行
npm run test:ui # Vitest UIダッシュボードnpm run test:e2e # すべてのE2Eテスト実行
npm run test:e2e:ui # Playwright UIモードで実行(推奨)
npm run test:e2e:debug # デバッグモードで実行
npm run test:e2e:headed # ヘッド付きモードで実行
npm run test:e2e:chromium # Chromiumのみ実行
npm run test:e2e:firefox # Firefoxのみ実行
npm run test:e2e:webkit # WebKit (Safari)のみ実行
npm run test:e2e:mobile # モバイルブラウザで実行
npm run test:e2e:report # テストレポート表示
npm run test:e2e:codegen # テストコード生成(録画)詳細は E2Eテストガイド を参照してください。
npm run build # プロダクションビルド
npm run build:prod # プロダクションビルド + サイズ解析
npm run analyze # バンドルサイズ解析(ビルド後実行)
npm run analyze:size # ビルド済みファイルのサイズ解析npm run quality # 全品質チェック実行
npm run quality:fix # 自動修正付き品質チェック
npm run audit # セキュリティ監査
npm run audit:fix # セキュリティ脆弱性の自動修正
npm run audit:security # 高レベルセキュリティチェック
npm run lint:security # セキュリティ特化ESLintチェック
npm run check-deps # 依存関係の更新チェック
npm run pre-commit # コミット前品質チェックnpm run lighthouse # Lighthouseパフォーマンス監査
npm run seo:validate # SEO検証(ビルド + Lighthouse)- React 19.2.0: UIライブラリ
- TypeScript 5.7.3: 型安全性とDX向上
- Vite 7.1.12: 高速ビルドツール・開発サーバー
- Shadcn/UI: モダンなUIコンポーネントライブラリ
- Tailwind CSS 4.1.16: ユーティリティファーストCSS(最新版)
- @radix-ui: アクセシブルなプリミティブコンポーネント
- @dnd-kit: ドラッグ&ドロップ機能
- Lexical 0.35.0: 高性能リッチテキストエディタ
- emoji-picker-react: リッチテキストエディタ用絵文字ピッカー
- date-fns 4.1.0: 日付処理ライブラリ
- lucide-react: 統一アイコンライブラリ
- DOMPurify: HTMLサニタイズによるセキュリティ強化
- Apollo Client 4.0.9: GraphQL クライアント(キャッシング・型安全性)
- GraphQL 16.12.0: API クエリ言語
- GraphQL Code Generator: 型安全なReact Hooks自動生成
- taskflow-graphql: Apollo Server 4.x バックエンド(AI機能・リアルタイム通知)
- IndexedDB: オフライン優先のローカルストレージ(プライマリ)
- GraphQL API: AI機能・リアルタイム更新(セカンダリ)
データアクセスポリシー:
- IndexedDB直接アクセス: タスク/ボード/ラベルのCRUD、オフライン操作
- GraphQL経由: AI自然言語タスク作成、推奨タスク、WebSocket購読
- 詳細: data-access-policy.ts
- Service Worker: オフライン対応・キャッシング戦略
- Web App Manifest: インストール機能・アプリショートカット
- Notifications API: 通知機能基盤
- Share Target API: 外部からのタスク共有対応
- Vite: 超高速ビルドシステム・HMR対応
- Vitest 4.0.3: 高速単体テストフレームワーク
- Playwright: E2Eテスト・クロスブラウザテスト
- ESLint: コード品質・セキュリティチェック
- Prettier: コード整形
- React Testing Library: UIテスト
- Context API: グローバル状態管理
- Custom Hooks: ロジック再利用
- Component-based: 再利用可能なコンポーネント設計
- TypeScript Strict: 厳密な型チェック
src/
├── components/ # 再利用可能なUIコンポーネント
│ ├── CalendarView/ # カレンダービュー(モジュラー分割)
│ │ ├── components/ # カレンダー専用コンポーネント
│ │ ├── hooks/ # カレンダーロジック
│ │ └── styles/ # カレンダースタイル
│ ├── DataManagement/ # データ管理パネル
│ ├── LabelManagement/ # ラベル管理システム
│ │ ├── components/ # ラベル管理コンポーネント
│ │ └── hooks/ # ラベル管理ロジック
│ ├── LabelSelector/ # ラベル選択システム
│ ├── NotificationContainer/ # 通知システム
│ ├── RecycleBin/ # ごみ箱機能(詳細ダイアログ付き)
│ │ ├── components/ # ごみ箱専用コンポーネント
│ │ │ └── DetailDialog/ # 詳細ダイアログシステム
│ │ └── settings/ # ごみ箱設定
│ ├── RecurrenceDetailDialog/ # 繰り返し設定ダイアログ
│ │ ├── components/ # 繰り返し設定コンポーネント
│ │ ├── hooks/ # 繰り返し設定ロジック
│ │ └── types/ # 繰り返し設定型定義
│ ├── RichTextEditor/ # リッチテキストエディタ(12モジュール分割)
│ │ ├── components/ # エディタコンポーネント
│ │ ├── hooks/ # エディタロジック
│ │ └── utils/ # エディタユーティリティ
│ ├── SubTaskItem/ # サブタスクアイテム(詳細分割)
│ │ ├── components/ # サブタスク専用コンポーネント
│ │ ├── hooks/ # ドラッグ&ドロップロジック
│ │ └── styles/ # サブタスクスタイル
│ ├── TableView/ # テーブルビュー(23ファイル分割)
│ │ ├── components/ # テーブル専用コンポーネント
│ │ ├── hooks/ # テーブルロジック
│ │ └── utils/ # テーブルユーティリティ
│ ├── TaskCreateDialog/ # タスク作成ダイアログ(8モジュール分割)
│ │ ├── components/ # タスク作成コンポーネント
│ │ └── hooks/ # タスク作成ロジック
│ ├── TemplateManagement/ # テンプレート管理システム
│ ├── shared/ # 共有コンポーネント
│ │ ├── Dialog/ # ダイアログシステム
│ │ ├── Form/ # フォームシステム
│ │ │ └── fields/ # フォームフィールド
│ │ └── Menu/ # メニューシステム
│ ├── PWAInstallPrompt.tsx # PWAインストールプロンプト
│ ├── ServiceWorkerUpdateNotification.tsx # Service Worker更新通知
│ └── ... # その他のコンポーネント
├── contexts/ # React Context (状態管理)
├── hooks/ # カスタムフック
│ ├── usePWA.ts # PWA状態管理フック
│ ├── useAITaskCreation.ts # AI自然言語タスク作成(未実装)
│ ├── useAIRecommendations.ts # AI推奨タスク(未実装)
│ └── useTaskSubscriptions.ts # リアルタイム通知(未実装)
├── graphql/ # GraphQL クエリ定義
│ ├── ai-features.graphql # AI機能(mutation/query)
│ └── subscriptions.graphql # リアルタイム購読
├── generated/ # 自動生成ファイル
│ └── graphql.ts # 型安全なReact Hooks(1,420行)
├── lib/ # ライブラリ・ユーティリティ
│ ├── apollo-client.ts # Apollo Client設定(206行)
│ ├── data-access-policy.ts # データアクセスポリシー(384行)
│ └── graphql-error-handler.ts # GraphQLエラーハンドリング(未実装)
├── types/ # TypeScript型定義
├── utils/ # ユーティリティ関数
│ ├── notifications.ts # 通知管理
│ ├── serviceWorker.ts # Service Worker管理
│ ├── settingsStorage.ts # 設定永続化
│ └── templateStorage.ts # テンプレート管理
└── App.tsx # メインアプリケーション
# セキュリティ重視の設定
npm run lint:security
# 自動修正
npm run lint -- --fixstrict: true- 厳密な型チェックnoEmit: true- 型チェックのみ実行
- Branches: 80%
- Functions: 80%
- Lines: 80%
- Statements: 80%
- フォークを作成
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
- TypeScript strictモード必須
- ESLint + Prettier準拠
- テストカバレッジ80%以上
- セキュリティファーストの設計
MIT License - 詳細は LICENSE ファイルを参照
- Vite - 高速ビルドツール・開発サーバー
- Vitest - 高速テストフレームワーク
- Shadcn/UI - モダンなUIコンポーネントライブラリ
- Tailwind CSS - ユーティリティファーストCSS
- Radix UI - アクセシブルなプリミティブコンポーネント
- Lucide - 美しいアイコンライブラリ
- dnd kit - ドラッグ&ドロップライブラリ
- Apollo GraphQL - GraphQLクライアント・サーバー
- GraphQL統合ガイド - AI機能・リアルタイム通知の使い方
- GraphQLアーキテクチャ - システムアーキテクチャ詳細
- PWA機能ドキュメント - PWA機能の詳細説明
- E2Eテストガイド - Playwrightテストの書き方
- データアクセスポリシー - IndexedDB vs GraphQLのルール
💡 Pro Tip: npm run quality:fix でコード品質を一括改善できます!