cursor done.

This commit is contained in:
2025-11-11 14:36:09 +08:00
parent 7a5fb889c5
commit 9b1eb6cafd
27 changed files with 4748 additions and 552 deletions

View File

@@ -1,44 +1,81 @@
# 任务日历系统
一个简洁美观的任务日历系统,可以标记每一天的任务完成状态
一个可以给每天打勾/打圈的极简任务日历,支持多服务器、多终端同步,还自带 Docker 部署方案
## 功能特性
## ✨ 特色功能
- **三态标记**:未标记 / 已完成(✓)/ 部分完成(○),一键轮换
- **多服务器同步**:同一套前端,想连哪台后端就连哪台
- **自动保存**:修改 0.5 秒后自动写入数据库,再也不怕刷新丢数据
- **多端布局**:桌面、平板、手机都能舒舒服服地操作
- **模块化前后端**:逻辑拆分清晰,方便二次开发
- 📅 **日历视图**:清晰的月份日历展示
-**任务标记**:支持三种状态
- ✓ 任务已完成(绿色)
- ○ 任务部分未完成(橙色)
- 未标记(灰色)
- 💾 **数据保存**:使用浏览器 localStorage 自动保存标记数据
- 🎨 **简洁界面**:现代化的 UI 设计,响应式布局
- 🖱️ **便捷操作**:点击日期即可切换标记状态
## 🚀 快速开始
## 使用方法
### 方式一Docker
```bash
docker-compose up -d
```
然后访问 `http://localhost:3000`
1. 直接在浏览器中打开 `index.html` 文件
2. 点击日历上的日期来切换标记状态:
- 第一次点击:标记为"已完成"(✓)
- 第二次点击:标记为"部分完成"(○)
- 第三次点击:清除标记
3. 使用左右箭头按钮切换月份
4. 点击"今天"按钮快速回到当前月份
### 方式二:本地运行
```bash
npm install
npm start
```
同样访问 `http://localhost:3000`
## 文件结构
> 如需自定义端口,运行前设定 `PORT=xxxx` 即可。
## 🧭 使用指南
1. **添加服务器**:页面底部输入想连接的后端地址,点击「添加」,并从下拉框选择它
2. **注册 / 登录**:按提示填写信息,完成后即可自动加载个人日历
3. **打勾打圈**:点击某天即可循环切换状态;右上角的 Toast 会给出操作反馈
4. **自动保存**:系统会在短暂延迟后后台保存,提示「数据已保存」即完成
5. **随时切换**:切换到其他服务器/账号时,会自动同步对应数据
## 🏗 项目结构
```
timeline/
├── index.html # 主页面
├── style.css # 样式文件
├── app.js # 应用逻辑
└── README.md # 说明文档
├── 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_SECRET`JWT 密钥,默认简单字符串,生产环境务必更换
- 纯 HTML/CSS/JavaScript 实现,无需构建工具
- 使用 localStorage 保存数据,刷新页面后数据不会丢失
- 响应式设计,支持移动端和桌面端
## 💡 小贴士
- 服务器列表保存在浏览器 LocalStorage可随时增删
- 支持多个浏览器/设备同时登录同一账号,数据实时同步
- 若要重置数据,直接删除根目录下的 `data.db` 即可(注意备份)
## 浏览器兼容性
## 🧱 技术栈速览
- **后端**Node.js、Express 5、SQLite、JWT、bcryptjs
- **前端**:原生 HTML/CSS/JS + 模块化组织
- **部署**Docker / Docker Compose 一键启动
支持所有现代浏览器Chrome、Firefox、Safari、Edge 等)
Enjoy hacking! 🎉