# dawn-app **Repository Path**: airgwl/dawn-app ## Basic Information - **Project Name**: dawn-app - **Description**: 本项目是一套智慧打卡系统,支持信息绑定、签到打卡、日志上传、文件管理、地址管理、任务管理等多种功能,适用于学生、管理员身份。系统界面简洁,操作便捷,支持移动端自适应,适合实习生解放双手打卡。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-01 - **Last Updated**: 2025-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智慧打卡系统 --- ## 📝 项目简介 本项目是一套**智慧打卡系统**,支持信息绑定、签到打卡、日志上传、文件管理、地址管理、任务管理等多种功能,适用于学生、管理员身份。系统界面简洁,操作便捷,支持移动端自适应,适合实习生解放双手打卡。 --- ## 🚀 主要功能 - **信息绑定**:绑定智慧校园账号,身份选择(学生),激活状态显示。 - **签到打卡**:支持地图定位和自定义地址打卡,自动获取经纬度,支持距离范围设置和备注信息填写。 - **日志上传**:支持日报、周报、月报类型日志的填写与提交,支持日志记录查询与自我评价。 - **文件管理**:支持图片上传、批量管理、日志导入、模板下载等功能。 - **地址管理**:可保存常用打卡地址,支持地图选点和手动输入。 - **任务管理**:支持定时任务(如定时打卡、日志任务)设置与管理,支持 Cron 表达式配置。 - **通知机器人接入**:集成第三方"喵提醒"服务,支持通过机器人自动推送打卡提醒等通知。 - **超级管理员后台**:支持用户管理、任务管理、好友管理等高级功能,便于系统维护和权限分配。 - **个人中心与推送**:用户可查看和管理个人信息、推送设置,支持消息推送、提醒等功能。 - **图库管理**:支持图片批量上传、管理、分页浏览等。 - **通用组件**:内置地图、二维码、分页、底部导航等高复用组件,提升开发效率和用户体验。 - **用户登录/注册**:支持新用户注册、账号登录、权限校验等。 --- ## 🖥️ 环境要求 - **Node.js** 22 - **Composer** 2.8 - **MySQL** 8.0 - **Redis** - **Docker**(可选,推荐使用 Docker Compose 部署) --- ## 🛠️ 技术栈 ### 前端 - **Vue.js** - **Inertia.js** - **Vite** - **TailwindCSS** - **Axios** ### 后端 - **Laravel** 12 - PHP Web应用框架 - **Redis** - 高性能的键值对数据库,用于缓存 - **MySQL** - 关系型数据库 - **Laravel Scheduler** - 任务调度系统 - **PHP-FPM** - PHP FastCGI进程管理器 ### 开发与部署 - **Docker** & **Docker Compose** - 容器化部署 - **Nginx** - Web服务器 - **Git** - 版本控制系统 --- ## ⚙️ 安装与部署 ### 本地运行 1. 复制线下配置文件为 `.env` 并根据实际情况修改。 2. 安装前后端依赖: ```bash npm install && composer install php artisan serve --host=0.0.0.0 --port=8081 ``` 3. 启动本地服务,访问对应8081端口即可。 ```bash npm run dev ``` ### Docker 部署 1. 复制线上配置文件为 `.env` 并根据实际情况修改。 2. 启动容器: ```bash sudo docker-compose up -d ``` 3. 进入 PHP 容器执行数据库迁移和安装依赖: ```bash componser install php artisan migrate ``` 3. 进入 node 容器执行依赖安装和编译文件: ```bash cd var/www/html npm install npm run build ``` 4. 给 nginx 权限(每次打包完成后都需要执行一次): ```bash find public -type f -exec chmod 644 {} \; && find public -type d -exec chmod 755 {} \; ``` --- ## 🖼️ 主要界面截图 > **请将下列图片保存到 `docs/screenshots/` 目录,并按顺序命名:** 1. **登录注册功能总览** ![登录](docs/screenshots/login.png) ![注册](docs/screenshots/resister.png) 1. **首页与功能总览** ![首页](docs/screenshots/home.png) 2. **信息绑定** ![信息绑定](docs/screenshots/bind_info.png) 3. **签到打卡(地图定位)** ![签到打卡-地图](docs/screenshots/checkin_map.png) 4. **签到打卡(自定义地址)** ![签到打卡-自定义地址](docs/screenshots/checkin_custom.png) 5. **日志上传** ![日志上传](docs/screenshots/log_upload.png) 6. **日志记录** ![日志记录](docs/screenshots/log_record.png) 7. **图片上传** ![图片上传](docs/screenshots/image_upload.png) 8. **日志导入** ![日志导入](docs/screenshots/log_import.png) 9. **地址管理** ![地址管理](docs/screenshots/address_manage.png) 10. **任务管理** ![任务管理](docs/screenshots/task_manage.png) 11. **管理员界面** ![管理员界面-主页](docs/screenshots/admin_index_manage.png) ![管理员界面-用户管理](docs/screenshots/admin_user_manage.png) ![管理员界面-任务管理](docs/screenshots/admin_task_manage.png) > 注:好友管理功能已废弃,当前版本仅支持用户管理和任务管理功能。 12. **通知机器人接入流程** ![通知机器人接入](docs/screenshots/robot_guide.png) --- ## 📁 代码结构说明 ```text resources/js/Pages/ # 前端页面与主要功能模块 ├─ home/index/ # 首页及各类业务模块(打卡、日志、图片、任务、信息绑定等) ├─ home/root/ # 超级管理员后台(用户管理、任务管理、好友管理) ├─ home/user/ # 个人中心与推送 ├─ home/index/galleryMagerment/ # 图库管理 ├─ home/index/signIin/ # 签到打卡(地图定位、自定义地址) ├─ compontents/ # 通用组件(地图、二维码、分页、底部导航等) └─ login/ # 登录、注册页面 public/ # 静态资源目录 config/、database/、app/ # 后端配置、数据库迁移、业务逻辑 docker-compose.yml # Docker 部署配置 ``` --- ## 🛠️ 开发与调试建议 - **本地调试**:建议使用 VSCode 等现代 IDE,配合断点和日志调试。 - **日志查看**:后端日志可在 `storage/logs/` 下查看,前端可用浏览器控制台。 - **数据库重置**:如需重置管理员密码或初始化数据库,可清理数据卷后重新迁移。 - **常见问题排查**:遇到容器无法启动、服务端口冲突、依赖安装失败等问题,优先查看日志和端口占用情况。 --- ## 🤝 贡献与反馈 欢迎大家提出建议或参与开发!如需贡献代码,请先 fork 本仓库并提交 Pull Request。 如有任何问题或建议,也可通过 Issue 或邮件联系开发者。 --- ## ❓ 常见问题 > **数据库密码修改不生效?** > 请确保清理数据卷后重启容器,详见上文说明。 > > **MySQL/Redis 容器无法连接?** > 检查端口映射、环境变量、数据卷权限,或查看容器日志排查。 > > **HTTPS 如何开启?** > 详见本项目文档"如何开启 HTTPS 访问"部分。 --- ## 📬 联系与支持 如有问题或建议,请通过 Issue 或邮件联系开发者。