# RightThere **Repository Path**: FraCreeper/RightThere ## Basic Information - **Project Name**: RightThere - **Description**: 2025年移动软件开发作业和实验 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 286 - **Created**: 2025-11-26 - **Last Updated**: 2025-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 打卡点管理APP - README ## 一、项目简介 本APP是一款专注于**打卡点管理与近距离打卡**的工具类应用,支持打卡点的添加、分类、地图可视化、离线数据共享等核心功能,适用于企业考勤、项目巡检、活动打卡等多场景使用,无需网络即可完成核心操作,兼顾实用性与便捷性。 ## 二、功能定位 ### 核心功能 1. **打卡点管理**:支持添加、编辑、删除打卡点,包含地点名称、经纬度、分类标签(如“珠海某公司”“深圳某公司”)等信息; 2. **地图可视化**:以地图标记形式展示所有打卡点,支持在地图上直接修改打卡点位置; 3. **近距离打卡**:用户位于打卡点300米范围内时,可触发打卡操作,自动记录打卡时间; 4. **历史记录查询**:以清晰格式展示用户过往打卡记录,支持按分类、时间筛选; 5. **备份/导入功能**:支持本地数据备份与导入,离线状态下可共享打卡点数据; 6. **分类标签**:通过Tag/分类功能对打卡点进行分组管理,便于快速筛选; 7. **离线可用**:核心功能(打卡、查看记录、管理打卡点)无需网络支持,数据本地存储。 ### 目标用户 需要对多地点进行打卡管理的个人或团队(如企业行政、项目负责人、活动组织者等)。 ## 三、开发阶段规划 | 阶段 | 周期 | 核心任务 | 产出物 | |------|------|----------|--------| | 1. 需求分析与设计 | 1周 | 1. 梳理详细功能需求与交互逻辑;
2. 设计UI原型与页面流程图;
3. 确定技术栈与数据存储方案 | 需求文档、UI原型图、技术方案文档 | | 2. 基础架构搭建 | 1周 | 1. 创建项目工程(Android/iOS);
2. 集成核心依赖库(地图SDK、权限库等);
3. 配置权限(定位、存储);
4. 搭建本地数据库(打卡点、打卡记录存储) | 基础项目工程、权限配置完成、数据库表结构搭建 | | 3. 核心功能开发 | 3周 | 模块1:打卡点管理(添加/编辑/删除/分类);
模块2:地图界面(打卡点标记、地图上修改位置);
模块3:打卡功能(300米范围检测、打卡时间记录);
模块4:历史记录页面(展示/筛选/导出);
模块5:备份/导入功能(本地文件读写、数据同步) | 各模块功能可用、核心流程贯通 | | 4. 测试与优化 | 1周 | 1. 功能测试(边界场景、异常处理);
2. 兼容性测试(多设备/系统版本);
3. 性能优化(启动速度、地图加载流畅度);
4. Bug修复与交互体验优化 | 测试报告、优化后的稳定版本 | | 5. 发布上线 | 1周 | 1. 打包应用(Android APK/iOS IPA);
2. 编写用户使用手册;
3. 应用商店提交或内部分发;
4. 收集用户反馈并规划迭代 | 可发布版本、使用手册 | ## 四、依赖列表 ### 核心依赖(必须集成) | 依赖名称 | 用途 | 备注 | |----------|------|------| | 腾讯地图SDK | 地图显示、打卡点标记、经纬度定位、地图上修改打卡点 | 核心地图功能支撑 | | AndroidX/Lifecycle(Android) | 页面生命周期管理、数据状态维护 | 安卓端基础依赖 | | UIKit/CoreLocation(iOS) | 界面组件、定位功能基础 | iOS端基础依赖 | | Room/SQLite | 本地数据存储(打卡点、打卡记录、分类信息) | 离线数据持久化 | | 权限请求库(如EasyPermissions/AuthorizeTools) | 申请定位权限、存储权限 | 适配Android 6.0+/iOS 10+权限机制 | | Gson/JSONSerialization | 数据序列化(备份/导入时的JSON格式处理) | 支持数据跨设备共享 | | FileProvider(Android)/FileManager(iOS) | 本地文件读写(备份文件生成/导入) | 离线数据共享核心 | ### 可选依赖(增强功能) | 依赖名称 | 用途 | 备注 | |----------|------|------| | Glide/SDWebImage | 分类图标、打卡点图标加载 | 优化UI展示 | | MPAndroidChart/Charts | 打卡统计图表(如月度打卡次数、分类打卡占比) | 数据可视化增强 | | Retrofit/Alamofire | (可选)网络同步功能(如需在线备份) | 扩展在线功能时集成 | ## 五、腾讯地图Key配置说明 ### 1. Key申请步骤 1. 访问[腾讯地图开放平台](https://lbs.qq.com/),注册并登录账号; 2. 进入「控制台」→「应用管理」→「创建应用」,填写应用名称(如“打卡点管理APP”),选择应用类型; 3. 应用创建后,点击「添加Key」,选择对应平台(Android/iOS): - Android:填写应用包名(如`com.example.checkinapp`),勾选“地图SDK”“定位SDK”权限; - iOS:填写Bundle ID(如`com.example.CheckinApp`),勾选“地图SDK”“定位SDK”权限; 4. 提交后即可获得专属腾讯地图Key(需妥善保管,避免泄露)。 ### 2. 项目配置步骤 #### Android端 1. 打开项目的`AndroidManifest.xml`文件; 2. 在``标签内添加以下meta-data配置,替换`YOUR_TENCENT_MAP_KEY`为申请的Key: ```xml ``` 3. 确保已添加地图SDK依赖(参考腾讯地图官方文档最新版本): ```gradle dependencies { implementation 'com.tencent.map:tencent-map-sdk:latest_version' } ``` #### iOS端 1. 打开项目的`Info.plist`文件; 2. 新增键值对:Key为`TXMapSDKAppKey`,Value为申请的腾讯地图Key; 3. 在`Podfile`中添加地图SDK依赖(参考官方最新版本): ```ruby pod 'TencentMapSDK-iOS' ``` 4. 执行`pod install`完成集成。 ### 3. 注意事项 - Key与应用包名/Bundle ID强绑定,修改包名/Bundle ID后需重新申请Key; - 测试环境与正式环境建议使用不同Key,避免正式Key泄露; - 若需使用腾讯地图的高级功能(如POI搜索),需在开放平台额外启用对应API权限。 ## 六、其他说明 1. 运行环境:Android 8.0+(API 26+)、iOS 12.0+; 2. 必要权限:定位权限(用于打卡范围检测)、存储权限(用于备份/导入数据); 3. 数据存储:所有数据默认存储在本地,备份文件格式为JSON,支持手动导出至手机存储; 4. 迭代规划:后续可扩展在线同步、打卡提醒、多用户共享打卡点等功能。 如有问题或需求迭代,可联系开发团队进行沟通。