# 师说365 ## 代码工程结构 ``` ├── admin # 后台管理,包括:学校管理、批阅管理、资源管理、财务管理、系统管理 │   ├── api # API接口包 │   |   ├── endpoints # Endpoints │   |   |   ├── finance # 财务管理 │   |   |   ├── resource # 资源管理 │   |   |   ├── review # 批阅管理 │   |   |   ├── school # 学校管理 │   |   |   └── sysdata # 系统管理 │   |   └── router.py # 路由 │   └── schemas # 序列化格式包 ├── alembic # 表结构同步迁移 │   ├── versions # 表结构版本文件 │   └── env.py # 配置文件 ├── app # 前台业务 │   ├── api # API接口 │   |   ├── endpoints # Endpoints │   |   |   ├── exam # 考试中心 │   |   |   ├── problem # 错题中心 │   |   |   ├── resource # 资源中心 │   |   |   ├── review # 批阅中心 │   |   |   ├── school_assignment # 作业中心 │   |   |   ├── teacher # 教师信息 │   |   |   └── student # 学生信息 │   |   └── router.py # 路由 │   └── schemas # 序列化格式包 ├── auth # 登录认证 │   ├── endpoints # API接口 │   |   └── login.py # 登录 ├── bgtask # 后台任务 ├── core # 配置、安全等 │   ├── config # 配置文件等 │   ├── exceptions.py # 自定义异常 │   ├── middlewares.py # 自定义中间件 │   ├── security.py # 加解密方法 │   └── server.py # APP工厂 ├── crud # 增删改查 │   ├── app # 前端服务CRUD │   ├── school # 学校管理CRUD │   ├── sysdata # 系统管理CRUD │   ├── user # 用户管理CRUD │   ├── base.py # 增删改查父类 │   └── utils.py # 通用方法 ├── db # 数据库 │   ├── alembic.py # 表结构同步 │   ├── asyncredis.py # Redis连接 - 异步 │   ├── asyncsession.py # 数据库连接 - 异步 │   ├── base.py # 模型Base方法 │   └── syncsession.py # 数据库连接 - 同步 ├── models # ORM模型 │   ├── sysdata # 系统数据 │   ├── school.py # 学校ORM │   └── user.py # 用户ORM ├── resource # 资源 │   ├── casbin_model.conf # Casbin模型文件 │   ├── casbin_model_v2.conf # Casbin模型文件,本系统使用 │   ├── class_import_template.csv # 班级导入模版文件 │   └── *.sql # 初始数据sql ├── schemas # 序列化 │   ├── school # 学校 │   ├── sysdata # 系统数据 │   ├── auth.py # token │   └── base.py # 基础类 ├── scripts # 脚本 ├── tests # 单元测试 ├── utils # 通用工具包 │   └── depends.py # 通用依赖注入 ├── .dockerignore ├── .env # 环境变量文件 ├── .gitignore ├── .style.yapf # 代码格式化文件 ├── alembic.ini # alembic配置文件 ├── docker-compose.yml # docker-compose配置文件 ├── Dockerfile # Dockerfile文件 ├── init_db.py # 初始化用户脚本 ├── main.py # 主程序入口 ├── prestart.sh # 启动前执行shell脚本 ├── README.md └── requirements.txt # 第三方依赖 ``` ## 如何启动 + 使用 pip 安装依赖包 > pip install -r requirements.txt + 修改 ```core/config/development.py```文件中数据库连接以及初始化用户的用户名和密码 ```python # mysql MYSQL_USER: str = "shishuo" MYSQL_PASSWORD: str = "shishuo" MYSQL_DATABASE: str = "shishuo" MYSQL_HOST: str = "127.0.0.1" MYSQL_PORT: int = 3306 # init admin FIRST_USERNAME = "admin" FIRST_PASSWORD = "12345678" ``` + 执行初始化 管理员 / 用户/ 登录权限 脚本 > python init_db.py + 启动服务 > uvicorn main:app 打开浏览器,访问 ```http://localhost:8000/docs``` 即可看到接口文档。