我一直以来都希望有一个足够详细的scheduling和calendar的工具,但是事实上一直以来都没找到合适的,目前的工具大都特别简单,只能简单的做一些记录。 我目前实现的版本是基于excel做的,信息量足够了,但是模板一旦定义好,信息之间的串联就很难做
- 实现足够信息密度的软件
- 可以自定义页面等等,并且可以串联统计
- 支持不同尺度的可视化(日、周、月、年)
- 风格设置为两种:极客风和极简风格,可以自己点击转换
- 后端:FastAPI + SQLAlchemy + SQLite
- 前端:React + TypeScript + Tailwind CSS
- 开发工具:uv (Python 包管理)
- 代码质量:Ruff (格式化和linting)
AgentCalendar/
├── backend/ # 后端 API 服务
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── core/ # 数据库配置
│ │ └── models/ # 数据模型
│ ├── run.py # 后端启动脚本
│ └── seed_data.py # 示例数据生成
├── frontend/ # 前端 React 应用
│ └── src/
│ ├── components/
│ └── App.tsx
├── start.py # 统一启动脚本
└── pyproject.toml # Python 项目配置
- 详细时间段管理: 支持按小时粒度的日程安排(7:00-24:00)
- 双主题切换: 极客风格和极简风格一键切换
- 多视图模式: 支持日、周、月视图
- 数据统计: 生产力评分、完成状态统计
- 响应式设计: 适配不同屏幕尺寸
- 使用 uv 进行 Python 包管理
- 使用 Ruff 进行代码格式化和质量检查
- 遵循 PEP 8 代码规范
- TypeScript 严格模式开发
经过5轮系统性测试和迭代修复,完全解决了日视图编辑数据不保留的关键问题:
-
后端日期查询修复 (
backend/app/api/calendar.py)- 修复DateTime存储与Date查询不匹配问题
- 使用
func.date()确保正确的日期比较 - 添加
CalendarEventUpdate模型支持部分字段更新
-
前端状态管理优化 (
frontend/src/components/)- 统一使用
selectedDate替代分散的日期状态 - 修复视图切换时的日期状态不一致
- 改进错误处理机制
- 统一使用
-
API接口完善
- 实现真正的部分更新,避免覆盖现有数据
- 优化错误传播机制
- 改进查询性能
- 使用Playwright进行端到端测试
- 通过5轮迭代测试确保功能稳定
- 验证数据持久化和视图切换功能
- 日视图编辑: ✅ 完全正常
- 数据持久化: ✅ 视图切换后数据保持
- API稳定性: ✅ 查询和更新功能正常
- 代码质量: ✅ 通过Ruff检查和格式化