# 新易访内网 **Repository Path**: moonwei/evintor ## Basic Information - **Project Name**: 新易访内网 - **Description**: 安易访的内网模块,主要负责二维码信息的识别、展示、存储和分析管理。 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-04 - **Last Updated**: 2025-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 安易访内网系统 ## 项目介绍 安易访内网系统是一个企业级访客管理和二维码验证平台,专为内部网络环境设计,提供安全、高效的访客登记和管理解决方案。 ## 快速开始 ### 环境要求 - Python 3.13+ - SQLite 3.45+ - Node.js 18+ ### 后端开发环境设置 1. **创建虚拟环境** ```bash # Windows python -m venv .venv .\.venv\Scripts\activate # macOS/Linux python3 -m venv .venv source .venv/bin/activate ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **配置环境变量** 创建 `.env` 文件,参考 `.env.example` 配置必要的环境变量 4. **初始化数据库** ```bash python -m app.core.init_db ``` 5. **启动开发服务器** ```bash uvicorn app.main:app --reload --port 8000 ``` ### 前端开发环境设置 1. **安装依赖** ```bash cd frontend npm install ``` 2. **启动开发服务器** ```bash npm run dev ``` ## 项目结构 ``` evintro/ ├── app/ # 后端应用主目录 │ ├── api/ # API路由 │ ├── core/ # 核心配置和功能 │ ├── crud/ # 数据库操作 │ ├── models/ # 数据模型 │ ├── schemas/ # 请求和响应模式 │ ├── services/ # 业务逻辑服务 │ ├── utils/ # 工具函数 │ └── main.py # 应用入口 ├── frontend/ # 前端项目 ├── .env.example # 环境变量示例 ├── requirements.txt # Python依赖 └── README.md # 项目文档 ``` ## 环境变量 | 变量名 | 描述 | 默认值 | 必填 | |--------|------|--------|------| | SECRET_KEY | 应用密钥 | 随机生成 | 是 | | DATABASE_URL | 数据库连接字符串 | sqlite+aiosqlite:///./evintro.db | 否 | | CORS_ORIGINS | CORS允许的源 | http://localhost:5173 | 否 | | DEBUG | 调试模式 | False | 否 | | QR_CODE_EXPIRY_MINUTES | 二维码有效期(分钟) | 5 | 否 | ## 部署说明 ### 开发环境 参考快速开始部分 ### 生产环境 1. **构建前端** ```bash cd frontend npm run build ``` 2. **配置生产环境变量** 确保设置了适当的生产环境变量,特别是 `SECRET_KEY` 和关闭 `DEBUG` 模式 3. **使用Gunicorn运行后端** ```bash pip install gunicorn uvicorn GUNICORN_CMD_ARGS="--workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000" gunicorn app.main:app ``` 4. **配置反向代理(可选)** 推荐使用Nginx作为反向代理 ## API文档 启动应用后,访问以下地址查看API文档: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## 故障排查 1. **数据库错误** - 检查数据库文件权限 - 运行数据库修复脚本 2. **CORS错误** - 检查前端地址是否在CORS允许列表中 - 确认环境变量配置正确 3. **加密错误** - 检查密钥长度和格式 - 确认环境变量已正确设置 ## 更新日志 ### v1.0.1 (2024-12-21) - ✅ 新增仪表盘API接口,支持统计数据查询 - ✅ 实现访客统计(近7天数据)和任务完成率图表 - ✅ 前端DashboardView从API获取数据,不再使用硬编码 - ✅ 修复generate_test_data.py中的类型错误和NOT NULL约束问题 - ✅ 优化数据库会话管理和异步操作 ### 2025-09-05 补充创建管理员用户 - **问题**: 测试数据创建过程中可能删除了admin和suadmin管理员用户 - **修复**: 创建check_admin_users.py脚本,自动检查并创建缺失的管理员用户 - **创建用户**: - admin (系统管理员): 密码 pds@3369 - suadmin (超级管理员): 密码 pds@3369 - **验证**: 两个管理员用户均可正常登录系统,可以使用系统所有功能 - **补充说明**: - 修复了check_admin_users.py中的类型检查错误,添加了类型忽略注释 - 使用正确的密码哈希函数(get_password_hash)和数据库会话管理 - 已在README.md中记录相关变更 ### v1.0.0 (2024-12-20) - ✅ 初始版本发布 - ✅ 完整的访客管理功能 - ✅ 二维码生成和验证 - ✅ 审计日志系统 - ✅ 系统配置管理 - ✅ 前后端分离架构 ## 已修复的问题 1. **登录接口修复**:修复了auth路由前缀冲突问题 - 将auth.py中的APIRouter前缀从"/auth"移除 - 确保最终路径为/api/auth/token - 更新OAuth2PasswordBearer的tokenUrl配置 2. **前端Vue警告修复**:修复了TodaysRecordsView.vue中的模板引用问题 - 将ref="searchForm"改为ref="searchFormRef" - 添加正确的searchFormRef引用变量 3. **今日记录加载修复**:增强了API响应处理逻辑 - 添加了更完善的错误处理 - 确保正确解析后端返回的records数据格式 - 添加空数据状态处理 ## 许可证 本项目基于MIT许可证开源。 ## 支持与贡献 欢迎提交Issue和Pull Request! ### 开发团队 - 后端开发: [您的名字] - 前端开发: [您的名字] - 测试: [您的名字] ### 联系方式 - 邮箱: your-email@example.com - Issue: GitHub Issues --- **注意**: 生产环境部署前请务必: 1. 修改所有默认密码和密钥 2. 配置适当的防火墙规则 3. 设置定期备份策略 4. 启用HTTPS加密传输