收起左侧

一款日历编排工具

0
回复
36
查看
[ 复制链接 ]

8

主题

9

回帖

0

牛值

江湖小虾

日历待办事项 (Calendar Todo App) - Monorepo

一个现代化的全栈待办事项管理系统,采用 Monorepo 架构,集成了交互式日历与高效的任务列表。

✨ 核心特性

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

📸 项目预览

image.png
image.png

image.png

📁 项目结构

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   # 一键启动配置

🚀 快速开始

前置要求

  • Node.js >= 20
  • pnpm >= 10

安装依赖

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

欢迎提需求

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则