c8b789afe3c88e76071c624bf2cda1dccc864a6b
任务日历系统
一个可以给每天打勾/打圈的极简任务日历,支持多服务器、多终端同步,还自带 Docker 部署方案。
✨ 特色功能
- 三态标记:未标记 / 已完成(✓)/ 部分完成(○),一键轮换
- 多服务器同步:同一套前端,想连哪台后端就连哪台
- 自动保存:修改 0.5 秒后自动写入数据库,再也不怕刷新丢数据
- 多端布局:桌面、平板、手机都能舒舒服服地操作
- 模块化前后端:逻辑拆分清晰,方便二次开发
🚀 快速开始
方式一:Docker
docker-compose up -d
然后访问 http://localhost:3000
方式二:本地运行
npm install
npm start
同样访问 http://localhost:3000
如需自定义端口,运行前设定
PORT=xxxx即可。
🧭 使用指南
- 添加服务器:页面底部输入想连接的后端地址,点击「添加」,并从下拉框选择它
- 注册 / 登录:按提示填写信息,完成后即可自动加载个人日历
- 打勾打圈:点击某天即可循环切换状态;右上角的 Toast 会给出操作反馈
- 自动保存:系统会在短暂延迟后后台保存,提示「数据已保存」即完成
- 随时切换:切换到其他服务器/账号时,会自动同步对应数据
🏗 项目结构
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:后端监听端口,默认3000JWT_SECRET:JWT 密钥,默认简单字符串,生产环境务必更换
💡 小贴士
- 服务器列表保存在浏览器 LocalStorage,可随时增删
- 支持多个浏览器/设备同时登录同一账号,数据实时同步
- 若要重置数据,直接删除根目录下的
data.db即可(注意备份)
🧱 技术栈速览
- 后端:Node.js、Express 5、SQLite、JWT、bcryptjs
- 前端:原生 HTML/CSS/JS + 模块化组织
- 部署:Docker / Docker Compose 一键启动
Enjoy hacking! 🎉
Description
Languages
JavaScript
73%
CSS
17.9%
HTML
7.2%
Dockerfile
1.2%
Shell
0.7%