# smartclass-backend
**Repository Path**: devsuperjin/smartclass-backend
## Basic Information
- **Project Name**: smartclass-backend
- **Description**: 智慧教室管理系统的后端部分。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-12-26
- **Last Updated**: 2025-06-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Smartclass MGMT
## 本项目是SMARTCLASS-MGMT的后端
基于fastapi框架
## 运行环境要求
Python3.10 or newer
## 先决条件
1.安装项目依赖包
```
pip3 install -r requirements.txt
```
2.安装Mariadb,并初始化数据库,具体见项目配置文件
## 建议的部署方式
1.将项目下的文件复制至/usr/local/smartclass-mgmt/,并且将conf文件复制至/etc/smartclass-mgmt/目录下
```shell
git clone https://{address}/smartclass-mgmt.git
mkdir /usr/local/smartclass-mgmt/
cp -r ./* /usr/local/smartclass-mgmt/
mkdir /etc/smartclass-mgmt/
cp ./smartclass-mgmt.conf /etc/smartclass-mgmt/
```
2.创建service文件,使得smartclass-mgmt成为系统服务
```
[Unit]
Description=api-registry
After=network.target
[Service]
WorkingDirectory=/usr/local/smartclass-mgmt
EnvironmentFile=-/etc/smartclass-mgmt/smartclass-mgmt.conf
PIDFile=/var/run/smartclass-mgmt/run.pid
ExecStartPre=-/usr/bin/mkdir /var/run/smartclass-mgmt/
ExecStart=/bin/sh -c '${UVICORN_BIN} main:app --workers $WORKER_THREAD --host $HOST --port $PORT'
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
```
将文件命名为smartclass-mgmt.service复制至/usr/lib/systemd/system/目录,并添加开机启动
```
cp ./smartclass-mgmt.service /usr/lib/systemd/system/
systemctl enable smartclass-mgmt
```
使用nginx反向代理的形式代理 /api端点,配置如下。
```
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
# rewrite ^(.*)$ https://$host$1 permanent;
location /api {
proxy_pass http://127.0.0.1:8000/api;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
```
将前端打包后的文件上传到/usr/share/nginx/html目录中。