項目源碼地址:https://github.com/tongxunkeji/student_info_system
學(xué)生信息打印輔助系統(tǒng)
學(xué)生在校期間避免不了要和各種證明打交道,比如學(xué)籍證明、轉(zhuǎn)專業(yè)申請、休學(xué)申請、退學(xué)申請等等。此類業(yè)務(wù)一般流程都是學(xué)生去找老師告知要辦的證明類型,然后老師幫助學(xué)生在電子版證明表格中填入各種信息(也有可能學(xué)生自己寫),然后再打印出來。繁瑣的步驟讓老師和學(xué)生都叫苦不迭,于是很多學(xué)校都用上了學(xué)生信息自助打印機,像下面這種:


學(xué)生自行去機器上就可以打印證明了,可是這種解決方案弊端也很明顯:
1、價格太貴,一般學(xué)校都不會出資購買
2、就算購買,一般也只會在職能部門購置一臺,無法大面積服務(wù)全體學(xué)生
3、可打印證明類太少,有的甚至無法自定義格式打印
解決辦法也很簡單,做一個系統(tǒng),學(xué)生手機打開網(wǎng)頁輸入姓名、學(xué)號等信息,系統(tǒng)自動匹配數(shù)據(jù)庫中學(xué)生的信息,然后將信息生成對應(yīng)的業(yè)務(wù)表格,老師在后臺可以查詢每個學(xué)生的業(yè)務(wù)申請,更可以直接通過打印機打印。(如果有需要也可以加上自動打印,不久后我們就會開源一套云打印系統(tǒng))
系統(tǒng)優(yōu)勢:
1、便宜!便宜!便宜!重要的事情說三遍,僅需一臺有公網(wǎng)ip的主機就可以(ubuntu最好)
2、可以分配多個賬號給不同的院系管理員,總管理員可以查看所有學(xué)生業(yè)務(wù),院系管理員僅可查看自己院系業(yè)務(wù)
3、可根據(jù)各種條件查詢所有歷史業(yè)務(wù),方便統(tǒng)計
4、類似退學(xué)、休學(xué)等需要所負責老師先在后臺確認,方可繼續(xù)打印,防止出現(xiàn)一些意外情況
5、更多功能后續(xù)開發(fā)中...

部署
說明:因為目前未考慮到大面積使用項目情況,還未添加比較方便的初始化數(shù)據(jù)庫功能,需要暫時按照下面方法初始化數(shù)據(jù)庫,后續(xù)會增加更加的便捷的初始化功能。
1、本機測試
1、安裝pipenv
pip install pipenv
2、在項目根目錄下運行
pipenv install
3、進入虛擬環(huán)境
pipenv shell
4、修改huojingyuan/config.py和fun.py數(shù)據(jù)庫配置
#config.py 7行
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@localhost:3306/huojingyuan'
#fun.py 34-41行
conn = pymysql.connect(
host='localhost',
user='root',
passwd='123456',
db='huojingyuan',
port=3306,
charset='utf8'
)
5、初始化數(shù)據(jù)庫
flask initdb
將項目根目錄admin.sql導(dǎo)入數(shù)據(jù)庫的admin表(表中內(nèi)容可以自行修改,修改完后需要將fun.py文件中對應(yīng)department修改,方便上傳學(xué)生信息)
6、運行
flask run
瀏覽器打開http://127.0.0.1:5000/upload
上傳根目錄test.xlsx到數(shù)據(jù)庫即可使用(此文件可以根據(jù)實際情況增加信息,但是不要更改里面的列位置)
2、Docker部署
也可以只配置數(shù)據(jù)庫信息(只做上面4、5步),然后通過Docker方式進行部署。dockerfile僅做參考,可以自行修改。
1、建立image
docker image build -t student_info_system .
2、建立container
docker container run -d -p 8000:8000 --name student_info_system student_info_system
3、宿主機器打開http://127.0.0.1:8000/upload
上傳根目錄test.xlsx到數(shù)據(jù)庫即可使用(此文件可以根據(jù)實際情況增加信息,但是不要更改里面的列位置)
相關(guān)URL
/front 前臺,將此地址展示給學(xué)生即可開始業(yè)務(wù)流程
/admin_login 后臺登錄入口
部分截圖


