2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00
2025-11-11 14:36:09 +08:00

任务日历系统

一个可以给每天打勾/打圈的极简任务日历,支持多服务器、多终端同步,还自带 Docker 部署方案。

特色功能

  • 三态标记:未标记 / 已完成(✓)/ 部分完成(○),一键轮换
  • 多服务器同步:同一套前端,想连哪台后端就连哪台
  • 自动保存:修改 0.5 秒后自动写入数据库,再也不怕刷新丢数据
  • 多端布局:桌面、平板、手机都能舒舒服服地操作
  • 模块化前后端:逻辑拆分清晰,方便二次开发

🚀 快速开始

方式一Docker

docker-compose up -d

然后访问 http://localhost:3000

方式二:本地运行

npm install
npm start

同样访问 http://localhost:3000

如需自定义端口,运行前设定 PORT=xxxx 即可。

🧭 使用指南

  1. 添加服务器:页面底部输入想连接的后端地址,点击「添加」,并从下拉框选择它
  2. 注册 / 登录:按提示填写信息,完成后即可自动加载个人日历
  3. 打勾打圈:点击某天即可循环切换状态;右上角的 Toast 会给出操作反馈
  4. 自动保存:系统会在短暂延迟后后台保存,提示「数据已保存」即完成
  5. 随时切换:切换到其他服务器/账号时,会自动同步对应数据

🏗 项目结构

timeline/
├── server.js            # 后端入口
├── server/
│   ├── config.js        # 基础配置
│   ├── database.js      # SQLite 连接与初始化
│   ├── middleware/
│   │   └── auth.js      # JWT 鉴权
│   ├── routes/
│   │   ├── auth.js      # 登录 / 注册 / 当前用户
│   │   └── calendar.js  # 日历数据读写
│   └── utils/
│       └── shutdown.js  # 优雅关闭处理
├── public/
│   ├── index.html
│   ├── style.css
│   └── js/
│       ├── main.js      # 前端入口
│       ├── auth.js      # 登录注册逻辑
│       ├── calendar.js  # 日历渲染与交互
│       ├── api.js       # 与后端通信
│       ├── storage.js   # 本地存储封装
│       ├── state.js     # 全局状态
│       └── toast.js     # 提示组件
├── Dockerfile
├── docker-compose.yml
├── package.json
└── README.md

⚙️ 配置项

  • PORT:后端监听端口,默认 3000
  • JWT_SECRETJWT 密钥,默认简单字符串,生产环境务必更换

💡 小贴士

  • 服务器列表保存在浏览器 LocalStorage可随时增删
  • 支持多个浏览器/设备同时登录同一账号,数据实时同步
  • 若要重置数据,直接删除根目录下的 data.db 即可(注意备份)

🧱 技术栈速览

  • 后端Node.js、Express 5、SQLite、JWT、bcryptjs
  • 前端:原生 HTML/CSS/JS + 模块化组织
  • 部署Docker / Docker Compose 一键启动

Enjoy hacking! 🎉

Description
No description provided
Readme 131 KiB
Languages
JavaScript 73%
CSS 17.9%
HTML 7.2%
Dockerfile 1.2%
Shell 0.7%