# 人脸识别签到 **Repository Path**: makabaka-pujiding/facial-recognition-check-in ## Basic Information - **Project Name**: 人脸识别签到 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-07-07 - **Last Updated**: 2025-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 人脸识别签到系统 ## 项目简介 这是一个基于Spring Boot的人脸识别签到系统,支持闸机扫脸报道和微信小程序定位签到功能。 ## 技术栈 - **后端框架**: Spring Boot 3.5.3 - **安全框架**: Spring Security - **数据库**: MySQL 8.0 - **缓存**: Redis - **ORM框架**: MyBatis-Plus - **安全认证**: JWT + BCrypt - **API文档**: SpringDoc OpenAPI 3 ## 功能特性 ### 报道功能 - 闸机扫脸报道 - 微信小程序定位签到 - 地理位置范围验证(中心点:经度121.980254,纬度39.087939,范围5公里) ### 管理功能 - 辅导员登录认证(Spring Security + JWT) - 专业学生报道情况查询 - 学院学生报道情况查询 - 学生处全局报道情况查询 - 基于角色的权限控制 ## 数据库设计 ### 主要表结构 - `student`: 学生信息表 - `counselor`: 辅导员信息表 - `major`: 专业信息表 - `major_counselor`: 专业辅导员关联表 ## 快速开始 ### 环境要求 - JDK 17+ - MySQL 8.0+ - Redis 6.0+ ### 安装步骤 1. **克隆项目** ```bash git clone [项目地址] cd facial-recognition-check-in ``` 2. **创建数据库** ```bash mysql -u root -p < back_end/src/main/resources/sql/init.sql ``` 3. **修改配置** 编辑 `back_end/src/main/resources/application.yml`,修改数据库和Redis连接信息。 4. **启动项目** ```bash cd back_end mvn spring-boot:run ``` 5. **访问API文档** ``` http://localhost:8080/swagger-ui.html ``` ### Swagger文档功能 - **API文档**: 完整的RESTful API文档 - **在线测试**: 可以直接在浏览器中测试API - **参数说明**: 详细的请求参数和响应说明 - **认证支持**: JWT认证的完整文档 - **分组管理**: 按功能模块分组的API接口 ## API接口 ### 报道接口 #### 闸机扫脸报道 - **URL**: `POST /report/scan` - **参数**: `studentId` (学号) - **返回**: 报道结果 #### 微信小程序定位签到 - **URL**: `POST /report/positioning` - **参数**: `latitude`, `longitude`, `studentId` - **返回**: 签到结果 ### 管理接口 #### 辅导员登录 - **URL**: `GET /admin/login` - **参数**: `account`, `password` - **返回**: JWT令牌 #### 获取专业学生报道情况 - **URL**: `GET /admin/counselor/register` - **参数**: `majorId` - **头部**: `Authorization` (JWT令牌) - **返回**: 学生列表 ## 项目结构 ``` back_end/ ├── src/main/java/org/example/back_end/ │ ├── controller/ # 控制器层 │ ├── service/ # 服务层 │ ├── mapper/ # 数据访问层 │ ├── pojo/ # 实体类 │ ├── config/ # 配置类 │ └── utils/ # 工具类 ├── src/main/resources/ │ ├── mapper/ # MyBatis XML文件 │ ├── sql/ # 数据库脚本 │ └── application.yml # 应用配置 └── pom.xml # Maven配置 ``` ## 开发说明 ### 代码规范 - 遵循SOLID原则 - 使用KISS原则保持代码简洁 - 遵循单一职责原则 - 复用已有代码,避免重复 ### 架构设计 - 采用分层架构 - 使用依赖注入 - 统一异常处理 - 统一返回格式 ## 许可证 MIT License