文末获取资源,收藏关注不迷路
项目介绍
随着计算机信息技术的发展,各种管理系统逐渐用在社会生产生活中,通过系统化管理提高办事流程,节约时间。越来越多的人习惯并依赖于通过信息技术和智能化的形式来处理日常各类事物。为了满足艺术展览馆艺术品展览的需要,以及适应现代化信息管理的需求,决定开发基于Web的艺术展览馆艺术品管理系统,帮助艺术品爱好者在线查阅艺术品,提高效率。
论文先介绍当前基于Web的艺术展览馆艺术品管理系统的现状,然后调研开发这一系统的主流技术,最终选择通过Java的SpringBoot框架开发,选择轻量级的关系型MySQL数据库存储数据。接着进行系统的需求分析、功能设计、数据库设计,最后进行编码实现。基于Web的艺术展览馆艺术品管理系统主要包括了前台和后台信息管理两个部分,前台实现艺术品浏览、艺术品作者浏览、公告信息查看、留言板等,后台实现实现艺术品管理、艺术品作者管理、公告管理、留言管理、艺术品去向管理、系统管理功能。
系统开发背景
近年来,计算机技术的高速发展带动了许多行业的进步,通过科技手段可以帮助企业改善工作流程,提高工作效率。据统计,大部分的企业目前已基本实现信息化管理进程。在管理系统模块中,最重要的莫过于数据库,可以将企业的各项数据通过数据库进行存储,然后方便统计分析。通过关键字来快速的查询信息,提高了工作效率,节省了人力物力。在传统的工作中只有通过人工处理,往往会造成许多的遗漏,也不能进行快速的查询统计,影响了工作的开展[1]。
计算机的诞生给人们的工作和学习带来了极大的改变,人类从工业时代进入了信息时代。今天,计算机对社会的影响不断深入扩大,艺术品展览也不例外。随着艺术品的增加,线下浏览费时费力,还存在因为距离无法到达现场的情况但,给艺术品展览带来了很大的挑战。因此,本基于Web的艺术展览馆艺术品管理系统应运而生[2]。
目前技术比较成熟和方便使用的asp、jsp等网页技术,这些技术目前在很多信息网站和艺术品展览网站中取得了良好的运用,也不断的在实践过程中得到肯定。asp、jsp、前台等网页技术最大的重点在数据库的应用上,通过asp、jsp和前台等技术可以轻松的获取网络中的各种数据库,并且网页也能根据依照不同的情况对网络中动态做出不同的响应,这样建立的动态响应的机制,也可以达到更好的缩短程序开发时间功效[3]。
系统研究现状
随着互联网的普及和数字技术的发展,越来越多的艺术机构和艺术家开始使用网络平台进行艺术品的展示和交流。针对这一需求,艺术展览馆艺术品管理系统逐渐被开发出来,以提高艺术品的可访问性和可管理性[4]。
目前,国内已有许多艺术展览馆采用艺术品管理系统进行展示和管理,例如中国美术馆、上海美术馆等。其中,上海美术馆的艺术品管理系统采用了先进的数字化技术,支持通过多种方式在线浏览并了解馆藏艺术品的详细信息。同时,该系统还具备良好的安全性和数据保护能力,保证了艺术品信息和用户隐私的安全。
另外,国内学者也在相关领域进行了大量的研究。李超等人基于 ASP.NET 平台设计了一个 Web-based 艺术品管理系统,包括艺术品信息的录入、查询和统计分析功能,并且具备较高的实用性和灵活性。此外,王超等人提出了一种基于 Java 语言的 Web-based 艺术品管理系统的设计方案,该系统具有良好的用户体验和安全性能,并且能够实现对艺术品信息的在线存储、传输和共享[5]。
在国外,艺术展览馆艺术品管理系统也得到了广泛应用。例如,纽约现代艺术博物馆(MoMA)采用的 Web-based 艺术品管理系统支持多语言、多设备访问,同时还提供了个性化推荐和社交分享等功能,增强了用户参与度和满意度。此外,巴黎卢浮宫采用的艺术品管理系统支持对馆藏艺术品进行在线展示和浏览,并且集成了地图导航、虚拟导览等功能,大大提高了游客的参观体验[6]。
同样,在国外学者们也进行了大量的相关研究。美国的 R. Seipel 等人提出了一种使用 XML 技术构建艺术品管理系统的设计方案,该系统具有良好的数据可视化效果和用户交互性能,适用于各类规模的艺术机构。此外,英国的 D. Bainbridge 等人提出了一种基于 PHP 和 MySQL 技术的 Web-based 艺术品管理系统方案,该系统具备高度灵活性和可扩展性,能够满足不同类型的艺术界机构的需求[7]。
综上所述,在国内外均存在大量基于 Web 的艺术展览馆艺术品管理系统的研究和应用。这些系统不仅可以解决传统艺术品展示中的时空限制和信息不对称问题,而且能够提供更加便捷、多样化的参观体验和管理方式[8]。
目前已经有许许多多的人针对艺术品管理系统做了大量的研究和设计,所设计和研究的艺术品管理系统主要是根据艺术品管理系统相关的使用用户及功能模块来进行的。主要解决的问题大多是艺术品管理所需的信息资源管理和用户注册、艺术品分类搜索与查询等功能[9]。
作品应满足系统的操作性简单明了和可扩展性的需求,艺术品的管理工作本身的就一个拥有较大工作量的工程,从制作到辗转就能产生大量的资料信息,如采用传统的方法进行记录,会影响各类艺术品的管理效率而且容易出现信息遗漏的现象。艺术品管理系统的出现是为了解决传统的人工管理效率低下的问题,对于系统的设计,必须满足使用者操作简易的要求,艺术展览馆的艺术品并非是一成不变的,在设计的过程中应留有可扩展的余地,便于对之后的艺术品信息的增删改查操作,从而提高管理的效率[10]。
系统开发意义
本文研究的目的就是出于对艺术品展览的关注和相关作者的宣传,开发一个针对艺术品展览管理的系统,建立在线交流平台,更好的解决艺术品展览面临的问题,通过一对一的服务,满足艺术品展览过程中的困惑[11]。
对于会员来说,通过注册获取个人的账号信息,然后所有的操作都可以记录,包括个人的咨询信息、艺术品展览信息、交流问题等等,防止遗忘。
基于Web的艺术展览馆艺术品管理系统的开发,对管理者来说,可以降低管理者的开支,提升管理者的服务水平,帮助艺术展览馆实现在线回复问题,彻底抛弃传统的电话管理流程,将信息全部通过数据库保存,随时的查阅,不再担心数量多或者丢失的问题。基于Web的艺术展览馆艺术品管理系统的设计,也可以帮助艺术展览馆解决信息集成的问题,将艺术展览馆其它的系统通过接口的方式进行信息共享,实现一体化的管理模式[12]。
基于Web的艺术展览馆艺术品管理系统的B/S模式,方便安装,减少了维护的工作量,只需要通过服务器端的更新就可以实现新系统的发布,提高了基于Web的艺术展览馆艺术品管理系统的可扩展性和可移植性[13]。
随着国民经济水平的持续发展,人们的精神追求也日益提高,开始关注古董、字画等艺术品,但在这一新兴行业蓬勃发展的同时,其不成熟的管理模式、尤其是停留在人工松散管理方式下暴露出的问题,也令管理者和投资者面临着管理效率和规范化方面的困境,如大量艺术品的数据繁杂,简单的 EXCEL 电子表格不能满足数据的多媒体输入、数据的系统管理等关联管理,单单用幻灯片进行的屏幕显示。仅能实现图片投影,无法动态显示更详细的信息,在场人员获取信息的便利性和准确性受到影响,对于数量繁多的艺术品查询工作费时费力。要想在指定条件下的查询汇总更加无从下手,随着业务范围的不断扩大和业务量的急剧增加,复杂繁琐的传统管理模式已不能满足日常经营管理的需求,随之兴起的是以现代信息手段为主的数字化管理模式。而近些年,计算机技术的迅速发展,使得工作人员更加简单、方便、安全、快捷的工作。艺术展览馆的工作人员亦是如此[14]。
技术介绍
1、管理员账号:abo 密码:abo
2、开发环境为Eclipse/idea,数据库为mysql 使用java语言开发。
3.配置好Tomcat并点击启动按钮即可运行
4.数据库连接src\main\resources\application.yml中修改
5.maven包版本apache-maven-3.3.9.
开发语言:Java
框架:SSM
前端框架:vue.js
JDK版本:JDK1.8+
服务器:tomcat8+
数据库工具:Navicat
开发软件:idea 支持eclipse
支持定做:Java/PHP/Python/Android/小程序/Vue/爬虫/C#/Asp.net
Springboot是当前最流向的一个框架,它的配置更加的简单,使开发变得更加的简单迅速。
Springboot的基础结构共三个文件,具体如下:
src/main/java:程序开发以及主程序入口;
src/main/resources:配置文件;
src/test/java:测试程序。
ssm的数据库配置默认支持两种格式的配置文件
1,application.properties
2,application.yaml
项目界面
对于系统管理员,管理系统所有的信息,包括用户管理、实时动态、野生动物视频、艺术品、专题活动、资料库、相关法律、关于我们、在线交流和系统信息管理。
具体如下:
1)网站首页:艺术品浏览展示,艺术品作者线下。供会员浏览查看。
2)注册登录:实现用户注册成会员,登录系统实现,注册成功之后默认为登录状态。
3)作品基本信息管理模块:对作品类别的管理和作品库的管理。
4)作者管理模块:可以在这里查看到馆藏艺术品作者在该馆内的所有作品,以及作者的个人基本信息和联系方式等。
5)作品去向管理模块:对馆内艺术品的流向以及丢失和损坏情况进行及时的记录和统计。
6)用户管理模块:分为系统用户管理和美术馆员工信息管理两部分。系统用户将主要分为普通用户和管理员用户。普通用户可以使用系统对作品基本信息、作品作者、作品去向以及馆内员工信息进行管理,还可以对自己的基本信息和登录密码进行修改。管理员用户除了可以执行普通用户的权限外还可以对其他用户信息进行查看、增加、修改和删除操作
7)前台会员查看作者信息、查看作者的作品、作品评论、留言管理。
对于系统员工,管理自己负责的信息,包括艺术品线下、作品去向信息管理。其中员工用例图
关键代码
package com.controller;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
目录
目 录
目 录 III
1 绪论 1
1.1 研究背景 1
1.2 目的和意义 1
1.3 论文结构安排 2
2 相关技术 3
2.1 Springboot框架介绍 3
2.2 B/S结构介绍 3
2.3 Mysql数据库介绍 4
3 系统分析 6
3.1 系统可行性分析 6
3.1.1 技术可行性分析 6
3.1.2 经济可行性分析 6
3.1.3 运行可行性分析 6
3.2 系统性能分析 7
3.2.1 易用性指标 7
3.2.2 可扩展性指标 7
3.2.3 健壮性指标 7
3.2.4 安全性指标 8
3.3 系统流程分析 8
3.3.1 操作流程分析 8
3.3.2 登录流程分析 9
3.3.3 信息添加流程分析 10
3.3.4 信息删除流程分析 11
4 系统设计 12
4.1 系统概要设计 12
4.2 系统功能结构设计 12
4.3 数据库设计 13
4.3.1 数据库E-R图设计 13
4.3.2 数据库表结构设计 14
5 系统实现 17
5.1用户部分功能17
5.2 管理员部分功能展示
6 系统测试
6.1 系统测试的特点
6.2 系统功能测试
6.2.1 登录功能测试
6.2.2 添加类别功能测试
6.3 测试结果分析
结 论
致 谢
参考文献