今天給大家分享一個校園管理系統,前后端分離項目。這是最近在練習前端編程,結合 node 寫的一個完整的項目。
使用的技術:
Node.js:版本要求16.20以上。
后端框架:Express框架。
數據庫: MySQL 8.0。
Vue2:前端采用Vue2框架,配合Element UI組件庫。
實現的功能有:
課程管理
教師管理
學生管理
公告管理
管理員管理
教學樓管理
宿舍管理
年級管理
班級管理
通過這次的編程項目練習,讓我更快的掌握了前端編程技術和后端Express框架,還是非常好的。如果你也在學習編程,也可以借鑒一下,仿照這個項目也寫一個。
系統截圖:
首頁:
教師管理:
學生管理:
系統功能就簡單的分享一部分,有興趣的小伙伴可以去看一下完整的源碼~ (非開源項目)
https://wwwoop.com/home/Index/projectInfo?goodsId=115&typeParam=1&subKey=-1
零星代碼:
const ClassModel = require('../models/class.model')
const GradeModel = require('../models/grade.model')
const Response = require('../utils/response')
const AppError = require('../utils/appError')
const asyncHandler = require('../utils/asyncHandler')/*** 班級控制器類*/
class ClassController {/*** 獲取所有班級*/getAll = asyncHandler(async (req, res) => {const { page, pageSize } = req.queryconst result = await ClassModel.getAll(page, pageSize)res.json(Response.success(result))})/*** 獲取單個班級*/getOne = asyncHandler(async (req, res) => {const classInfo = await ClassModel.findById(req.params.id)if (!classInfo) {return res.json(Response.error('班級不存在'))}res.json(Response.success(classInfo))})/*** 創建班級*/create = asyncHandler(async (req, res) => {try {// 驗證年級是否存在if (req.body.grade_id) {const grade = await GradeModel.findById(req.body.grade_id)if (!grade) {return res.json(Response.error('所選年級不存在'))}}const classId = await ClassModel.create(req.body)const classInfo = await ClassModel.findById(classId)res.json(Response.success(classInfo, '創建成功'))} catch (error) {res.json(Response.error(error.message))}})/*** 更新班級*/update = asyncHandler(async (req, res) => {try {// 驗證年級是否存在if (req.body.grade_id) {const grade = await GradeModel.findById(req.body.grade_id)if (!grade) {return res.json(Response.error('所選年級不存在'))}}await ClassModel.update(req.params.id, req.body)const classInfo = await ClassModel.findById(req.params.id)res.json(Response.success(classInfo, '更新成功'))} catch (error) {res.json(Response.error(error.message))}})/*** 刪除班級*/delete = asyncHandler(async (req, res) => {try {await ClassModel.delete(req.params.id)res.json(Response.success(null, '刪除成功'))} catch (error) {res.json(Response.error(error.message))}})/*** 獲取所有年級(用于下拉選擇)*/getAllGrades = asyncHandler(async (req, res) => {try {const result = await GradeModel.getAll()res.json(Response.success(result.list))} catch (error) {res.json(Response.error(error.message))}})
}module.exports = new ClassController()