# 随记 **Repository Path**: geren_38/random-notes ## Basic Information - **Project Name**: 随记 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-20 - **Last Updated**: 2026-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 随记 一款智能记账小程序,支持 AI 自然语言记账、账单管理、统计报表和备忘录功能。 ## 技术栈 - **前端**:UniApp + Vue3 + Pinia - **后端**:Node.js / Koa2 / Sequelize / MySQL - **AI**:DeepSeek(OpenAI 兼容接口,可配置切换) - **部署**:PM2 + Nginx ## 目标平台 微信小程序 / H5 / App ## 项目结构 ``` 随记/ ├── uniapp3/ # 移动端(UniApp + Vue3) │ ├── pages/ # 页面 │ │ ├── chat/ # AI 聊天记账 │ │ ├── bill/ # 账单列表 │ │ ├── bill-detail/ # 账单详情/新增 │ │ ├── category-manage/ # 分类管理 │ │ ├── login/ # 登录 │ │ ├── register/ # 注册 │ │ ├── profile/ # 个人中心 │ │ ├── memos/ # 备忘录 │ │ └── stats-detail/# 统计详情 │ ├── components/ # 公共组件 │ ├── store/ # Pinia 状态管理 │ ├── api/ # 接口封装 │ ├── utils/ # 工具函数 │ └── styles/ # 全局样式 ├── serve/ # 后端服务(Koa2) │ ├── app.js # 入口文件 │ ├── config/ # 配置(数据库/JWT/微信/短信/LLM) │ ├── database/ # 数据库连接 & 同步 │ ├── models/ # 数据模型(User/Category/Bill/Memo/SmsLog) │ ├── middleware/ # 中间件(auth/error-handler/response/validate) │ ├── routes/ # 路由 │ ├── controllers/ # 控制器 │ ├── services/ # 业务逻辑 │ ├── utils/ # 工具类 │ └── scripts/ # 种子脚本 ├── nginx.conf # Nginx 配置 └── docs/ # 文档 ``` ## 功能模块 - **AI 记账** — 输入自然语言(如"今天买橘子花了25块"),自动解析为结构化账单 - **手动记账** — 手动填写金额、分类、日期 - **账单管理** — 列表筛选、分页、收支统计 - **分类管理** — 系统默认 + 用户自定义分类 - **统计报表** — 日/月汇总、分类占比、趋势分析 - **备忘录** — 增删改查、搜索、置顶 - **多方式登录** — 账号密码 / 微信小程序 / 手机验证码 ## 本地开发 ### 后端 ```bash cd serve npm install cp .env.development .env # 修改数据库等配置 npm run dev ``` ### 前端 ```bash cd uniapp3 npm install ``` 使用 HBuilderX 打开 `uniapp3` 目录,运行到微信小程序或浏览器。 ## 生产部署 ### 1. 服务器环境要求 - Node.js >= 20 - MySQL 5.7+ - PM2 - Nginx ### 2. 拉取代码 ```bash # 首次部署 git clone <仓库地址> /usr/local/project/suiji/random-notes # 后续更新 cd /usr/local/project/suiji/random-notes git pull origin master ``` ### 3. 部署后端 ```bash cd serve npm install pm2 start ecosystem.config.js --env production ``` ### 4. PM2 常用命令 ```bash pm2 list # 查看所有服务状态 pm2 logs suiji # 查看日志 pm2 logs suiji --err --lines 50 # 查看错误日志(最近50行) pm2 restart suiji # 重启服务 pm2 stop suiji # 停止服务 pm2 delete suiji # 删除服务 pm2 describe suiji # 查看服务详细信息 pm2 monit # 实时监控面板 ``` 重新部署时: ```bash cd serve rm -rf node_modules package-lock.json npm install pm2 delete suiji pm2 start ecosystem.config.js --env production ``` ### 5. Nginx 反向代理 参考项目根目录 `nginx.conf`,将域名代理到后端端口。 ### 6. 环境变量 后端通过 `.env.production` 配置环境变量,主要包括: | 变量 | 说明 | |------|------| | DB_HOST | 数据库地址 | | DB_PORT | 数据库端口 | | DB_NAME | 数据库名 | | DB_USER | 数据库用户 | | DB_PASS | 数据库密码 | | JWT_SECRET | JWT 密钥 | | LLM_BASE_URL | LLM 接口地址 | | LLM_API_KEY | LLM API Key | | LLM_MODEL | LLM 模型名称 | ## API 接口 | 模块 | 路径 | 说明 | |------|------|------| | 认证 | /api/auth | 注册、登录、微信登录、短信登录 | | 账单 | /api/bills | CRUD、列表筛选、分页汇总 | | 分类 | /api/categories | 列表查询、增删改 | | 备忘录 | /api/memos | CRUD、搜索、置顶 | | 统计 | /api/stats | 总览、日/月统计、分类占比、趋势 | | AI 记账 | /api/chat/bill | 自然语言记账 | ## 数据库表 | 表名 | 说明 | |------|------| | users | 用户(支持密码/微信/手机登录) | | categories | 分类(系统默认 + 用户自定义) | | bills | 账单(收支记录) | | memos | 备忘录 | | sms_logs | 短信验证码记录 |