Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐾 Discipline Dimo — 自律的迪莫

一个会陪你养成好习惯的桌面小宠物。

迪莫会像真正的伙伴一样,在桌面上呼吸、眨眼、对你做出不同反应。 双击它就能打开你的专属习惯打卡网页,记录每日坚持,积攒积分,兑换愿望。


📦 项目结构(简化版)

Discipline-Dimo/
├── electron/              # 悬浮球相关代码(main.js、floating.html、迪莫表情图片)
├── public/                # 打卡网页前端(HTML、CSS、JS、图片)
├── server.js              # 后端服务(Express + SQLite)
├── database.js            # 数据库初始化和操作封装
├── package.json           # 依赖管理
└── README.md              # 你现在看到的文件

✨ 功能详解

🎈 迪莫悬浮球交互规则

你的操作 迪莫的反应 说明
单击头像 眨眼(wink) 仅表情,不打开主窗口
双击头像 开心表情 + 打开主界面 打开打卡网页
按住并拖动头像 惊讶表情 按住超过 0.2 秒并移动时触发
闲置 10 秒不操作 打哈欠(犯困) 任意操作都会唤醒
呼吸、自动眨眼 一直持续 每 4 秒自动眨眼一次

此外,迪莫还会:

  • 自动眨眼(每 4 秒一次)
  • 持续呼吸动画(轻微缩放循环)

整体会像真正的小伙伴一样陪伴你。


📅 打卡网页功能

  • 每日打卡 点击“今日打卡”按钮,增加连续天数和积分。

  • 多 Flag 系统 可以同时设立多个目标,例如:

    • 运动:每天跑步 3 公里
    • 英语:每天背 50 个单词

    每个 Flag 都有专属鼓励语,完成后会点亮地图里的里程碑。

  • 愿望与兑换 使用积分兑换:

    • 一杯奶茶
    • 一顿饭
    • 一个愿望

    愿望需要先提交,再由你手动兑换。

  • 积分奖励机制

    • 每次打卡:+1 积分
    • 连续 7 天:额外 +1 积分奖励
  • 日历视图 查看每日打卡记录,已打卡日期会用铅笔画风圈起来。

  • 里程碑地图 每完成一个 Flag,就会点亮地图中的一个区域。

  • PushPlus 微信提醒 在“我的”页面配置你的 PushPlus Token 后:

    • 每晚 22:00
    • 如果当天还没打卡
    • 会自动收到微信提醒

🔐 用户系统

支持以下功能:

  • 注册 / 登录(用户名 + 密码)

  • 修改密码

  • 上传头像(jpg/png/gif,最大 2MB)

  • 用户数据完全独立:

    • 打卡记录
    • 积分
    • Flag
    • 愿望
    • 头像

⚠️ 当前密码为纯文本暂存,请勿使用重要密码。


🚀 如何安装和运行

前提条件

需要提前安装:

  • Node.js(16 或以上版本)
  • npm(Node.js 自带)

下载地址:


步骤 1:获取代码

打开终端执行:

git clone https://github.com/CyrusHuang-coder/Discipline-Dimo.git
cd Discipline-Dimo

步骤 2:安装依赖

npm install

会自动安装:

  • Express
  • Electron
  • SQLite
  • 以及其他依赖库

步骤 3:启动应用

npm start

终端会输出:

✅ 服务已启动,端口:8080
[后端] ...

随后桌面会出现迪莫悬浮球。


步骤 4:开始使用

  1. 双击迪莫

  2. 打开打卡网页

  3. 注册账号(数据保存在本地电脑)

  4. 开始:

    • 打卡
    • 立 Flag
    • 积攒积分
    • 兑换愿望

步骤 5:关闭应用

在终端按:

Ctrl + C

即可关闭后端和悬浮球。


🧠 如何保证应用一直正常运行?

⚠️ 必须保持终端开启

npm start 启动的是命令行进程。

如果关闭终端窗口,应用会一起退出。

推荐做法

  • 最小化终端窗口
  • 不要关闭它

如果想“双击图标直接运行”

你需要将应用打包成:

  • macOS:.app
  • Windows:.exe

打包命令:

npm run dist

生成文件位于:

dist/

里面会生成:

  • DMG 安装包
  • EXE 安装包

⚠️ 注意: 打包后可能出现图片路径问题,请查看后面的常见问题。


端口冲突问题

如果 8080 端口被占用:

修改 server.js 中的:

PORT

例如改为:

3000

然后重新运行项目。


数据库文件说明

首次运行会自动创建:

data.db

位置:

项目根目录

注意事项:

  • 不要删除它
  • 否则所有数据会丢失

如果需要迁移数据:

只需要复制 data.db 到新电脑即可。


❓ 常见问题与解答

1. 运行 npm start 提示:

concurrently: command not found

原因

依赖未正确安装。

解决办法

执行:

npm install

等待安装完成后重新运行。


2. 迪莫显示成文字,而不是图片

原因

图片缺失或路径错误。

解决办法

确保:

public/images/

目录下存在:

dimo.png
dimo-happy.png
dimo-surprised.png
dimo-sleepy.png
dimo-wink.png

如果没有:

electron/ 文件夹复制一份过去。


3. 双击迪莫无法打开网页

原因

后端未启动或端口错误。

解决办法

检查终端是否出现:

✅ 服务已启动,端口:8080

如果没有:

  • 可能端口被占用
  • 或服务启动失败

可以修改端口后重新启动。


4. 打卡后积分没有增加

原因

数据库写入失败。

解决办法

检查:

  • 终端是否有红色报错
  • data.db 是否存在
  • 是否有写入权限

5. 如何修改密码或头像?

进入:

“我的”页面

即可:

  • 修改密码
  • 上传头像

头像会保存在:

public/uploads/avatars/

6. 如何迁移到另一台电脑?

复制整个项目文件夹(包括 data.db)。

然后在新电脑执行:

npm install
npm start

即可继续使用。


7. 打包后迪莫图片不显示

原因

Electron 打包后静态资源路径发生变化。

建议

优先使用:

npm start

方式运行。

如果必须打包,请参考:

  • Electron 静态资源路径配置方案

📄 许可证

本项目采用 MIT License。

你可以自由:

  • 使用
  • 修改
  • 分发

⚠️ 注意:

迪莫形象版权归原作者所有,请勿用于商业用途。


🙏 致谢

  • 《洛克王国》迪莫形象(仅供个人学习使用)
  • PushPlus 提供免费推送服务
  • 所有开源库的贡献者

🌟 给个星星吧

如果你喜欢这个项目,欢迎在 GitHub 上点 ⭐,也欢迎提交 Issue 和 PR!

祝你打卡愉快,和迪莫一起成为自律的人! 🎈

About

🐾 桌面悬浮宠物「自律的迪莫」—— 习惯打卡助手。双击打开打卡网页,拖拽、单击、闲置都会触发不同可爱表情。支持多Flag、愿望兑换、积分奖励和 PushPlus 提醒。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages