基于web技术实现教学信息管理系统

一,实验目的 本次实验题目为综合性的 Web 项目练习,自选题目实现全栈开发,我的作业题目是《教育教学信息管理系统》 二,实验内容 开发全栈 Web 项目天津大学教育教学信息管理系统

本文包含相关资料包-----> 点击直达获取<-------

一、实验目的

本次实验题目为综合性的 Web 项目练习,自选题目实现全栈开发。我的作业题目是《教育教学信息管理系统》

二、实验内容

开发全栈 Web 项目天津大学教育教学信息管理系统,包括数据库设计、后端、前端

三、实验步骤

1.确定需求

  • 系统分为管理员端和用户端。在登录界面可以选择学生登录或者教师登录、注册学生账号
  • 注册学生账号:只有注册了学籍的学生才可以使用学号注册账户
  • 学生登录需要先注册
  • 管理员登录拥有固定的密码
  • 学生端分为四个功能
  • 主页面:显示欢迎语、时间信息(入学天数和周数)、今日课程、教务通知
  • 个人信息:查看自己的学籍信息、课程表、修改密码
  • 成绩管理:查看各学期的加权成绩折线图、选择年份查看具体年份的成绩及雷达图
  • 选课管理:选课未开始不能选课,选课开始可以选课和退课,并且显示实时课程表
  • 管理员端分为五个功能
  • 主页面:显示欢迎语、时间信息、修改管理员密码、修改教务通知
  • 学生管理:添加学籍、修改学籍信息、删除学籍
  • 课程管理:添加课程、修改课程信息、删除课程
  • 成绩管理:登课程成绩、修改学生成绩、按课程或学生查看成绩统计信息
  • 选课管理:开始/停止选课,为特定学生选课并实时显示课程表

2.体系结构设计

  • 数据库:MongoDB
  • 后端:NodeJS 环境 +Express 框架 +mongoose 操作 MongoDBAPI
  • 前后端交互:fetch
  • 前端:HTML+CSS+JQuery+Echarts

3.数据库设计

数据库采用 MongoDB 数据库,它是一个基于文件的分布式非关系型数据库。采用 MongoDB 的主要原因是它采用了类似于 JSON 的 Binary-JSON 数据存储格式,便于数据的传输和处理。

MongoDB 数据库的结构

  • 数据库 database:所有数据及配置的集合
  • 集合 Collection:表,定义并存储数据项
  • 文档 Document:一条数据记录
  • 属性 Key:属性名称
  • 值 Value:属性值

数据库截图

本次项目中数据库共设计了六张表

  • Admins:存储管理员信息
  • Users:存储用户信息
  • Courses:存储课程信息
  • Students:存储学籍信息
  • Records:存储成绩信息
  • Systems:存储系统信息

启动数据库的方法:开命令行,进入数据库 bin 文件夹下,输入命令:

mongod –dbpath 数据文件路径即可启动数据库

数据库端口号为:27017

4.后端

后端采用 NodeJS 编程环境,使用 JavaScript 编写后端环境

(1)链接并操作数据库:mongoose

MongoDB 数据库的 API 使用起来比较繁琐,因此使用 Mongoose 框架来操作数据库。

  • 配置 mongoose 信息(mongoose.js)

  • 链接数据库(db.js)

  • 建立 Schema,用于定义 Collection(db.js)

  • 编译建立的 Schema,形成 Model,并绑定到 mongoose 对象中

  • 在路由中引入 Model,并进行操作(index.js)

  • 增加:

  • 修改:

  • 删除:

  • 查询:

(2)配置服务器:使用默认端口:3000

  • 跨域资源访问 CORS:(app.js)

  • 监听打开与异常

(3)编写路由:req 为请求报文,res 为响应报文

  • 根路由

  • 其它路由

(4)启动服务器的方法:

  • 在 server 目录下打开命令行,输入命令

npm start即可成功启动 Express 服务器

5.前端设计

前端主要采用的技术是 HTML+CSS+JQuery,使用 fetch 进行前后端交互

(1)页面结构:(具体布局请参考代码)

为了解决子页面过多导致 HTML 文档过多,且切换时页面刷新和重新加载对用户体验的影响问题,将同一主页面中所有子页面压缩到一个 HTML 文档,并且使用 jQuery 进行路由切换,显示需要展示的子页面,而将不需要展示的子页面隐藏(display:none)

  • login.html:

  • student.html

  • admin.html

(2)样式设计:采用了部分响应式设计和极简主义的设计风格。将子页面的 CSS 样式写在分开的文件中,虽然页面链接降低了部分性能,但更易于维护,并且使用了思源黑体的字体和阿里巴巴矢量图库 iconfont 的矢量图作为图标。还学习了加载动画的制作

  • iconfont:

  • 加载小动画:(部分代码)

(3)交互代码设计:采用 jQuery 中监听器和选择器,更便于对 DOM 文档结构、样式进行改变、进行网络请求等操作

关键技术:

  • 点击事件监听器

  • 网络请求:fetch 是基于 Promise 的网络请求 API,与 AJAX 有着相同的作用,且相比 AJAX 可以使用链式回调

  • Promise:promise 是一个用于确保异步操作后执行某些操作的 API,使用 then、catch 回调函数捕捉异步程序的执行结果。并且可以将嵌套回调变为链式回调

  • 回调函数:异步操作执行后执行,在多个地方都使用了回调

  • 闭包:在函数内部定义的函数,用于封装方法

其余技术在代码中有详细注释

四、实验结果

登录页面:(学生登录、教师登录、注册)

学生端:

  • 主页面:

  • 个人信息

  • 成绩页面

  • 选课页面

管理员端:

  • 主页面

  • 学生管理

  • 课程管理

  • 成绩管理

  • 选课管理

五、实验结论

通过这次作业,学会并熟练掌握了 MongoDB、Express 的原理和使用方法,并且对全栈开发的模式有了更好的运用。并且熟练掌握了 jQuery 的使用动态页面渲染等技术。

六、源代码

源代码过多,详情见源代码文件

参考文献

  • 网络环境下通用技术学科教学网站的构建与应用(天津师范大学·于丽萍)
  • 基于Web的网络教学系统的设计与实现(厦门大学·冯凤举)
  • 基于C/S与B/S模式的学分制教学管理系统(广东工业大学·宋宇翔)
  • 基于WEB的教学管理系统的设计与实现(吉林大学·刘兴民)
  • 基于web的教务管理系统的设计与实现(电子科技大学·方富贵)
  • 基于J2EE架构的通用网络教学管理平台的设计与实现(辽宁师范大学·姜华)
  • 基于B/S架构的网络教学管理系统的设计与实现(电子科技大学·闵伟宏)
  • 基于ASP的网络教学平台的设计与实现(湖北工业大学·冯硕)
  • 基于.NET的网络教学管理系统设计与实现(西安电子科技大学·张啸)
  • 基于WEB的教学信息动态管理系统的设计与实现(电子科技大学·杨瑞)
  • 基于JAVA EE轻量级框架的课程教学管理平台的设计与实现(湖南大学·钱彭飞)
  • 基于WEB的网络教学系统的设计与实现(东北大学·周海斌)
  • 基于Web的教学科研信息系统的设计与实现(复旦大学·林杰)
  • 基于C/S与B/S模式的学分制教学管理系统(广东工业大学·宋宇翔)
  • 基于C/S与B/S模式的学分制教学管理系统(广东工业大学·宋宇翔)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码驿站 ,原文地址:https://m.bishedaima.com/yuanma/36005.html

相关推荐

  • 新手python简单的飞机游戏

    game 一个新手做的python简单的飞机游戏 参考文献 基于Java EE的个人博客管理系统的设计和实现(内蒙古大学·闫伟光) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 航空订票服务器爬虫检测技术研究(杭州电子科技大学·陈万烤) 主题爬虫关键技术研究(哈尔滨工程大学·黄正德) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 飞行情报资料管理信息系统设计与实现(中国地质大学(北京)·张晓琴) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 豆玩手机游戏平台的设计与实现(吉林大学·李天明) 面向高职信息技术教育的严肃游戏设计与实施(大连理工大学·王晓姝)
    2024年05月14日
    1 1 1
  • 基于python制作一个打砖块小游戏

    基于 python 制作一个打砖块小游戏 导语 想起来好久没更这个系列的文章了,周末过来补一波好了,本期我们将利用 python 制作一个打砖块小游戏
    2024年05月14日
    1 1 1
  • 基于python实现的电梯调度

    基于python实现的电梯调度 1 项目说明 1,1 项目目的 通过实现电梯调度,体会操作系统调度过程 学习特定环境下多线程编程方法 学习调度算法 1
    2024年05月14日
    5 1 3
  • 基于JSP的校园论坛BBS网站的设计与实现

    基于JSP的校园论坛BBS网站的设计与实现 1 概述 开发校园论坛系统的目的是提供一个供我校学生交流的平台,为我校学生提供交流经验,探讨问题的社区,因此
    2024年05月14日
    21 1 1
  • 基于SSM框架实现的员工信息管理系统

    1,项目简介 这是完整使用SSM框架开发的第一个项目,项目来源于北京动力节点的SSM框架整合教程,其中加入了一些自己的理解,增加了一个搜索功能的页面,这个项目总体来说对于新手是很友好的
    2024年05月14日
    2 1 1
  • 基于JSP的聊天器

    基于JSP的聊天器 1 可行性研究 1,1 技术条件方面的可行性 系统:Windows 8,1 Update 服务器环境:nodejs 0
    2024年05月14日
    7 1 1
  • 基于SpringBoot框架的在线互动学习网站

    这是一套采用Java语言,基于SpringBoot框架构建的在线教育互动平台的源代码,项目采用了SpringBoot和Vue技术栈,开发工具为Idea或Eclipse
    2024年05月23日
    5 1 3
  • 解谜类游戏之Python

    解谜类游戏 一,摘要 作者:霍禹佳,高铭星,朱子仪,梁鞍華 [摘要] 本作融合了企鹅,史诗英雄故事,解谜和游戏这四种元素,创造出一款全新的解谜类游戏,通过对故事
    2024年05月14日
    1 1 1
  • 基于Python制作愤怒的小鸟小游戏

    基于 Python 制作愤怒的小鸟小游戏 导语 小伙伴们周末愉快呀~楼主又好久没更新公众号的样子,为了避免继续被某些小伙伴吐槽,还是上来更新一波吧,既然是周末
    2024年05月14日
    6 1 2
  • 基于SpringBoot框架的网页时装购物系统

    这是一套采用Java语言开发的🔥🔥SpringBoot为核心的电商时装网站项目源代码🔥🔥,该项目运用了SpringBoot框架和Vue技术,支持在Idea或Eclipse开发环境中运行
    2024年05月23日
    10 1 2

发表回复

登录后才能评论