# 时光守望 **Repository Path**: YSChain/TimeGuard ## Basic Information - **Project Name**: 时光守望 - **Description**: 一个类似 ToDo 的计划方案,通过记录一段时间内所有的任务,以及每天所做的事(精确到分钟),来起到自我监督和激励的作用。 - **Primary Language**: NodeJS - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-01-07 - **Last Updated**: 2024-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TimeGuard #### 介绍 一个类似 ToDo 的计划方案,记录一段时间内所有的任务,以及每天所做的事(精确到分钟),来起到自我监督和激励的作用。 #### 软件架构 通过 Node.js 搭建简易 http 服务器,并使用 better-sqlite3 模块实现数据库操作。 #### 安装教程 1. `git clone https://gitee.com/YSChain/TimeGuard.git` 2. `npm install` 3. 如果 npm install 中出现错误,请先尝试检查你的 Node 与 npm 版本,过低可能无法安装 better-sqlite3 4. 在项目目录下新建 `config.js` 文件,填入以下内容: ```javascript module.exports = { /* 用于当服务器遇到致命错误时,发送错误信息 */ smtp_host: '', // SMTP服务器地址 smtp_port: , // SMTP服务器端口 smtp_user: '', // 用于发送的邮箱地址 smtp_pass: '', // 密码 或 授权码 err_to: '', // 用于接收的邮箱地址 /* 服务器设置 */ listenPort: 80, // 服务器监听端口 /* 安全措施 */ JWT_SECRET_KEY: '', // JWT 密钥 (推荐 512位 十六进制格式 字符串) /* 显示在页面底部的通知 (HTML) */ notice: "

通知

网站目前处于内部测试阶段,没有部署防御,请不要将网址外传。

目前,你创建的记录会被发送到除你以外的所有用户,请知悉

" }; ``` #### 使用说明 1. 一些数据库操作:在项目目录下运行 `node` ```javascript const operations = require("./operations"); /** * 在数据库中增加用户 * @param {String} account_name 账户名 * @param {String} user_name 用户真名 * @param {String} email 邮箱 * @param {String} password 明文密码 (约定默认密码为 123456) */ operations.addUser(account_name, user_name, email, password); /** * 获取所有用户 * @returns 用户列表 */ operations.getAllUser(); /** * 修改指定任务的数量 * @param {String} account_name 账户名 * @param {Number} taskID 任务ID * @param {Number} targetQuantity 更改后的数量 */ operations.changeTaskSize(account_name, taskID, targetQuantity); ``` 2. `node server.js` (默认监听 8080 端口) 3. 如果为生产环境,请在项目目录下建立 ```.env``` 文件,并在内写入```NODE_ENV=production``` 4. 进入网站 ### To Do 1. 修复部分表单提交无法使用回车(兼容) 2. 完善前端数据合法性检查 3. 补充文档 4. 完善缓存设置机制 5. 完善 `JWT` 过期机制 6. 数据库操作语句 预编译化 7. 完善接口设计和文档 8. 完善 log 输出 9. 增强接口对传入数据的检测