高校IT技术论坛系统的设计与实现

2021-11-02 06:03尹邦磊王东梅
无线互联科技 2021年17期
关键词:拉黑技术论坛帖子

尹邦磊,王东梅,左 欣

(贵州师范学院 数学与大数据学院,贵州 贵阳 550018)

0 引言

计算机类专业在工科教育中占有重要地位,其专业人数占整个信息类专业人数的50%左右[1]。根据美国劳工统计局的预测,2026年计算机类职位将占所有科学、技术、工程、数学类职位的63%[2]。然而,2019年麦克斯调研表明,毕业生找不到合适专业岗位与企业找不到合适人才的矛盾比较尖锐[3]。因此,提供一个技术交流型的论坛平台,帮助计算机类学生尽可能地精通专业技术,尽早树立技术型的就业目标是非常重要的。虽然国内外有很多著名的论坛网站,但是针对大学生的网站运用很少,搭建一个供师生就学习生活沟通的论坛网站很有必要[4]。

高校IT技术论坛采用B/S结构,前端页面采用简约美观的轻量级框架BootStrap,后端基于Java开发的主流框架SpringBoot,数据库用到了MySQL和Redis。为了更快地给用户响应,额外使用了高效能的消息中间件Kafka。为了提高系统的抗压能力,运维端搭建了集群服务,使用Nginx实现负载均衡。为了降低系统的运维成本,运维端采用Docker容器化技术搭建数据库和Nginx服务。

高校IT技术论坛主要有帖子发布、点赞、评论、顶置、拉黑、删除、关注、私信等功能。为了营造文明上网的良好环境,系统中加入了敏感词过滤的功能[5]。用户注册需要使用真实邮箱激活账号,加上楼主拉黑评论、管理员拉黑用户或帖子的功能设置,可以有效地避免系统平台被滥用。

1 系统设计

一般来说,论坛的主要功能是让访问者在论坛上提出问题、讨论问题、解决问题、分享心得及资源等。如果把每一条信息看作一个帖子,论坛的功能则是发布帖子、回复帖子、查看帖子、修改帖子、删除帖子等。由此,论坛的设计就变成如何表示信息、管理信息[6]。

高校IT技术论坛分为6大功能模块,分别是登录模块、用户设置模块、用户个人中心模块、帖子模块、消息模块、自学模块(见图1)。

图1 系统功能层次

(1)用户登录模块,是整个系统的安全基石和功能基础。该模块除了退出登录,其余子模块均要经过验证码或邮箱进行安全验证。同时,具有生成、验证登录凭证的功能。通过拦截访问请求、查询登录凭证,进一步保障系统的安全性。登录模块是非登录状态下的功能,登录后不提供注册、登录、忘记密码等功能。

(2)用户设置模块,一方面是对于账户信息的基本设置,另一方面是为了满足用户的个性化需求,具有自定义头像、选择系统实名制等功能特点。用户设置模块是登录状态的功能,未登录时不能访问。

(3)用户个人中心模块,分为查看本人中心、查看他人中心两种应用场景。个人中心能看到用户的基本信息、发布的帖子、发表的评论、关注列表以及粉丝列表。用户个人中心模块在非登录状态也能访问,登录后增加关注他人、删除个人帖子、个人评论等功能。

(4)帖子模块,是系统核心功能模块,拥有发布、评论、点赞、顶置、拉黑、删除等基本的论坛系统功能。帖子模块在未登录状态只提供查看功能,在登录状态才增加其他功能,楼主登录后可以对自己的帖子进行顶置评论和拉黑评论的操作,管理员登录额外增加顶置帖子、拉黑帖子等功能。

(5)消息模块,分为私信消息模块和系统通知模块,其中系统通知是系统功能的重难点,帖子模块进行的操作几乎都要经过系统通知模块反馈消息给相关的用户群体。消息模块也是登录状态下提供的功能,未登录状态无法查看消息。

(6)自学模块,是系统的文化中心,拥有Java开发、Web前端、Python开发、大数据技术4个自学专区。自学模块不受登录状态影响,是系统的静态模块,可自由访问。

2 系统实现

2.1 功能模块实现

系统采用MySQL作为关系型数据库,实体关系如图2所示。

图2 数据库实体关系

2.1.1 登录模块

系统针对登录凭证单独建立一个实体,用户每次登录生成唯一的一条有效凭证,旧凭证自动过期,以此避免一个用户在多个客户端登录。

系统使用Spring拦截器应对拦截访问的需求,使用SpringBoot内置依赖spring-boot-starter-mail实现发送邮件的功能。

系统后端使用Kaptcha工具生成验证码字符,验证码图片以字节流的方式发送给前端,实现更安全的验证码后端逻辑判断。

系统额外使用了Redis数据库,不同场景、不同用户的专属验证码字符均缓存在Redis中,在使用Nginx的背景下,实现登录验证跨域跨集群,适应高并发使用场景。

2.1.2 用户设置模块和用户个人中心模块

(1)用户设置模块,系统使用SpringMVC内置对象MultipartFile实现上传文件,实现用户上传个性头像。

(2)用户个人中心模块,用户的关注列举以及粉丝列表保存在Redis数据库中,减轻关系型数据库关联查询的压力。

2.1.3 帖子模块

系统前端使用更高效的Thymeleaf模板引擎,以此应对帖子模块复杂的逻辑处理。点赞功能与Redis关联,避免频繁的点赞操作拖累系统后台的响应效率。帖子模块发布的信息均经过后端格式化处理和敏感词过滤,以此避免超文本内容恶意攻击以及敏感内容的恶劣影响。

2.1.4 消息模块和自学模块

(1)消息模块,系统使用Kafka发送系统通知,一方面更快地给用户响应,适应高并发;另一方面提高系统的容错性,增强可用性。

(2)自学模块,收集了全国著名IT教育培训机构在全网公布的免费自学资源,主要来源于Bilibili网,包含Java开发在内的各个IT学科领域。

3 结语

论坛系统的难点在于交互式、高并发的使用场景,但它的特色也是来自于交互使用、并发环境使用时产生的娱乐性和实用性。本文设计与实现的高校IT技术论坛基于Java开发、SpringBoot框架,最终满足了娱乐性和实用性的需求,是一个适用于高校计算机类大学生使用的技术论坛平台。目前,高校IT技术论坛的功能还有待完善。后期将会使用SpringSecurity,ElasticSearch等技术实现系统功能升级。此外还会开发一个后台管理系统,更好地维护论坛系统。

猜你喜欢
拉黑技术论坛帖子
拉黑这件事
2021中国航空推进技术论坛
2020远东无损检测新技术论坛顺利召开
MFC2019首届汽车冷弯(滚压与拉弯)成形技术论坛成功举办
学会“拉黑”自己
群发微信真能看出谁拉黑了你?
暴力老妈
拉黑
中国食品工业清洁技术论坛在沪召开
高手是这样拍马屁的