# 记事簿应用 **Repository Path**: staryuetian/notebook-application ## Basic Information - **Project Name**: 记事簿应用 - **Description**: 记录簿应用 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-03 - **Last Updated**: 2025-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 记录簿应用 ## 项目简介 一款集成记事本、记账本和预存记录功能的个人管理应用,采用前后端分离架构,数据本地加密存储。 ## 技术栈 ### 前端技术 - Vue 3 (3.5.13) - Vite (5.2.11) - Element Plus (2.9.7) - Vue Router (4.5.0) - Pinia (2.1.14) ### 后端技术 - Node.js (18.18.2) - Express (4.17.1) - JWT认证 (9.0.2) - Bcrypt密码加密 (3.0.2) ### 开发工具 - TypeScript (4.5.2) - ESLint (8.56.0) - Winston日志系统 (3.17.0) - Morgan请求日志 (1.10.0) ### 数据安全 - AES-256-CBC加密 (Crypto-js 3.3.0) - 自动每日备份 (adm-zip 0.5.16) - 数据隔离存储 ## 核心功能 ### 📔 智能记事本 - **多模式录入**:支持纯文本/Markdown双模式编辑 - **分类体系**:三级分类(分类 → 章节 → 条目) - **内容检索**:支持正则表达式搜索和标签过滤 - **数据安全**: - 端到端AES加密存储 - 手动/自动备份机制(ZIP压缩包) - 修改历史版本追溯 - **扩展功能**: - 农历日期显示 - 自适应文本域高度 - 批量导出JSON/HTML ### 💰 智能记账本 - 多账户流水管理 - 消费金额统计 - 基础账单记录 - 超额金额提示 - 支持导出Excel报表 ### ⏳ 预存记录 - 事项到期提醒 - 本地记录存储 ## 接口文档 ### 认证模块 - `POST /api/login` 用户登录 - `POST /api/register` 用户注册 ### 数据操作 - `GET /notes` 获取笔记列表 - `POST /notes` 创建新笔记 - `PUT /notes/:id` 更新笔记内容 - `DELETE /notes/:id` 删除笔记 ### 系统管理 - `GET /backup` 手动触发数据备份 - `GET /restore/:version` 恢复指定版本 ## 开发环境 ### 环境要求 - Node.js ≥18.18.2 - npm ≥9.8.1 - 建议使用VS Code + Volar插件 ### 配置指南 1. 复制.env.example为.env.development和.env.production文件: ```bash cp .env.example .env.development cp .env.example .env.production ``` 2. 生成加密密钥(需安装OpenSSL): ```bash openssl rand -base64 32 ``` 3. 配置示例: ``` # 环境配置 前端 VITE_API_BASE_URL=http://localhost:7291 # 环境配置 后端 MINIO_ENDPOINT=Minio的IP MINIO_PORT=9000 MINIO_USE_SSL=false MINIO_ACCESS_KEY=Minio生成的AccessKey MINIO_SECRET_KEY=Minio生成的SecretKey MINIO_BUCKET_NAME=Minio的BucketName LOCAL_AUTH_SECRET_KEY=自己设置的密钥 ``` ## 项目结构 ``` notebook/ ├── src/ │ ├── views/ # 页面组件 │ ├── routes/ # 后端路由 │ ├── utils/ # 工具模块 │ │ ├── authUtils.ts # 认证工具 │ │ ├── dateUtils.ts # 日期处理 │ │ └── logger.ts # 日志系统 │ └── server.ts # 后端入口 ├── public/ # 静态资源 └── package.json # 依赖配置 ``` ## 快速开始 ```bash # 克隆项目 git clone https://gitee.com/staryuetian/notebook-application.git # 安装依赖 npm install # 启动前端开发服务器 npm run serve # 编译后端服务 npm run bulid-ts # 启动后端服务 node dist/server.js ``` ## 配置文件 1. 复制 `.env.example` 重命名为 `.env.development` 和 `.env.production`,根据需要修改配置。 ```bash cp .env.example .env.development cp .env.example .env.production `` 2. 配置加密密钥和存储路径: ``` # 环境配置 前端 VITE_API_BASE_URL=URL_ADDRESSVITE_API_BASE_URL=http://localhost:7291 # 环境配置 后端 MINIO_ENDPOINT=Minio的IP MINIO_PORT=9000 MINIO_USE_SSL=false MINIO_ACCESS_KEY=Minio生成的AccessKey MINIO_SECRET_KEY=Minio生成的SecretKey MINIO_BUCKET_NAME=Minio的BucketName LOCAL_AUTH_SECRET_KEY=自己设置的密钥 ``` ## 开源协议 [MIT License](LICENSE) ## 生产部署 ### Docker部署 ```dockerfile FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build EXPOSE 3000 CMD ["npm", "run", "start-ts"] ``` ### 集群部署 ```bash # 构建Docker镜像 docker build -t notebook-app . # 启动容器集群 docker-compose up -d --scale web=3 ``` ### 监控配置 ```nginx # Nginx性能监控 location /status { stub_status on; access_log off; allow 127.0.0.1; deny all; } ``` ### 后端启动 ```bash nohup node server.js > server.log 2>&1 & ``` ### Nginx配置示例 ```nginx server { listen 80; server_name example.com; location / { root /path/to/dist; try_files $uri $uri/ /index.html; } location /api { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ```