一个集成了Claude Code的自定义GraphQL时间跟踪器的时间报告系统,使开发者能够通过自然语言命令自动或手动记录编码任务所花费的时间。
三步启动:
# 1. 克隆仓库
git clone https://github.com/YOUR_USERNAME/time-reporting-system.git
cd time-reporting-system
# 2. 登录Azure并设置环境
az login
./setup.sh
source env.sh
# 3. 部署全栈(数据库 + API)
/deploy
就这样! 认证使用Azure Entra ID:
az login 使用您的Azure账户进行认证./setup.sh 验证Azure认证 → 创建env.shsource env.sh 导出环境变量到shellAzureCliCredential自动获取令牌100% Azure AD认证 - 安全且可审计!
本项目允许您:
Claude Code (自然语言)
↓ stdio (JSON-RPC)
C# MCP服务器 (控制台应用 ~200行!)
↓ HTTP/GraphQL
C# GraphQL API (ASP.NET Core + HotChocolate)
↓ Entity Framework
PostgreSQL数据库
组件:
总计: 65个任务,约58-72小时
详细的部署说明,请参阅部署指南。
要贡献或扩展系统:
# 1. 跟随任务索引
open docs/TASK-INDEX.md
# 2. 阅读任务指南
cd docs/tasks/
# 3. 运行测试
/test
# 4. 构建和部署
/build
/deploy
一旦实现,您可以:
用户: "记录今天在INTERNAL项目上花费了8个小时的开发工作"
Claude Code: "时间条目创建成功!条目ID: abc-123, 状态: NOT_REPORTED"
用户: "显示本周的所有时间条目"
Claude Code: "找到5个条目:
1. INTERNAL - 开发 - 8.0小时 (10月21日)
2. CLIENT-A - 修复错误 - 6.5小时 (10月22日)
..."
用户: "将昨天的条目从INTERNAL移到CLIENT-A特性开发"
Claude Code: "条目已移至CLIENT-A - 特性开发"
用户: "提交我的所有时间条目以供审批"
Claude Code: "提交了5个时间条目以供审批"
claude-code-time-reporting/
├── .claude/ # Claude Code配置
│ ├── commands/ # 自定义斜杠命令
│ └── hooks/ # 预bash和护栏钩子
├── docs/ # 文档
│ ├── adr/ # 架构决策记录
│ ├── integration/ # 集成指南
│ ├── prd/ # 产品需求文档
│ ├── tasks/ # 分阶段实现指南
│ ├── workflows/ # 流程测试文档
│ ├── ARCHITECTURE.md # 主架构文档
│ ├── API.md # GraphQL API参考
│ ├── DEPLOYMENT.md # 部署指南
│ └── USER_GUIDE.md # 自然语言命令用户指南
├── db/
│ └── schema/ # SQL模式和种子数据
├── scripts/ # 实用脚本
│ └── generate-token.sh # 令牌生成脚本
├── tests/ # 测试文件
│ ├── e2e/ # 端到端测试场景
│ └── integration/ # 集成测试脚本
├── TimeReportingApi/ # C# GraphQL API ✅
├── TimeReportingApi.Tests/ # API单元测试 ✅
├── TimeReportingMcp/ # C# MCP服务器 ✅
├── TimeReportingMcp.Tests/ # MCP服务器单元测试 ✅
├── TimeReportingSeeder/ # 数据库播种器 ✅
├── TimeReportingAnalyzers/ # Roslyn分析器 ✅
├── docker-compose.yml # 容器编排
├── Directory.Build.props # 共享MSBuild属性
├── Directory.Packages.props # 中央包管理
├── setup.sh # 设置脚本(生成env.sh)
├── run-mcp.sh # MCP服务器包装脚本
├── .env.example # 环境变量模板
├── .mcp.json # MCP服务器配置
└── README.md # 此文件
注意:env.sh(由setup.sh生成)包含秘密信息,并被.gitignore忽略
.graphql操作文件生成C#客户端代码没有Node.js,没有TypeScript - 只有C#! 🎉
TimeEntry - 个别时间日志记录
Project - 可用项目
ProjectTask - 每个项目允许的任务
ProjectTag - 每个项目元数据标签(带有TagValue允许值)
状态: 生产就绪!所有65个任务已完成(100%)
文档:
遵循基于任务的工作流程:
[您的许可在这里]
对于问题或问题:
👉 从这里开始: 部署指南
👉 从这里开始: 任务索引
阶段12完成 - 完整的文档套件!