开发背景:
公益项目,仅用于学习
1、提供音乐免费播放功能(接入api解析平台音乐)
2、提供日记功能
3、从项目开发中学习新技能,了解音频播放器业务开发的流程
功能介绍:
1、登录/注册模块
成本原因使用邮箱服务器实现账号注册验证
2、"喜欢","歌单","最近播放"模块
需登录才可使用,使用Redis存储
3、日记模块
需登录才可使用,考虑到日记的字符偏多,内存占用大,所以使用MongoDB存储,由用户指定一个字符密钥进行AES加密,该密钥不存储以确保数据安全
4、情绪模块
情绪设置放在首页便于快速设置,并结合当前时间段进行音乐推荐,并通过LLM接口向用户生成相应的安慰话语提供情绪价值
5、音乐,情绪,天气,相片,日记结合模块
日记存储最基础的文本或手写轨迹,用户可以选择性的添加音乐、日记中不同场景的情绪和天气以及相片,可以更加清晰地让用户记录日常,提高用户体验以及产品的独特性
6、定时关闭模块
提供15,30,45,60min关闭的快捷设置,同时支持自定义时长结束,均以min为单位,最少1min,最大1440min(24h)
7、在线反馈模块
当用户登录时反馈会自动带着用户的邮箱号,若反馈的问题或建议得以解决或采用并优化,会手动向该用户的邮箱发送感谢信以及处理完成通知
8、音乐搜索模块
使用异步请求确保多个音乐平台搜索结果快速显示
9、音乐下载模块
所有可播放的音乐都可以免费下载,进度会在一个小的播放状态面板上显示
10、音乐分享模块
允许自定义音乐名,歌词默认色,歌词高亮色以及背景色。允许添加"全屏播放"和"横屏播放"选项。创建分享后会自动保存一张带有二维码的音乐卡片图片,用户可以通过扫码识别方式在多个app上进行在线播放,在线播放提供"前往首页"和"下载app"功能,其余必要功能全都可以使用
后端初版采用flask框架,后来用fastapi框架全部功能进行重构,现已全部更新使用fastapi重新写的接口
前端使用vue3组合式开发
项目难点:
1、音乐与日记的结合让项目的架构变得更加复杂
2、全部工作都由我一人完成,开发效率时高时低,通常在UI设计与模块设计上卡住
3、日记的"手写功能"需要记录用户每一笔的轨迹,创建的json文件内存较大