基于java Springboot實(shí)現(xiàn)課程評(píng)分系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

前言:
教師教學(xué)評(píng)價(jià)是教學(xué)質(zhì)量評(píng)價(jià)的重要內(nèi)容,隨著教育信息化進(jìn)程的加快,如何在傳統(tǒng)教學(xué)中運(yùn)用網(wǎng)絡(luò)技術(shù)來評(píng)價(jià)教師教學(xué)質(zhì)量,如何在網(wǎng)絡(luò)教學(xué)環(huán)境中評(píng)價(jià)教師教學(xué)質(zhì)量, 是教學(xué)管理的難點(diǎn),也是網(wǎng)絡(luò)教學(xué)發(fā)展中的一個(gè)關(guān)鍵問題。 教師教學(xué)評(píng)價(jià)是一項(xiàng)復(fù)雜的系統(tǒng)工程,需要投入大量的人力、物力和財(cái)力。 借助于教師教學(xué)評(píng)價(jià)系統(tǒng),可以實(shí)現(xiàn)評(píng)價(jià)的網(wǎng)絡(luò)化管理和實(shí)施。 通過使用該系統(tǒng)獲得大量的統(tǒng)計(jì)數(shù)據(jù),將為深入分析和決策提供依據(jù)。

功能設(shè)計(jì):
管理員角色: 登錄,管理員管理,教師管理增刪改查,課程管理增刪改查,教學(xué)指標(biāo)增刪改查,學(xué)生增刪改查,查看評(píng)價(jià)等功能。
教師角色:登錄,課程管理,教學(xué)指標(biāo)管理,學(xué)生管理,收到的評(píng)價(jià)等功能。
學(xué)生角色: 登錄,修改個(gè)人信息,開始評(píng)分,選擇課程進(jìn)行評(píng)價(jià),查看評(píng)分,打分等功能。
功能截圖:
用戶登陸:

系統(tǒng)主頁:

管理員管理:

老師管理:

添加老師:

課程管理:

添加課程:
指標(biāo)管理:


學(xué)生管理:

評(píng)價(jià)管理:

評(píng)分流程:

注銷退出:

教師主頁:

學(xué)生主頁:

關(guān)鍵代碼:
登陸:
<div class="wrapper">
<div class="froyo-frame login-body">
<div class="admin-face">
<div class="face-img">
<img src="${ctxStatic}/images/editor.png" alt="logo">
</div>
</div>
<h1 class="admin-login-tittle">課程評(píng)分管理系統(tǒng)</h1>
<div class="admin-login-form">
<form class="form" action="${ctx}/login" method="post" autocomplete="off">
<div class="admin-name"><input name="username" type="text" placeholder="用戶名"></div>
<div class="admin-password"><input name="password" type="password" placeholder="密碼"></div>
<div class="admin-button"><button type="submit" id="login-button">登錄</button></div>
</form>
<div class="admin-button"><a id="login-button" href="${ctx}/index">返回首頁</a></div>
</div>
<script type="text/javascript" src="${ctxStatic}/plugins/layui/layui.js"></script>
<script type="text/javascript">
layui.use('layer', function() {
var $ = layui.jquery,
layer = layui.layer;
//login-button的點(diǎn)擊事件..
$('#login-button').click(function (event) {
event.preventDefault();
if (!$("input[name=username]").val()) {
layer.msg("用戶名不能為空");
return false;
} else if (!$("input[name=password]").val()) {
layer.msg("密碼不能為空");
return false;
} else {
$('form').fadeOut(500);
$('.wrapper').addClass('form-success');
$('.form').submit();
}
});
</script>
</body>
</html>
復(fù)制代碼后臺(tái)Controller接收到前端的登錄請(qǐng)求之后執(zhí)行參數(shù)校驗(yàn)、將前端傳遞過來的用戶名密碼以及用戶角色進(jìn)行判斷驗(yàn)證、調(diào)用LoginController.login方法執(zhí)行用戶登錄驗(yàn)證、查詢數(shù)據(jù)庫當(dāng)前賬號(hào)密碼是否正確、返回狀態(tài)碼給前端、前端根據(jù)狀態(tài)碼進(jìn)行相對(duì)的頁面跳轉(zhuǎn)以及數(shù)據(jù)效應(yīng)。
/**
* 登錄驗(yàn)證
*
* @param user
* @param map
* @return
*/
@PostMapping("/login")
public String login(User user, ModelMap map) {
if (user != null) {
if (StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword())) {
return Views.LOGIN;
}
AuthenticationToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword(), true);
if (token == null) {
map.put("message", "用戶名或密碼錯(cuò)誤");
return Views.LOGIN;
}
//記住我
((UsernamePasswordToken) token).setRememberMe(true);
try {
SecurityUtils.getSubject().login(token);
return Views.REDIRECT_ADMIN;
} catch (AuthenticationException e) {
if (e instanceof UnknownAccountException) {
map.put("message", "用戶不存在");
} else if (e instanceof LockedAccountException) {
map.put("message", "賬戶未激活");
map.put("status", 2);
map.put("user", user);
} else if (e instanceof DisabledAccountException) {
map.put("message", "賬戶未啟用");
}
e.printStackTrace();
map.put("message", "用戶認(rèn)證失敗");
}
return Views.LOGIN;
} else {
map.put("message", "未知異常");
return Views.LOGIN;
}
}
}
復(fù)制代碼訂閱專欄下載源碼
總體來說這個(gè)項(xiàng)目功能相對(duì)還是比較簡單優(yōu)秀的、適合初學(xué)者作為課程設(shè)計(jì)和畢業(yè)設(shè)計(jì)參考
另外需要白嫖java學(xué)習(xí)資料包括《JVM、Netty、Mysql、Mybatis、Redis、Dubbo、Nginx、設(shè)計(jì)模式》等10G資料禮包、可以看我主頁或私信博主都行
打卡Java項(xiàng)目更新 29 / 100天
大家可以點(diǎn)贊、收藏、關(guān)注、評(píng)論我啦 、下面的投票也可以積極互動(dòng)起來喲
作者:java李楊勇
鏈接:https://juejin.cn/post/7001838850699952158
來源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

