時間の使い方を記録・可視化するタイムトラッキングアプリケーション
- Java 17
- Spring Boot 3.2.2
- PostgreSQL 15
- JPA/Hibernate
- Flyway
- Maven
- React 18
- TypeScript 5.3
- Next.js 14
- Tailwind CSS
- Capacitor 5
- Axios
- Docker
- docker-compose
zestark-timer/
├── backend/ # Spring Bootバックエンド
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/zestark/timewatch/
│ │ │ │ ├── domain/ # エンティティ
│ │ │ │ ├── repository/ # JPA Repository
│ │ │ │ ├── service/ # ビジネスロジック
│ │ │ │ ├── controller/ # REST API
│ │ │ │ ├── dto/ # データ転送オブジェクト
│ │ │ │ ├── exception/ # 例外処理
│ │ │ │ └── config/ # 設定
│ │ │ └── resources/
│ │ │ ├── application.yml
│ │ │ └── db/migration/ # Flywayマイグレーション
│ │ └── test/ # テストコード
│ └── pom.xml
│
├── frontend/ # Next.jsフロントエンド
│ ├── src/
│ │ ├── app/ # Next.js App Router
│ │ ├── components/ # Reactコンポーネント
│ │ ├── hooks/ # カスタムフック
│ │ ├── lib/
│ │ │ ├── api/ # APIクライアント
│ │ │ └── utils/ # ユーティリティ
│ │ └── types/ # TypeScript型定義
│ ├── package.json
│ └── tsconfig.json
│
├── docker/ # Docker設定
│ ├── docker-compose.yml
│ └── Dockerfile.backend
│
└── docx/ # 設計ドキュメント
├── requirements/
├── design/
└── cording-rule/
- Docker Desktop
- Node.js 18以上(フロントエンド開発時)
- Java 17(バックエンド開発時)
cd docker
docker-compose up -dこれにより以下のサービスが起動します:
- PostgreSQL (ポート5432)
- バックエンドAPI (ポート8080)
docker exec -it zestark-timer-db psql -U timewatch_user -d timewatch -c "\dt"curl http://localhost:8080/actuator/healthcd backend
mvn clean install
mvn spring-boot:runcd frontend
npm install
npm run devブラウザで http://localhost:3000 にアクセス
cd backend
mvn test
mvn jacoco:report # カバレッジレポートcd frontend
npm run test
npm run test:coverage # カバレッジレポートGET /api/tasks- タスク一覧取得POST /api/tasks- タスク作成GET /api/tasks/{taskId}- タスク詳細取得PUT /api/tasks/{taskId}- タスク更新DELETE /api/tasks/{taskId}- タスク削除PUT /api/tasks/{taskId}/status- タスクステータス変更
POST /api/sessions/start- タイマー開始POST /api/sessions/stop- タイマー停止GET /api/sessions/running- 実行中セッション取得GET /api/sessions/{sessionId}- セッション詳細取得
詳細は /docx/design/11_api-design.md を参照
- OS時刻ベースの計測で高精度(バックグラウンド・スリープ対応)
- データベース制約による排他制御(1タスク1セッションのみ実行中を保証)
- 自動終了機能(tolerance設定による柔軟な制御)
- タスク作成・更新・削除
- ステータス管理(PENDING, RUNNING, COMPLETED, CANCELLED)
- タスクイベント履歴
- グローバル例外ハンドラによる統一的なエラーレスポンス
- フロントエンドAPIクライアントでの一元的なエラー処理
- バックエンド: Checkstyle(2スペースインデント)
- フロントエンド: ESLint + Prettier
- 命名規則:
NAMING_CONVENTION_CHECKLIST.mdに100%準拠 - 詳細は
/docx/cording-rule/rule.mdを参照
Proprietary