这是一个基于 Expo + React Native的个人时间管理Agent应用,当前以归档开源形式提供。
My Time App 聚焦“学习场景下的时间管理”,将任务管理、课程安排、学习反馈与成长面板整合到同一个移动端应用中。
核心目标:
- 把每天的学习计划结构化(任务 + 课程)
- 让执行结果可量化(完成情况、时长统计、趋势图表)
- 用 AI 辅助提取与排程,降低录入和整理成本
- 任务与课程双模型管理
- 日历条、列表视图、多种交互组件
- 可扩展的数据存储层(本地 + Supabase)
- 竞赛成长面板(CP)
- 英语学习成长面板
- 结合行为记录做阶段统计和可视化
- 个人资料与设置
- 每日/周维度学习时长统计
- 趋势图与基础成就数据展示
- 全局 AI 助手入口
- 文本解析、课表/计划理解、排程辅助
- 通过 prompts + service 分层组织,便于替换模型与供应商
- Expo 54
- React Native 0.81
- React 19
- TypeScript
- Expo Router
- Zustand
- i18next + react-i18next
- Supabase
- app/:页面路由与 Tab 结构
- components/:通用 UI 与功能组件
- hooks/:跨页面逻辑复用
- modules/:业务模块(auth、schedule、ai、cp、english、timer、themes)
- locales/:中英文文案字典
- utils/:基础能力(i18n、supabase、audio、secrets)
- scripts/:开发辅助脚本
- supabase_setup.sql / cleanup_zombies.sql / refactor_db.sql:数据库脚本
- Node.js 20 及以上(推荐 LTS)
- npm 10 及以上
- Expo CLI(通过 npx 使用即可)
- 可用的 Supabase 项目(如需云端能力)
npm install复制 .env.example 为 .env,然后按需填写。
可选云端数据库:
- EXPO_PUBLIC_SUPABASE_URL
- EXPO_PUBLIC_SUPABASE_ANON_KEY
可选(部分功能增强):
- EXPO_PUBLIC_DEEPSEEK_API_KEY
- EXPO_PUBLIC_BAIDU_API_KEY
- EXPO_PUBLIC_BAIDU_SECRET_KEY
- EXPO_PUBLIC_BACKEND_URL(历史兼容字段,可不配置)
首次接入 Supabase 时,执行项目中的 SQL 脚本:
- supabase_setup.sql(基础初始化)
- refactor_db.sql(结构重构)
- cleanup_zombies.sql(数据清理辅助)
请先阅读脚本注释,再在自己的数据库环境执行。
npm run start常用命令:
npm run android
npm run ios
npm run web
npm run lint- 默认语言:中文(zh)
- 支持语言:中文(zh)、英文(en)
- 文案来源:locales/zh.json 与 locales/en.json
- 语言设置:utils/i18n.ts + 个人设置页
新增文案时建议:
- 同步更新中英文 key
- 避免硬编码 UI 文案
- 保持命名按模块聚合(如 profile.settingsModal.xxx)
- 新增业务优先放入 modules/ 下独立目录
- UI 与状态逻辑分离:组件只负责展示,复杂逻辑放 hooks/store
- AI 能力走 modules/ai 的 prompts + services 结构,便于审计和替换
- 涉及密钥与敏感信息,一律使用环境变量或远端 secrets 管理
- 先检查 .env 是否完整
- 执行 npm install 后重启 Expo
- 清理缓存:npx expo start -c
- 确认 Supabase URL 和匿名 Key 正确
- 确认已执行初始化 SQL
- 检查表结构是否与当前代码一致
- 确认 key 在两个 locale 文件都存在
- 重启 Metro 或清理缓存后重试
- 仓库不包含真实生产凭证
- 不要提交任何 .env、私钥、服务账号信息
- 生产部署前请自行完成安全审计(鉴权、限流、日志脱敏)
- 当前状态:Archive(不承诺持续维护)
- 接受 Fork 与自定义演进
本项目使用仓库内 LICENSE 文件声明的许可协议。