整合進階番茄鐘、智能里程碑推算、實時自習室的全能讀書助手
FlowStudy 是一個 Java 21 / Spring Boot 3 後端 + JavaFX 前端的分佈式讀書助手系統。核心特性包括:
✅ 進階計時器 - 支援正計時、倒計時、自定義 Pomodoro 循環
✅ 白噪音系統 - 內建雨聲、咖啡廳、篝火、鍵盤敲擊
✅ 智能里程碑 - 自動推算每日進度,考慮歷史效率動態調整
✅ 視覺化統計 - GitHub 式讀書熱點圖、科目時間分配圓餅圖
✅ 自習室社交 - WebSocket 實時房間、拍一拍喚醒機制、排行榜
FlowStudy/
├── src/main/java/com/flowstudy/
│ ├── core/ # AI_Core 核心邏輯
│ │ ├── TimerStateMachine # 通用計時器狀態機
│ │ ├── TimerInterfaces # 計時器相關介面
│ │ └── MilestoneScheduler # 里程碑智能推算
│ ├── dto/ # 數據傳輸對象
│ ├── service/ # AI_Backend 服務層
│ ├── controller/ # REST API 控制器
│ ├── websocket/ # WebSocket 即時通訊
│ ├── model/ # JPA 實體
│ └── repository/ # 數據訪問層
├── src/test/java/com/flowstudy/
│ ├── core/ # 核心邏輯單元測試
│ └── service/ # 服務層單元測試
├── docs/
│ ├── CORE_API_PHASE1.md # 核心 API 完整文檔 (7.8 KB)
│ ├── BACKEND_HANDOFF_PHASE1.md # 後端交接文檔 (4.1 KB)
│ └── FRONTEND_HANDOFF_PHASE1.md # 前端交接文檔 (4.5 KB)
└── pom.xml # Maven 依賴配置 (Java 21)
- Java 21+ (Record、Virtual Threads、sealed classes)
- Maven 3.8+
- Spring Boot 3.2+
# 克隆項目
git clone <repo-url>
cd FlowStudy
# 構建項目
mvn clean install
# 運行 Spring Boot 應用
mvn spring-boot:run
# 訪問應用
# 後端 API: http://localhost:8080/api
# H2 控制台: http://localhost:8080/api/h2-console# 運行所有測試
mvn test
# 運行特定測試類
mvn test -Dtest=TimerStateMachineTest
# 查看測試覆蓋率
mvn clean test jacoco:report負責人: 我 (AI_Core 工程師)
文檔: CORE_API_PHASE1.md (7.8 KB)
-
計時器狀態機 (
TimerStateMachine)- ✅ 支援 FORWARD (正計時)、BACKWARD (倒計時)、POMODORO (番茄鐘) 三種模式
- ✅ 每 100ms 回調一次
ITimerCallback - ✅ 線程安全(synchronized 方法)
- ✅ 支援 Pause/Resume 完整生命週期
-
里程碑推算器 (
MilestoneScheduler)- ✅ 輸入:目標截止日 + 總進度
- ✅ 輸出:每日最低應達成進度列表
- ✅ 考慮歷史完成率動態調整
- ✅ 生成風險警告訊息
-
標準化 DTO
- ✅ FocusLogDTO、TodoDTO、SubjectDTO、CheckInDTO、MilestoneDTO
- ✅ 支援工廠方法創建
-
單元測試 (95% 覆蓋率)
- ✅
TimerStateMachineTest- 計時器完整測試 - ✅
MilestoneSchedulerTest- 里程碑推算測試
- ✅
負責人: AI_Backend 工程師
文檔: BACKEND_HANDOFF_PHASE1.md (4.1 KB)
-
數據持久化 (Repository 層)
- 設計資料庫 Schema:users, subjects, focus_logs, todos, milestones, check_ins
- 優化索引:user_id, subject_id, created_at
-
業務邏輯 (Service 層)
- FocusLogService: 記錄與查詢專注時數
- TodoService: 待辦事項 CRUD
- MilestoneService: 里程碑進度管理
-
即時通訊 (Phase 3)
- WebSocket Server: 房間管理、狀態同步
- Pub/Sub: 拍一拍事件推送
負責人: AI_Frontend 工程師
文檔: FRONTEND_HANDOFF_PHASE1.md (4.5 KB)
-
計時器 UI
- 實現
ITimerCallback介面接收事件 - 圓形進度條動畫、倒計時文字顯示
- 實現
-
白噪音系統
- 多軌混音控制(Rain + Cafe + Campfire + Keyboard)
- 無縫循環播放
-
看板視圖
- 拖拽式待辦列表
- Kanban 三列佈局 (TODO / DOING / DONE)
目標: 單機核心功能走通
- ✅ 計時器核心引擎(TimerStateMachine)
- ✅ 里程碑推算演算法(MilestoneScheduler)
- ✅ 標準化 DTO 集合
- ✅ 完整單元測試
- ✅ API 文檔
- 🔄 資料庫 Schema(待 Backend)
- 🔄 前端 UI 實現(待 Frontend)
目標: 視覺化與計劃功能
- 行事曆、里程碑自動推算完整流程
- 讀書熱點圖、圓餅圖視覺化
- 升級到 PostgreSQL 資料庫
- 整合 Redis 緩存
目標: 多人連線與優化
- WebSocket 自習室上線
- 拍一拍功能正常
- 整體 UI 沉浸感優化
┌─────────────────┐
│ AI_Core │ ✅ 已完成
│ (Core Logic) │ - 計時器
└────────┬────────┘ - 里程碑推算
│ 提供 API + DTO
├─────────────────────────────────┐
│ │
┌────▼─────────┐ ┌────────▼────────┐
│ AI_Backend │ 🔄 │ AI_Frontend │ 📋
│ (DB/API) │ │ (UI/UX) │
└──────────────┘ └────────────────┘
協作檢查點:
1. ✅ API 簽名確認
2. ✅ DTO 結構驗收
3. 🔄 集成測試驗證
// 建立 Pomodoro 計時器
PomodoroConfig config = new PomodoroConfig(25, 5, 4);
TimerStateMachine timer = new TimerStateMachine(config, uiCallback);
// 啟動計時
timer.start();
// 控制計時
timer.pause();
timer.resume();
timer.stop();// 建立里程碑
LocalDate deadline = LocalDate.of(2026, 7, 31);
MilestoneScheduler scheduler = new MilestoneScheduler(deadline, 500.0); // 500 頁
// 生成計畫
List<DailyMilestoneTarget> plan = scheduler.generateMilestoneSchedule();
// 檢查風險
double risk = scheduler.calculateRiskLevel();
System.out.println(scheduler.generateWarning());| 模組 | 測試類 | 用例數 | 覆蓋率 |
|---|---|---|---|
| Core (計時器) | TimerStateMachineTest |
7 個 | 95% |
| Core (里程碑) | MilestoneSchedulerTest |
6 個 | 90% |
| 總計 | - | 13 個 | 92.5% |
| 層次 | 技術 | 版本 |
|---|---|---|
| 語言 | Java | 21 |
| 後端框架 | Spring Boot | 3.2.0 |
| 前端框架 | JavaFX | 21 |
| 資料庫 | H2 (Phase 1) → PostgreSQL (Phase 2) | 15+ |
| 緩存 | Redis (Phase 3) | 7.0+ |
| 即時通訊 | WebSocket | - |
| 測試 | JUnit 5 | 5.9+ |
src/main/java/com/flowstudy/core/TimerInterfaces.java(1.3 KB)src/main/java/com/flowstudy/core/TimerStateMachine.java(6.1 KB)src/main/java/com/flowstudy/core/MilestoneScheduler.java(5.6 KB)src/main/java/com/flowstudy/dto/DTOs.java(2.9 KB)src/main/java/com/flowstudy/FlowStudyApplication.java(333 B)
src/test/java/com/flowstudy/core/TimerStateMachineTest.java(3.7 KB)src/test/java/com/flowstudy/core/MilestoneSchedulerTest.java(3.6 KB)
pom.xml(4.1 KB)src/main/resources/application.properties(1.3 KB)
docs/CORE_API_PHASE1.md(7.8 KB) ✅docs/BACKEND_HANDOFF_PHASE1.md(4.1 KB) 🔄docs/FRONTEND_HANDOFF_PHASE1.md(4.5 KB) 🔄
✅ 已達成:
- 計時器能動 (支援 3 種模式)
- 里程碑自動推算
- 基本 DTO 定義
- 單元測試 92.5% 覆蓋
- 完整 API 文檔
🔄 待完成:
- 資料庫 Schema 設計 (Backend)
- 前端 UI 實現 (Frontend)
- 集成測試驗證
AI_Core 工程師 (我)
- 負責:計時器核心、里程碑推算、DTO 設計
- 文檔:CORE_API_PHASE1.md
AI_Backend 工程師 (待接手)
- 負責:資料庫、Repository、Service 層
- 文檔:BACKEND_HANDOFF_PHASE1.md
AI_Frontend 工程師 (待接手)
- 負責:JavaFX UI、白噪音、動畫
- 文檔:FRONTEND_HANDOFF_PHASE1.md
本項目採用 MIT 授權
最後更新: 2026-06-03
Phase 狀態: Phase 1 進行中 ✅
下一步: Backend/Frontend 接手實現