feat(init): 添加完整的认证和业务路由模块

- 实现微信登录、手机号绑定、token验证和登出功能
- 添加打卡系统,支持正常、迟到、请假等状态记录
- 集成课程投票功能,支持多课程选择和评分评论
- 开发反馈系统,支持图文反馈提交和管理员处理
- 构建首页页面模块,动态展示学习资源和个人信息
- 设计计划管理系统,支持周/月/年计划制定和跟踪
- 实现小组计划统计和历史记录查询功能
- 完善用户认证会话管理和数据库交互逻辑
This commit is contained in:
王宏豪
2026-09-03 16:43:11 +08:00
commit f3fbd0377a
24 changed files with 1918 additions and 0 deletions

40
config.py Normal file
View File

@@ -0,0 +1,40 @@
import os
from pathlib import Path
from dotenv import load_dotenv
load_dotenv(Path(__file__).parent / ".env", override=True)
def _env(name, default=""):
return os.environ.get(name, default)
WECHAT_APPID = _env("WECHAT_APPID")
WECHAT_SECRET = _env("WECHAT_SECRET")
JWT_SECRET = _env("JWT_SECRET")
JWT_ALGORITHM = "HS256"
JWT_TTL_SECONDS = int(_env("JWT_TTL_SECONDS", str(90 * 24 * 3600)))
ADMIN_KEY = _env("ADMIN_KEY")
MYSQL_HOST = _env("MYSQL_HOST", "localhost")
MYSQL_PORT = int(_env("MYSQL_PORT", "3306"))
MYSQL_USER = _env("MYSQL_USER", "root")
MYSQL_PASSWORD = _env("MYSQL_PASSWORD")
MYSQL_DB = _env("MYSQL_DB", "mys_info_v3")
SURVEY_DB = _env("SURVEY_DB", "myxhxc")
PHONE_HMAC_KEY = _env("PHONE_HMAC_KEY", "MingYuan2026AuthKey")
H5_BASE_URL = _env("H5_BASE_URL", "http://127.0.0.1:8001").rstrip("/")
FEEDBACK_DIR = _env("FEEDBACK_DIR", "/home/introduction/feedback")
COURSE_VOTES_FILE = _env("COURSE_VOTES_FILE", "/home/introduction/test/course_votes.json")
PLAN_ATTACH_DIR = _env("PLAN_ATTACH_DIR", "/home/static/plan")
# nginx 静态资源根目录:HEAD/登录后图片统一由 nginx 直接读取
STATIC_ROOT = _env("STATIC_ROOT", "/home/static").rstrip("/")
AVATAR_DIR = _env("AVATAR_DIR", "/home/static/avatars").rstrip("/")