# task **Repository Path**: danqingcheng/task ## Basic Information - **Project Name**: task - **Description**: No description available - **Primary Language**: JavaScript - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-09 - **Last Updated**: 2026-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 任务打卡助手
![Platform](https://img.shields.io/badge/platform-Android%20%7C%20iOS%20%7C%20Harmony-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![React Native](https://img.shields.io/badge/React%20Native-0.81.5-61DAFB?logo=react) ![Expo](https://img.shields.io/badge/Expo-54.0.33-000020?logo=expo) 一个简洁优雅的本地化任务管理应用,帮助你养成良好的生活习惯 [特性](#特性) • [安装](#安装教程) • [使用](#使用说明) • [技术栈](#技术架构) • [贡献](#参与贡献)
--- ## 📖 项目介绍 日常生活中的每日打卡任务,例如运动、阅读、学习等,可以帮助人们养成良好的生活习惯,提高生活质量。 现有的打卡应用普遍存在需要登录认证、广告繁多、信息泄露等问题。**任务打卡助手**应运而生,它是一款完全本地化的任务管理工具: - ✅ **无需登录** - 开箱即用,无需注册账号 - ✅ **无广告** - 清爽界面,专注任务管理 - ✅ **隐私安全** - 所有数据存储在本地,不会上传到云端 - ✅ **开源免费** - 代码完全开源,可自由定制开发 - ✅ **AI 辅助开发** - 使用 AI 技术开发,支持跨平台部署 无论你有无编程基础,都可以轻松上手进行二次开发! --- ## ✨ 特性 ### 🎯 核心功能 - **📅 日历视图** - 直观的日历界面,一目了然查看任务完成情况 - **✅ 任务管理** - 创建、编辑、删除每日任务,支持任务描述 - **🔄 固定任务** - 设置每日重复的固定任务,自动添加到日历 - **📸 打卡记录** - 为任务添加图片和文字记录,追踪成长历程 - **📊 数据统计** - 周统计、月统计图表,可视化展示完成率 - **🎁 奖励兑换** - 完成任务获得积分,兑换心仪奖励(开发中) ### 🌍 用户体验 - **🌐 多语言支持** - 支持中文和英文切换,默认中文显示 - **🎨 现代UI** - 采用 HeroUI 组件库,美观流畅的交互体验 - ** 底部导航** - Tab Bar 设计,快速切换任务和我的页面 - ** 参数设置** - 灵活配置应用参数,支持语言切换 - ** 奖励管理** - 自定义奖励项目,管理积分兑换 - **💾 本地存储** - 使用 AsyncStorage 持久化数据,快速可靠 - **🔄 实时刷新** - 页面聚焦自动更新数据,保持最新状态 ### 🔒 隐私保护 - **离线可用** - 无需网络连接即可使用全部功能 - **数据私有** - 所有数据存储在设备本地 - **无追踪** - 不收集任何用户信息和行为数据 --- ## 📱 应用截图 > 提示:在此处添加应用截图展示主要功能界面 --- ## 🚀 安装教程 ### 环境要求 - Node.js >= 18.x - pnpm >= 8.x(推荐)或 npm/yarn - Expo CLI - Android Studio(Android 开发) - Xcode(iOS 开发,仅 macOS) ### 快速开始 #### 1. 克隆仓库 ```bash git clone https://gitee.com/your-username/task.git cd task/client ``` #### 2. 安装依赖 ```bash # 使用 pnpm(推荐) pnpm install # 或使用 npm npm install ``` #### 3. 启动开发服务器 ```bash # Web 端开发(默认) pnpm start # Android 真机/模拟器 pnpm android # iOS 模拟器(macOS) pnpm ios ``` #### 4. 访问应用 - **Web**: 浏览器自动打开 `http://localhost:8081` - **移动端**: 使用 Expo Go App 扫描二维码 --- ## 📖 使用说明 ### 基本操作 #### 1️⃣ 添加任务 1. 在日历页面点击「**添加**」按钮 2. 输入任务标题和描述(可选) 3. 选择日期(默认为当天) 4. 点击保存 #### 2️⃣ 设置固定任务 1. 点击底部「**固定**」按钮进入固定任务页面 2. 点击「**添加固定任务**」 3. 输入任务信息 4. 固定任务会自动添加到每天的日历中 #### 3️⃣ 完成任务 - 点击任务左侧的**圆圈**标记为完成/未完成 - 已完成的任务会显示删除线 #### 4️⃣ 任务打卡 1. 点击任务右侧的**相机**图标 2. 拍摄照片或从相册选择 3. 添加打卡心得(可选) 4. 保存打卡记录 #### 5️ 查看统计 1. 点击「**汇总**」按钮 2. 查看本周/本月的任务完成率 3. 通过图表了解习惯养成进度 #### 6️⃣ 积分奖励 1. 完成当天所有任务后,系统自动提示领取积分 2. 点击「**领取**」获得每日积分奖励 3. 积分可用于兑换奖励 #### 7️ 参数设置 1. 进入「**我的**」→「**参数设置**」 2. 配置每日积分奖励值(默认 1 分) 3. 切换应用语言(中文/英文) 4. 管理奖励兑换列表(添加/编辑/删除) #### 8️⃣ 奖励兑换 1. 进入「**我的**」→「**奖励兑换**」 2. 查看当前积分 3. 浏览可兑换的奖励项目 4. 点击「**兑换**」按钮 5. 确认兑换后自动扣除积分 --- ## 🏗️ 技术架构 ### 核心技术栈 | 技术 | 版本 | 说明 | |------|------|------| | React Native | 0.81.5 | 跨平台移动应用框架 | | Expo | 54.0.33 | React Native 开发工具链 | | TypeScript | 5.8.3 | 类型安全的 JavaScript | | Expo Router | 6.0.23 | 基于文件的路由系统 | | HeroUI Native | 1.2.7 | UI 组件库 | | FontAwesome6 | - | 图标库 | ### 数据存储 - **AsyncStorage** - 键值对存储(任务、设置) - **expo-file-system** - 文件系统存储(图片) - **react-native-calendars** - 日历组件及本地化 ### 项目结构 ``` client/ ├── app/ # 路由页面(Expo Router) │ ├── _layout.tsx # 根布局(Tab Bar) │ ├── index.tsx # 首页重定向 │ ├── task/ # 任务模块 │ │ ├── _layout.tsx # 任务布局 │ │ ├── index.tsx # 任务首页(日历) │ │ └── edit.tsx # 编辑任务 │ ├── profile/ # 我的模块 │ │ ├── _layout.tsx # 我的布局 │ │ └── index.tsx # 我的首页 │ ├── reward/ # 奖励兑换模块 │ │ └── index.tsx # 奖励兑换页面 │ └── settings/ # 参数设置模块 │ └── index.tsx # 参数设置页面 ├── screens/ # 屏幕组件 │ ├── calendar/ # 日历页面 │ ├── profile/ # 我的页面 │ ├── checkin/ # 打卡页面 │ ├── recurring/ # 固定任务页面 │ ├── stats/ # 统计页面 │ ├── reward/ # 奖励兑换页面 │ └── settings/ # 参数设置页面 ├── components/ # 通用组件 ├── contexts/ # 全局上下文 │ ├── AuthContext.tsx # 认证上下文 │ └── LocaleContext.tsx # 语言上下文 ├── utils/ # 工具函数 │ ├── storage.ts # 数据存储管理 │ └── index.ts # 其他工具 ├── hooks/ # 自定义 Hooks ├── heroui/ # HeroUI 组件库 └── assets/ # 静态资源 ``` ### 关键特性实现 #### 🌍 国际化 使用全局 `LocaleContext` 实现应用级中英文切换: ```typescript // 创建语言上下文 const { locale, setLocaleState } = useLocale(); // 设置语言 await setLocaleState('en'); LocaleConfig.defaultLocale = 'en'; // 在组件中使用 {locale === 'zh' ? '任务' : 'Task'} ``` Tab Bar、所有页面和弹窗均支持实时语言切换。 #### 💾 数据持久化 跨平台统一存储接口: ```typescript // Web 平台使用 AsyncStorage // 移动平台使用 expo-file-system const tasks = await getAllTasks(); await createTask({ title: '阅读30分钟' }); ``` #### 📊 统计分析 自动计算固定任务实例,提供准确的完成率统计: ```typescript // 周统计 const weeklyStats = await getWeeklyStats(weekOffset); // 月统计 const monthlyStats = await getMonthlyStats(monthOffset); ``` #### 🎁 积分系统 完整的积分获取和兑换系统: ```typescript // 完成任务获取积分 await addPoints(dailyPoints); // 兑换奖励扣除积分 await deductPoints(reward.cost); // 奖励管理 const rewards = await getAllRewards(); await createReward({ title: '随便吃', cost: 10 }); ``` --- ## 🤝 参与贡献 我们非常欢迎任何形式的贡献! ### 贡献流程 1. **Fork** 本仓库 2. 新建 **Feat_xxx** 分支(例如:Feat_add-dark-mode) 3. 提交代码,确保代码规范 4. 新建 **Pull Request** 5. 等待审核合并 ### 可以贡献的方向 - 🐛 **Bug 修复** - 发现并修复问题 - ✨ **新功能** - 添加新的实用功能 - 🎨 **UI 优化** - 改进界面设计和交互体验 - 📝 **文档完善** - 补充或改进文档 - 🌍 **翻译** - 添加更多语言支持 - 💡 **建议** - 提出改进建议或新功能想法 ### 开发规范 - 使用 TypeScript 编写代码 - 遵循现有的代码风格 - 添加必要的注释 - 确保代码能够正常运行 --- ## 📄 开源协议 本项目采用 [MIT](LICENSE) 开源协议,你可以自由地使用、修改和分发代码。 --- ## 🙏 致谢 - **React Native** - 优秀的跨平台框架 - **Expo** - 简化 React Native 开发 - **HeroUI** - 精美的 UI 组件库 - **所有贡献者** - 感谢每一位为项目做出贡献的人 --- ## 📞 联系我们 - 📧 Email: your-email@example.com - 💬 Gitee Issues: [提交问题](https://gitee.com/your-username/task/issues) - 🌐 项目主页: [https://gitee.com/your-username/task](https://gitee.com/your-username/task) ---
**如果这个项目对你有帮助,请给一个 ⭐ Star 支持!** Made with ❤️ by Community