"星语心笺"是一款基于Web端的轻量级心灵纸条生成器。系统通过云服务API生成个性化正向文案,结合用户设置的星座、MBTI人格类型和心情,创造出独特且温暖的心灵文字。用户可观赏精美的生成动画,并能自由调整样式、保存和分享结果。
「心笺一瞬,暖意自生」
- "心笺"呼应纸条的治愈属性,强调情感传递
- "一瞬"体现生成内容的即时性与轻量化
- "暖意自生"传递无需用户深度输入的自动化设计,自然唤醒内心温暖
「Soul Notes, Brighter Moments」
- "Soul Notes"直指心灵纸条的深度与个性化
- "Brighter Moments"强调通过正向内容点亮用户的日常瞬间
- 简洁押韵,易传播且富有画面感
- 基于用户选择的星座、MBTI人格类型生成个性化内容
- 支持输入emoji或文字表达当前心情
- 根据设备时间适配不同时段的文案风格
- 中文/中英双语输出选项
- 纸条生成过程的显像动画效果,从模糊到清晰
- 多种纸条背景风格选择
- 字体大小调整功能
- 暗黑模式支持
- 收藏喜欢的纸条内容
- 导出为高质量图片
- 一键分享到社交媒体
- 基于浏览器指纹的无感用户识别,无需登录即可保存个人数据
- 基于邀请码的访问控制
- 管理员后台统计和监控
- 可限制单个邀请码的使用次数
- 自定义邀请码前缀功能
- 前端框架: Vue.js 3 + Composition API
- 构建工具: Vite
- 动画效果: GSAP
- 样式设计: 原生CSS + 变量
- 图标支持: Font Awesome
- HTTP请求: Axios
- 图片导出: html2canvas
- 状态管理: Vue Reactivity + LocalStorage
- 路由管理: Vue Router
- 用户识别: FingerprintJS(浏览器指纹识别)
- 运行环境: Node.js
- 服务框架: Express.js
- 数据存储: MongoDB
- 身份验证: JWT
- API文档: Swagger
- 日志管理: Winston
/SoulNote
├── public/ # 静态资源
│ └── favicon.ico # 网站图标
├── src/ # 源代码
│ ├── assets/ # 资源文件
│ │ ├── onboarding-welcome.svg
│ │ └── onboarding-complete.svg
│ ├── components/ # 组件
│ │ └── NoteCard.vue # 纸条卡片组件
│ ├── composables/ # 组合式函数
│ │ ├── useNoteAnimation.js # 动画相关
│ │ └── useNoteExport.js # 导出相关
│ ├── pages/ # 页面组件
│ │ ├── HomePage.vue # 主页面
│ │ ├── OnboardingPage.vue # 引导页
│ │ ├── SavedNotesPage.vue # 收藏页
│ │ ├── SettingsPage.vue # 设置页
│ │ └── WelcomePage.vue # 欢迎页
│ ├── router/ # 路由配置
│ │ └── index.js
│ ├── services/ # 服务
│ │ ├── aiService.js # AI生成服务
│ │ └── storageService.js # 存储服务
│ ├── styles/ # 样式
│ │ └── main.css # 主样式文件
│ ├── App.vue # 应用根组件
│ └── main.js # 应用入口
server/
├── controllers/ # API 控制器
│ └── noteController.js # 处理笔记生成请求
├── services/ # 业务逻辑服务
│ ├── aiService.js # AI API 调用服务
│ ├── promptService.js # 提示词构建服务
│ └── modules/ # 提示词模块
│ ├── constants.js # 常量定义
│ ├── apiService.js # API服务函数
│ ├── fortuneUtils.js # 运势相关工具
│ ├── personalityUtils.js # 性格特质工具
│ ├── promptBuilder.js # 提示词构建器
│ ├── themeUtils.js # 主题工具
│ ├── timeUtils.js # 时间相关工具
│ └── index.js # 模块导出
├── utils/ # 工具函数
│ ├── constants.js # 全局常量定义
│ └── logger.js # 日志工具
├── routes/ # 路由定义
│ └── noteRoutes.js # 笔记生成相关路由
├── data/ # 数据文件夹 (已有)
├── middleware/ # 中间件
│ ├── auth.js # 认证中间件
│ └── rateLimiter.js # 请求限制中间件
├── config/ # 配置
│ └── config.js # 环境配置
├── index.js # 入口文件 (已有)
└── package.json # 项目配置 (已有)
├── .env.example # 环境变量示例
├── index.html # HTML入口
├── package.json # 依赖配置
└── vite.config.js # Vite配置
- 欢迎页面: 展示应用介绍和功能亮点
- 引导设置: 引导用户完成必要的个人设置(星座、MBTI等)
- 主界面: 提供参数调整、纸条生成和样式设置功能
- 生成动画: 展示纸条内容从模糊到清晰的过程
- 收藏页面: 管理已保存的纸条内容
- 设置页面: 调整应用参数和个人偏好
- 零输入魔法: 简单选择参数,一键获得专属文案
- 优雅动效: 精心设计的生成动画提供仪式感体验
- 简约美学: 以纸张质感为基础的界面设计,清新自然
- 个性定制: 多种背景和字体风格,满足不同审美需求
- 深度关怀: 基于星座和MBTI的文案更贴合个人特质
-
安装依赖
npm install
-
配置环境变量
- 复制
.env.example为.env - 设置您的API密钥和其他配置项
- 复制
-
启动开发服务器
npm run dev
-
构建生产版本
npm run build
- 使用
esbuildminifier提高构建速度 - 路由懒加载减少初始加载体积
- 资源预加载优化用户体验
- API密钥应通过环境变量注入
- 敏感操作建议使用服务端代理
- 可选择Netlify/Vercel等平台的Serverless Functions
- 安装依赖
npm install- 启动开发服务器
npm run dev- 进入后端目录
cd server- 安装依赖
npm install- 启动后端服务
npm run dev- 生产环境启动
npm start- 在
server/.env文件中设置管理员密钥
ADMIN_KEY=your_admin_key
- 使用API生成新的邀请码
POST http://localhost:4000/api/generate-invite-code
Content-Type: application/json
{
"adminKey": "your_admin_key",
"maxUses": 100,
"prefix": "SOUL"
}
- 查看统计数据
GET http://localhost:4000/api/stats?key=your_admin_key
- 启动后端服务后,访问以下URL进入管理面板
http://localhost:4000/admin
"星语心笺"是一个开源项目,欢迎贡献代码和提出建议。
本项目采用 MIT 许可证。详情请见 LICENSE 文件。
-
ParamsPanel.vue
- 实现基于概率和权重的智能搜索系统,支持模糊匹配和语义相关性搜索
- 添加情感关键词映射表,将用户输入与表情进行智能匹配
- 使用Levenshtein距离算法计算字符串相似度,提高搜索准确性
- 实现搜索结果按相关性排序,并按分类分组显示
- 优化了毒舌模式的样式和交互体验
- 增强移动端适配和响应式设计
-
NoteStyleCustomizer.vue
- 新增自定义样式定制器,提供更丰富的笔记样式选项
- 添加多种布局选择:上图下文、下图上文、纯纸条、图片背景等
- 支持字体、颜色、间距、边框等详细样式调整
- 增加实时预览功能,所见即所得
-
NoteCard.vue
- 重构卡片渲染逻辑,支持多种布局方式
- 优化图片背景层实现,提升渲染性能
- 新增社群二维码展示功能
- 增强样式自定义能力,支持更多自定义属性
-
ImagePreviewModel.vue
- 全新的图片预览与导出组件
- 支持多种导出格式选择(PNG、JPG、WEBP)
- 增加图片尺寸和质量控制选项
- 添加透明背景支持
- 优化导出流程和用户体验
-
HomeView.vue 和 SavedNotesPage.vue
- 整合样式定制器和图片预览功能
- 改进导出和分享流程
- 优化笔记管理和查看体验
-
ParamsPreview.vue
- 增强模式切换效果
- 优化UI/UX设计,提高操作流畅度
- 改进小屏幕设备适配
-
智能搜索系统
- 基于权重的表情匹配算法,根据相关性得分排序结果
- 支持直接关键词映射,如"可恶"→😡、"笑死"→🤣
- 情感分析与语义理解,识别输入词与情感类别的关系
- 相似度计算与多层次搜索策略,提高搜索结果准确性
- 结果分组与排序优化,改进用户体验
-
样式定制增强
- 扩展自定义样式选项,支持更多布局和设计风格
- 优化样式继承和应用逻辑,提高定制灵活性
- 增加更多预设模板,满足不同使用场景
-
导出功能升级
- 重构图片导出系统,支持多种格式和质量设置
- 优化Canvas渲染,提高导出图片质量
- 增加批量导出能力
- 改进分享功能,支持更多社交平台
-
UI/UX优化
- 全面优化移动端适配和响应式设计
- 改进动画效果和交互反馈
- 增强暗黑模式和毒舌模式的视觉效果
- 提升整体应用性能和加载速度
{ number: '1.6.0', date: '2024-03-17', updates: [ { type: 'feature', items: [ '实现基于概率和权重的智能搜索系统,大幅提升表情查找体验', '新增自定义样式定制器,支持多种布局和详细样式调整', '升级图片导出系统,支持多种格式、尺寸和质量选项', '添加社群二维码展示功能,促进用户交流' ] }, { type: 'improvement', items: [ '优化移动端适配和响应式设计,提升跨设备使用体验', '改进UI/UX设计,增强视觉效果和交互流畅度', '提升应用性能和加载速度,优化资源使用效率', '增强毒舌模式的样式和交互体验' ] }, { type: 'fix', items: [ '修复在特定设备上的布局异常问题', '解决夜间模式下某些元素对比度不足的问题', '修复图片导出过程中可能出现的内存泄漏', '解决搜索结果有时不准确的问题' ] } ] }