日历待办事项 (Calendar Todo App) - Monorepo
一个现代化的全栈待办事项管理系统,采用 Monorepo 架构,集成了交互式日历与高效的任务列表。
✨ 核心特性
- 📅 智能日历视图:支持按月查看任务,深度集成农历(Lunar Calendar),完美支持中国传统节气和节日。
- 📋 列表表格视图:一键切换至高效的表格模式,支持任务的快速预览、筛选与管理。
- 🏷️ 全中文化分类:内置工作、生活、学习等多种中文分类,支持自定义颜色与图标。
- 📊 多维统计分析:直观展示任务完成趋势,实时把控工作效率。
- 🎨 高级感 UI 设计:采用毛玻璃特效(Glassmorphism)、深色模式、现代化渐变色及流畅动画。
- 🐳 Docker 极速部署:采用多阶段构建与
pnpm deploy 技术,镜像体积从 1.9GB 极致缩减至约 200MB。
- 🛡️ 安全认证:基于 JWT 的用户认证体系,保障数据安全。
📸 项目预览



📁 项目结构
calendar-todo-app/
**── packages/
20: ** **── client/ # React 前端 (Vite + Tailwind CSS)
15: ** **── server/ # Express 后端 (SQLite + TypeScript)
22: **── pnpm-workspace.yaml # Monorepo 工作区配置 (PNPM Catalogs)
24: **── Dockerfile # 极致优化的多阶段构建脚本
25: **── docker-compose.yml # 一键启动配置
🚀 快速开始
前置要求
安装依赖
pnpm install
开发环境启动
# 同时运行前端和后端
pnpm dev
# 前端地址: http://localhost:3000
# 后端地址: http://localhost:3001
构建与打包
# 全局编译
pnpm build
🐳 Docker 生产部署 (推荐)
本项目采用了极致的体积优化(~200MB),并支持一键通过 Docker Compose 部署。
1. 快速启动
# 构建镜像并后台运行
docker-compose up --build -d
启动后可访问: http://localhost:3003
2. 配置文件参考 (docker-compose.yml)
您可以直接参考或复制以下配置:
version: '3.8'
services:
calendar-todo:
image: shindouhiro/calendar-todo:latest
build:
context: .
dockerfile: Dockerfile
ports:
- "3003:3001"
volumes:
- ./data:/app/data
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3001/health"]
interval: 30s
timeout: 3s
retries: 3
environment:
- NODE_ENV=production
- DB_PATH=/app/data/todo.db
3. 数据持久化 (Persistence)
为了确保您的待办事项在容器更新或重启时不丢失,项目默认开启了卷挂载(Volume Mapping):
- 宿主机目录:
./data
- 容器内路径:
/app/data
- 数据库文件:
todo.db (SQLite)
[!IMPORTANT]
部署前请确保当前目录下有 data 文件夹写权限,或者手动创建:mkdir -p data && chmod 777 data。
3. 常用管理命令
# 查看运行日志
docker-compose logs -f
# 停止并移除容器
docker-compose down
# 重启服务
docker-compose restart
📦 技术栈详情
前端 (@todo-app/client)
- 框架: React 19 + TypeScript
- 路由: TanStack Router
- 样式: Tailwind CSS (Lucide Icons)
- 日历库: date-fns + lunar-javascript (农历支持)
- 状态管理: TanStack Query / React Hooks
后端 (@todo-app/server)
- 运行环境: Node.js + tsx (Watch mode)
- 数据库: SQLite (better-sqlite3)
- 架构: RESTful API + Middleware
- 认证: JWT (jsonwebtoken) + bcrypt
欢迎提需求