Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .vscode/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"servers": {
"my-mcp-server-dd44760e": {
"url": "https://api.githubcopilot.com/mcp/",
"type": "http"
}
},
"inputs": []
}
523 changes: 523 additions & 0 deletions architecture.md

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion deliverManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from dataclasses import dataclass, field
from enum import Enum


class EventArgs:
"""イベント引数の基底クラス"""
pass
Expand Down
271 changes: 271 additions & 0 deletions features.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,271 @@
# ポモドーロタイマーアプリケーション 実装機能一覧

## 概要

本文書は、ポモドーロタイマーWebアプリケーションで実装が必要な機能の詳細一覧です。各機能にはチェックボックスを設置し、実装進捗を管理できるようにしています。

## 1. 基本タイマー機能

### 1.1 タイマー制御機能
- [ ] **タイマー開始**: 25分の作業セッション開始
- [ ] **タイマー一時停止**: 進行中のタイマーを一時停止
- [ ] **タイマー再開**: 一時停止中のタイマーを再開
- [ ] **タイマーリセット**: タイマーを初期状態(25:00)に戻す
- [ ] **タイマー完了**: 時間終了時の自動処理

### 1.2 セッション管理機能
- [ ] **作業セッション**: 25分の集中作業時間管理
- [ ] **短い休憩**: 5分の短い休憩時間管理
- [ ] **長い休憩**: 15-30分の長い休憩時間管理(4セッション後)
- [ ] **セッション自動切り替え**: 作業→休憩の自動遷移
- [ ] **セッション状態管理**: 現在のセッション種別と状態の保持

## 2. ユーザーインターフェース機能

### 2.1 タイマー表示機能
- [ ] **デジタル時計表示**: 「25:00」形式での残り時間表示
- [ ] **円形プログレスバー**: 進捗を視覚的に表示する円形UI
- [ ] **プログレス更新**: 1秒ごとのリアルタイム更新
- [ ] **状態表示**: 「作業中」「休憩中」「一時停止中」などの状態表示

### 2.2 操作ボタン機能
- [ ] **開始ボタン**: セッション開始用のプライマリボタン
- [ ] **一時停止/再開ボタン**: 動的に表示が変わるボタン
- [ ] **リセットボタン**: セカンダリスタイルのリセットボタン
- [ ] **ボタン状態管理**: タイマー状態に応じたボタンの有効/無効制御

### 2.3 統計表示機能
- [ ] **今日の完了セッション数**: 「4 完了」の表示
- [ ] **今日の合計集中時間**: 「1時間40分 集中時間」の表示
- [ ] **統計リアルタイム更新**: セッション完了時の自動更新

## 3. データ永続化機能

### 3.1 セッション記録機能
- [ ] **セッション開始記録**: 開始時刻、種別、予定時間の記録
- [ ] **セッション完了記録**: 終了時刻、実際の時間、完了状態の記録
- [ ] **セッション履歴保存**: データベースへの永続化
- [ ] **一時停止時間記録**: 一時停止の累積時間記録

### 3.2 統計データ管理機能
- [ ] **日別統計計算**: 完了セッション数、合計時間の集計
- [ ] **統計データ更新**: セッション完了時の統計自動更新
- [ ] **履歴データ取得**: 過去の統計データ取得API

## 4. リアルタイム通信機能

### 4.1 WebSocket機能
- [ ] **クライアント接続管理**: WebSocket接続の確立と維持
- [ ] **タイマー同期**: 複数タブ間でのタイマー状態同期
- [ ] **リアルタイム更新**: 1秒ごとのタイマー状態ブロードキャスト
- [ ] **接続エラー処理**: 接続断時の再接続処理

### 4.2 イベント処理機能
- [ ] **タイマーイベント**: 開始、一時停止、再開、完了、リセット
- [ ] **統計更新イベント**: セッション完了時の統計更新通知
- [ ] **エラーイベント**: エラー発生時の通知

## 5. REST API機能

### 5.1 タイマー操作API
- [ ] `POST /api/timer/start`: タイマー開始API
- [ ] `POST /api/timer/pause`: タイマー一時停止API
- [ ] `POST /api/timer/resume`: タイマー再開API
- [ ] `POST /api/timer/reset`: タイマーリセットAPI
- [ ] `GET /api/timer/status`: 現在のタイマー状態取得API

### 5.2 統計情報API
- [ ] `GET /api/stats/today`: 今日の統計情報取得API
- [ ] `GET /api/stats/history`: 履歴データ取得API
- [ ] `GET /api/sessions/recent`: 最近のセッション一覧API

## 6. 設定管理機能

### 6.1 タイマー設定
- [ ] **作業時間設定**: デフォルト25分の変更可能機能
- [ ] **短い休憩時間設定**: デフォルト5分の変更可能機能
- [ ] **長い休憩時間設定**: デフォルト15分の変更可能機能
- [ ] **長い休憩間隔設定**: 何セッション後に長い休憩にするかの設定

### 6.2 通知設定
- [ ] **ブラウザ通知**: セッション完了時のデスクトップ通知
- [ ] **音声通知**: セッション完了時のアラート音
- [ ] **バイブレーション**: モバイル端末でのバイブレーション通知

## 7. レスポンシブUI機能

### 7.1 画面サイズ対応
- [ ] **デスクトップ表示**: 1200px以上での最適化表示
- [ ] **タブレット表示**: 768px-1199pxでの適応表示
- [ ] **モバイル表示**: 767px以下での縦型表示最適化

### 7.2 インタラクション機能
- [ ] **タッチ操作対応**: モバイル端末でのタッチ操作
- [ ] **キーボード操作**: スペースキーでの開始/一時停止、Rキーでのリセット
- [ ] **ホバーエフェクト**: ボタンのホバー時視覚フィードバック

## 8. エラーハンドリング機能

### 8.1 フロントエンドエラー処理
- [ ] **WebSocket接続エラー**: 接続失敗時の再試行処理
- [ ] **API通信エラー**: HTTP通信エラー時のフォールバック
- [ ] **タイマー同期エラー**: サーバーとの時刻同期失敗時の処理

### 8.2 バックエンドエラー処理
- [ ] **データベースエラー**: DB接続失敗時のエラーレスポンス
- [ ] **バリデーションエラー**: 不正なリクエスト時のエラーメッセージ
- [ ] **セッション管理エラー**: 同時実行制御エラー処理

## 9. パフォーマンス最適化機能

### 9.1 フロントエンド最適化
- [ ] **静的ファイル圧縮**: CSS/JSの最小化
- [ ] **ブラウザキャッシュ**: 静的リソースのキャッシュ制御
- [ ] **遅延ロード**: 必要な時のみリソース読み込み

### 9.2 バックエンド最適化
- [ ] **データベース最適化**: インデックス設定と適切なクエリ
- [ ] **WebSocket最適化**: 不要な通信の削減
- [ ] **メモリ管理**: セッション情報の適切なメモリ管理

## 10. セキュリティ機能

### 10.1 基本セキュリティ
- [ ] **CSRF防護**: CSRFトークンによる不正リクエスト防止
- [ ] **XSS対策**: 入力値のサニタイゼーションとエスケープ
- [ ] **SQLインジェクション対策**: ORMによる安全なDB操作

### 10.2 入力検証機能
- [ ] **API入力検証**: リクエストパラメータのバリデーション
- [ ] **時間値検証**: 設定可能時間の範囲チェック
- [ ] **WebSocketメッセージ検証**: WebSocketデータの検証

## 11. テスト機能

### 11.1 自動テスト機能
- [ ] **単体テスト**: 各モジュールの機能テスト
- [ ] **統合テスト**: API・WebSocketの統合テスト
- [ ] **E2Eテスト**: ブラウザでの完全動作テスト
- [ ] **テストカバレッジ**: 80%以上のカバレッジ確保

## 12. 運用・監視機能

### 12.1 ログ機能
- [ ] **アクセスログ**: HTTPリクエストのログ記録
- [ ] **エラーログ**: 例外・エラーの詳細ログ
- [ ] **パフォーマンスログ**: レスポンス時間等の性能ログ

### 12.2 ヘルスチェック機能
- [ ] **アプリケーションヘルスチェック**: アプリ生存監視
- [ ] **データベースヘルスチェック**: DB接続状態監視

## 実装優先順位

### Phase 1: 基本機能 (MVP)
**目標**: 最小限の動作するポモドーロタイマー

**必須機能**:
- [ ] タイマー制御機能(開始、一時停止、リセット)
- [ ] デジタル時計表示
- [ ] 基本的なUI(ボタン、状態表示)
- [ ] セッション記録の基本機能
- [ ] 基本的なREST API

**完了基準**:
- ブラウザでタイマーが動作する
- 時間が正確にカウントダウンされる
- ボタン操作が正常に動作する

---

### Phase 2: 視覚的改善
**目標**: UIモックに近い見た目の実現

**追加機能**:
- [ ] 円形プログレスバー
- [ ] 今日の統計表示
- [ ] レスポンシブデザイン
- [ ] UIアニメーション
- [ ] 統計データの永続化

**完了基準**:
- UIがモックアップと同等の品質
- モバイル端末でも適切に表示される
- 統計情報が正しく表示される

---

### Phase 3: リアルタイム機能
**目標**: 複数タブ同期とリアルタイム体験

**追加機能**:
- [ ] WebSocket実装
- [ ] 複数タブ同期
- [ ] リアルタイム統計更新
- [ ] 接続エラー処理

**完了基準**:
- 複数タブで同期が取れる
- リアルタイムでデータが更新される
- 接続が途切れても復旧する

---

### Phase 4: 拡張機能
**目標**: ユーザビリティとカスタマイズ性の向上

**追加機能**:
- [ ] 設定管理機能
- [ ] 通知機能
- [ ] 履歴表示機能
- [ ] キーボードショートカット

**完了基準**:
- ユーザーが設定をカスタマイズできる
- 適切なタイミングで通知される
- 過去のデータを確認できる

---

### Phase 5: 品質向上
**目標**: プロダクション品質の達成

**追加機能**:
- [ ] 包括的テスト
- [ ] パフォーマンス最適化
- [ ] セキュリティ強化
- [ ] 運用機能

**完了基準**:
- テストカバレッジ80%以上
- セキュリティ要件を満たす
- 本番環境にデプロイ可能

## 進捗管理

### 全体進捗
- **総機能数**: 66機能
- **完了済み**: 0機能 (0%)
- **進行中**: 0機能 (0%)
- **未着手**: 66機能 (100%)

### フェーズ別進捗
- **Phase 1 (MVP)**: 0/10機能完了 (0%)
- **Phase 2 (視覚的改善)**: 0/8機能完了 (0%)
- **Phase 3 (リアルタイム)**: 0/8機能完了 (0%)
- **Phase 4 (拡張機能)**: 0/15機能完了 (0%)
- **Phase 5 (品質向上)**: 0/25機能完了 (0%)

## 注意事項

1. **チェックボックス更新**: 機能実装完了時は該当項目にチェックを入れてください
2. **優先順位**: Phase順に実装を進めることを推奨します
3. **依存関係**: 一部機能は前のPhaseの完了を前提としています
4. **テスト**: 各機能実装後は適切なテストを作成してください
5. **ドキュメント更新**: 実装内容に変更があった場合は本文書を更新してください

---

**作成日**: 2025年8月8日
**最終更新**: 2025年8月8日
**バージョン**: 1.0
15 changes: 15 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Fibonacci数列を計算する関数
def fibonacci(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]

fib_sequence = [0, 1]
for i in range(2, n):
next_value = fib_sequence[i - 1] + fib_sequence[i - 2]
fib_sequence.append(next_value)

return fib_sequence
Loading