项目介绍
现今,网络信息技术的进化随时都在进行,它已经对大家的生活、学习、交流方式都进行了颠覆性的改变。为了能够让学生在大学时期更多的接触和了解论坛,在论坛中进行交流和沟通,让他们加深对论坛的多方面的了解,同时也畅通大学生之间的日常的多种形式交流和沟通,很有必要建立一个专属的校内论坛网站。在校内的论坛上,学生可以更加便捷的进行思想交流,也可以增强他们的人际交往能力。校内论坛以网上交流和线下活动等方式为师生建立一个快速、贴心、效率的学校生活学习服务的新形式平台和线上社区,令爱好不同的师生皆能够在这个平台上面交流信息、沟通情感以及分享在生活中的感悟以及工作中获得的心得等。同时,校内的论坛也可以吸引学生的关注,让学生能够更方便快捷的了解学校的各种情况,丰富学校的宣传形式,能够提高学校对外的宣传力度,使得学校的知名度又上一个新的台阶。
具体实现截图
技术栈支持
该系统将采用B/S结构模式,开发软件有很多种可以用,本次开发用到的软件是vscode,用到的数据库是MySQL,为了更加便捷地使用数据库,用到了MySQL的可视化工具SQLyog/Navicat。
前端:vue.js+ElementUi
数据库:mysql
数据库工具:Navicat/SQLyog都可以
开发运行软件:VScode/webstorm/hbuiderx均可
express+Nodejs+Vue.js -vscode
性能需求分析
对系统的性能,从(功能、运行、界面、安全)等方面进行,下面我们逐一进行分析;
- 系统的功能是否完整进行分析:系统的功能,能对应设计出原始代码和算法,以表格同文字的形式进行详细介绍个人信息保证功能完整;
- 系统的运行是否通畅进行分析:系统的每个功能都有编写数据的关系和应对的代码,通过需求分析和可行性分析进行分析和显示系统的物理数据,保证其进行通畅;
- 系统的界面设计进行分析:对系统中的软件进行处理与分析的方式是由不同代码来进行的;从而使界面容易操作。
- 系统的安全性进行分析:这样才可以每个角色的不同对应的信息也就不同,在登录系统务必使用自己的账号,密码登录,账号与密码错误自然就登录失败了。登录成功可以对自己的信息进行操作,不能对别人的账号的信息进行查看等操作,这样自然保证系统的安全性。
。
开发工具和技术简介
vue前端框架
前端框架介绍
A)前端框架有: React/ Facebook/Angular/Google/Vue全世界
B)Angular、Vue、React的区别
Vue与React
React与Vue 都采用虚拟DOM.核心功能都在核心库中,其他类似路由这样的功能则由其他库进行处理React的生态系统更庞大,由ReactNative来进行混合App开发; Vue更轻量. React由独特的JSX语法; Vue是基于传统的Web计数进行扩展(HTML、CSS、NodejsScript),更容易学习.
Vue与Angular
Angular1和Angular2以后的版本 是完全不同的两个框架; 一般Angular1被称作Angular.js, Angular之后的版本被称作 Angular, Vue与Angular的语法非常相似, Vue没有像Angular一样深入开发,只保证了基本功能。 Angular过于笨重, Vue的运行速度比Angular快得多, Angular的脏检查机制带来诸多性能问题。
Nodejs可以对平台没有任何的要求限制,可以在任何的平台上进行运行,不需要借助其他的语言编辑器来对代码进行编辑就可以开始运行了,这一点是非常好的,不仅我们在使用的时候更加的方便而且由于不需要借助其他的程序就能实现,所以可以节约我们的开发成本,而且经过Nodejs编辑过的程序代码,可以直接进行使用,不需要重新编译,因此它是非常便利的,而且程序的运用不需要有专业的技术就可以运行了,为软件开发提供了很大的可行性。
用MYSQL的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,并降低了程序员的应用开发时间。
MYSQL的特点是支持多线程,能方便的对系统资源充分利用,有效提高速度,还提供多种方式途径来对数据库进行连接;MYSQL的功能相对弱小、规模也小,但本系统要求不高,MYSQL完全可以满足本系统使用。
Express不对node.js已有的特性进行二次抽象,只是在它之上扩展了Web应用所需的功能。丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健、友好的API变得快速又简单。Express是Web开发人员最欢迎的Node.js框架之一,提供一系列强大特性帮助创建各种Web应用。
VScode是我们最常用的网页编辑器,通过日常学习,我们基本熟练运用,在完成项目的过程中,我们可以更加节省时间。而且VScode包含很多插件并且免费,下载更加快捷方便,可以给我们提供很多便捷条件。运行的便捷给我提供很大帮助。
可行性分析
本系统开发选择nodejs技术,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,nodejs俨然已成为下一代互联网的Web标准。所以设计选择使用MYSQL,数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。
nodejs类核心代码部分展示
import { version } from '../../package.json'
import { Router } from 'express'
import { Op } from 'sequelize'
import toRes from '../lib/toRes'
import UsersModel from '../models/UsersModel'
import jwt from 'jsonwebtoken'
export default ({ config, db }) => {
let api = Router()
// 用户登录接口
api.post('/login', async (req, res) => {
try {
let userinfo = await UsersModel.findOne({ where: { username: req.query.username, password: req.query.password } })
if (userinfo === null) {
toRes.session(res, -1, '用户名或密码错误!')
return;
}
const token = jwt.sign(
{
id: userinfo.dataValues.id,
username: userinfo.dataValues.username,
role: userinfo.dataValues.role
},
config.jwtSecret,
{
expiresIn: 60 * 60 * 24 * 1
}
)
userinfo.dataValues.token = token
delete userinfo.dataValues.password
req.session.userinfo = userinfo
toRes.session(res, 0, '登录成功!', token)
} catch(err) {
toRes.session(res, 500, '服务器错误!', '', 500)
}
})
// 用户退出接口
api.all('/logout', (req, res) => {
if (!toRes.auth(req, res, '管理员')) return
req.session.destroy(err => {
toRes.session(res, 0, '退出成功!')
})
})
// 注册接口
api.post('/register', async (req, res) => {
try {
const userinfo = await UsersModel.create(req.body)
if (userinfo === null) {
toRes.session(res, -1, '注册失败!')
} else {
toRes.session(res, 0, '注册成功!')
}
} catch(err) {
toRes.session(res, 500, '服务器错误!', '', 500)
}
})
演示视频/源码获取/联系我
文章最下方名片联系我即可~