基于Java Web 的家乡特色菜推荐系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

Python项目实战《100套》

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及文档编写等相关问题都可以给我留言咨询,希望帮助更多的人

文章目录

  • 1. 简介
  • 2. 技术栈
  • 3. 系统流程分析
  • 4系统设计
    • 4.1数据库设计
    • 4.2系统整体设计
      • 4.2.1系统设计思想
      • 4.2.2系统流程图
  • 5系统详细设计
    • 5.1系统功能模块
    • 5.2管理员功能模块
  • 6 源码获取

文章目录

  • 1. 简介
  • 2. 技术栈
  • 3. 系统流程分析
  • 4系统设计
    • 4.1数据库设计
    • 4.2系统整体设计
      • 4.2.1系统设计思想
      • 4.2.2系统流程图
  • 5系统详细设计
    • 5.1系统功能模块
    • 5.2管理员功能模块
  • 6 源码获取

1. 简介

image-20230318232308154

基于Java 的家乡特色菜推荐系统,基于 SpringBoot+Vue 开发的,功能完整,包括源码和部署教程。可用于毕业设计和课程设计

本次设计任务是要设计一个家乡特色推荐系统,通过这个系统能够满足家乡特色文章的管理功能。系统的主要功能包括首页,个人中心,用户管理,文章分类管理,文章分享管理,系统管理等。

管理员可以根据系统给定的账号进行登录,登录后可以进入家乡特色推荐系统,对所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。

该系统为每一个用户都分配了一个用户账号,用户通过账号的登录可以在系统中查看家乡特色文章信息及对个人信息进行修改等功能

2. 技术栈

开发语言:Java

框架:springboot

JDK版本:JDK1.8

服务器:tomcat7

数据库:mysql 5.7(一定要5.7版本)

数据库工具:Navicat11

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.3.9

浏览器:谷歌浏览器

3. 系统流程分析

家乡特色推荐系统是两种身份的用户,主要涉及管理员和用户。每个身份都是操作起来都是清楚方便的。对于一些家乡特色文章信息,这是任何人都可以查看的,但是如果用户想进入后台进行操作,则必须是已经进行登录的用户,或者想修改家乡特色文章信息的话,也是需要用户为登录状态。这些用户的基本信息都由管理员对其统一管理。

根据家乡特色文章实际过程的分析,网站有以下几个部分,其中用户注册,发布个人信息,修改个人信息;用户注册登录,发布家乡特色文章信息;管理员管理用户信息。以上业务过程从用户角度可以分为两类使用本系统的用户角色,包括管理员和用户。以下针对各类用户说明相应的业务过程。

系统用例图如下图3-2所示:

img

4系统设计

家乡特色菜管理系统包括前后端的所有代码,还有论文,如果有需要的话,可以点击查看源码地址

4.1数据库设计

信息管理系统的效率和实现的效果完全取决于数据库结构设计的好坏。为了保证数据的完整性,提高数据库存储的效率,那么统一合理地设计数据库结构是必要的。数据库设计一般包括如下几个步骤:

(1)根据用户需求,确定数据库信息进行保存

对用户的需求分析是数据库设计的第一阶段,用户的需求调研,熟悉小区运作流程,系统要求,这些都是以概念模型为基础的。

(2)设计数据的概念模型

概念模型与数据建模用户的观点一致,用于信息世界的建模工具。通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。

用户注册实体图如图4-1所示:

img

图4-1用户注册实体图

文章分享实体图如图4-2所示:

img

图4-2文章分享实体图

(3)数据库逻辑结构分析

数据库概念结构设计后,可以数据库概念转化实际的数据模型,这是一种数据库的逻辑结构,就是将概念结构与支持数据库管理系统的模型相符合。具体的表设计如下所示:

表4-1:用户表

字段名称类型长度字段说明主键默认值
idbigint主键主键
usernamevarchar100用户名
passwordvarchar100密码
rolevarchar100角色管理员
addtimetimestamp新增时间CURRENT_TIMESTAMP

表4-2:token表

字段名称类型长度字段说明主键默认值
idbigint主键主键
useridbigint用户id
usernamevarchar100用户名
tablenamevarchar100表名
rolevarchar100角色
tokenvarchar200密码
addtimetimestamp新增时间CURRENT_TIMESTAMP
expiratedtimetimestamp过期时间CURRENT_TIMESTAMP

表4-3:收藏表

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
useridbigint用户id
refidbigint收藏id
tablenamevarchar200表名
namevarchar200收藏名称
picturevarchar200收藏图片
typevarchar200类型(1:收藏,21:赞,22:踩)1
inteltypevarchar200推荐类型

表4-4:资讯信息

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
titlevarchar200标题
introductionlongtext4294967295简介
picturevarchar200图片
contentlongtext4294967295内容

表4-5:文章分享评论表

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
refidbigint关联表id
useridbigint用户id
nicknamevarchar200用户名
contentlongtext4294967295评论内容
replylongtext4294967295回复内容

表4-6:配置文件

字段名称类型长度字段说明主键默认值
idbigint主键主键
namevarchar100配置参数名称
valuevarchar100配置参数值

表4-7:用户

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
yonghumingvarchar200用户名
xingmingvarchar200姓名
touxiangvarchar200头像
mimavarchar200密码
xingbievarchar200性别
shoujivarchar200手机
sfshvarchar200是否审核
shhflongtext4294967295审核回复

表4-8:文章分享

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
biaotivarchar200标题
tupianvarchar200图片
wenzhangfenleivarchar200文章分类
jianshuvarchar200简述
wenzhangxiangqinglongtext4294967295文章详情
fabushijiandatetime发布时间
yonghumingvarchar200用户名
xingmingvarchar200姓名
sfshvarchar200是否审核
shhflongtext4294967295审核回复
clicktimedatetime最近点击时间
clicknumint点击次数0

表4-9:文章分类

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
wenzhangfenleivarchar200文章分类

4.2系统整体设计

4.2.1系统设计思想

系统确定了各项需求,完成了系统的分析和数据库的设计,它就可以根据网站的特点决定网站的发展模式,才能实现代码。通过对网站的分析,这个网站是属于一个小项目,所完成的功能相对简单,就是对数据的基本操作。从而决定采用B/S开发模式。该模型的基本过程是:当用户访问网站的浏览器,或从用户向服务器发送请求时,通过接收请求,然后调用数据访问逻辑运算如比,将结果返回给将结果返回到用户通过浏览器。

使用开发的模型时,我们要把一些常用的,可以重复使用了java技术。当用户浏览网页,很多网页上的信息是从数据库动态删除,这就要求网页必须有数据库操作的能力,如连接数据库和数据表,更新。一个网站包含多个相同的网页,实现数据库操作功能的、代码就需要在不一样的网页中重复的被使用,这样不仅降低了工作的效率,一般也会给维护带来较大的麻烦。为了弥补这一缺陷,功能代码应该在java中完整的数据库操作,可以使用在每一个页面上。

4.2.2系统流程图

下图是用户进入这个家乡特色推荐系统后,基本的操作流程。

img

5系统详细设计

5.1系统功能模块

家乡特色推荐系统,在系统首页可以查看首页,文章分享,资讯信息,个人中心,后台管理等内容进行详细操作,如图5-1所示。

image-20230318232239205

用户注册,在用户注册页面通过填写用户名,密码,确认密码,姓名,手机等信息完成用户注册,如图5-2所示。

image-20230318232323236

文章分享,在文章分享页面可以查看文章分类,简述,发布时间,用户名,姓名,点击次数等详细内容,并进行评论和收藏操作,如图5-3所示。

image-20230318232308154

个人中心,在个人中心页面通过填写用户名,姓名,图片,密码,性别,手机等信息进行更新信息,根据需要对我的收藏进行详细操作,如图5-4所示。

img

图5-4个人中心界面图

5.2管理员功能模块

管理员登录,进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图5-5所示。

img

图5-5管理员登录界面图

管理员登录系统后,可以对首页,个人中心,用户管理,文章分类管理,文章分享管理,系统管理等功能模块进行相应操作,如图5-6所示。

用户管理,在用户管理页面可以对索引,用户名,姓名,头像,性别,手机,审核回复,审核状态,审核等信息进行详情,修改和删除等操作,如图5-7所示。

img

图5-7用户管理界面图

文章分类管理,在文章分类管理页面可以对索引,文章分类等内容进行详情,修改和删除等操作,如图5-8所示。

img

图5-8文章分类管理界面图

文章分享管理,在文章分享管理页面可以对索引,标题,图片,文章分类,简述,发布时间,用户名,姓名,审核回复,审核状态等内容进行详情,修改,查看评论和删除操作,如图5-9所示。

img

6 源码获取

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及文档编写等相关问题都可以给我留言咨询,希望帮助更多的人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472921.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HMI FUXA测试

Foxa官网 foxa tutorialhttps://github.com/frangoteam/FUXA/wiki/Getting-Started 1 概述 FUXA是基于Web的,过程(SCADA、HMI、看板等)可视化软件。可创建现代的过程可视化,使用独立的设计器,显示机器和实时数据。 …

数据分析-Excel基础操作

目录 周报讲解 基础概念 理解数据 筛选excel表 数据透视表 插入数据透视表 新建字段 切片器(筛选) 数据透视图 Excel常用函数 sum(求和) 1-8月GMV 1月和8月GMV sumif(条件求和) sumifs 日G…

git创建远程仓库,以gitee码云为例GitHub同理

git远程Remote服务端仓库构建的视频教程在这 Git建立服务端Remote远程仓库,gitee码云例,Github_哔哩哔哩_bilibili 1、登gitee码云/Github 登录 - Gitee.com https://github.com/ (没账号的注册一下就行) 点击如下图位置的创…

【Android、IOS、Flutter、鸿蒙、ReactNative 】启动页

Android 设置启动页 自定义 splash.xml 通过themes.xml配置启动页背景图 IOS 设置启动页 LaunchScreen.storyboard 设置为启动页 storyboard页面绘制 Assets.xcassets 目录下导入图片 AppLogo Flutter 设置启动页 Flutter Android 设置启动页 自定义 launch_background.xm…

深入理解Flutter生命周期函数之StatefulWidget(一)

目录 前言 1.为什么需要生命周期函数 2.开发过程中常用的生命周期函数 1.initState() 2.didChangeDependencies() 3.build() 4.didUpdateWidget() 5.setState() 6.deactivate() 7.dispose() 3.Flutter生命周期总结 1.调用顺序 2.函数调用时机以及主要作用 4.生…

MacOS下,如何在Safari浏览器中打开或关闭页面中的图片文字翻译功能

MacOS下,如何在Safari浏览器中打开或关闭页面中的图片文字翻译功能 在Mac上的Safari浏览器中,可以通过实况文本功能来实现图片中的文本翻译。关闭步骤具体步骤如下: 在浏览器地址栏,鼠标右击翻译按钮,然后点击“首选…

IDC 报告:百度智能云 VectorDB 优势数量 TOP 1

近日,IDC 发布了《RAG 与向量数据库市场前景预测》报告,深入剖析了检索增强生成(RAG)技术和向量数据库市场的发展趋势。报告不仅绘制了 RAG 技术的发展蓝图,还评估了市场上的主要厂商。在这一评估中,百度智…

本地部署Apache Answer搭建高效的知识型社区并一键发布到公网流程

文章目录 前言1. 本地安装Docker2. 本地部署Apache Answer2.1 设置语言选择简体中文2.2 配置数据库2.3 创建配置文件2.4 填写基本信息 3. 如何使用Apache Answer3.1 后台管理3.2 提问与回答3.3 查看主页回答情况 4. 公网远程访问本地 Apache Answer4.1 内网穿透工具安装4.2 创建…

逆向攻防世界CTF系列37-crackme

逆向攻防世界CTF系列37-crackme 参考https://blog.csdn.net/xiao__1bai/article/details/120230397 nspack的壳,查了一下好像是北斗的一个壳 没找到什么脱壳软件,只能手动脱壳了 手动脱壳的最终要的是ESP定律 ESP定律的原理就是“堆栈平衡”原理 涉及…

Chrome 浏览器开启打印模式

打开开发者工具ctrl shift p输入print 找到 Emulate CSS print media type

微服务链路追踪skywalking安装

‌SkyWalking是一个开源的分布式追踪系统,主要用于监控和分析微服务架构下的应用性能。‌ 它提供了分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案,特别适用于微服务、云原生架构和基于容器的环境(如Docker、K8s、Mesos&…

数据结构-哈夫曼树

一.什么是哈夫曼树 不同搜索树的效率是不一样的,根据不同的频率构造效率比较好或者最好的搜索树就是哈夫曼树 二.哈夫曼树的定义 将带权路径的长度降低最低 每个叶子节点到根节点的距离乘权值,再全都加起来就得到了WPL值 第一颗二叉树:从上到下计算 5x14x23x32x41…

go环境搭建

华子目录 下载vscode安装vscodego编译器下载go编译器安装配置go环境变量vscode安装go插件测试 下载vscode 官方:https://code.visualstudio.com/Download 安装vscode vscod安装成功 go编译器下载 官方:https://golang.google.cn/ 点击下载 go编译器安…

v-html 富文本中图片使用element-ui image-viewer组件实现预览,并且阻止滚动条

效果 导入组件 import ElImageViewer from "element-ui/packages/image/src/image-viewer"; components:{ ElImageViewer },模板使用组件 <el-image-viewerv-if"isShowPics":on-close"closeViewer":url-list"srcList"/>定义两…

【nginx】client timed out和send_timeout的大小设置

websocket连接会断开&#xff0c;抓包检查后发现是中间的代理服务器nginx断开的&#xff0c;同时将后端和浏览器都断开了。将nginx日志调到debug级别后&#xff0c;有下面的断开信息。 [info] 125923#125923: *34 client timed out (110: Connection timed out) while proxyin…

C++初阶——日期类的实现

目录 1、Date.h 2、注意 3、Date.cpp 实现 4、test.cpp 测试用例 日期类的实现是为了巩固C初阶——类和对象(上)(中)的知识点 1、Date.h #pragma once #include <iostream> using namespace std; #include <assert.h>class Date {// 友元函数&#xff0c;C初…

rust高级特征

文章目录 不安全的rust解引用裸指针裸指针与引用和智能指针的区别裸指针使用解引用运算符 *&#xff0c;这需要一个 unsafe 块调用不安全函数或方法在不安全的代码之上构建一个安全的抽象层 使用 extern 函数调用外部代码rust调用C语言函数rust接口被C语言程序调用 访问或修改可…

【Linux系统编程】第四十六弹---线程同步与生产消费模型深度解析

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、Linux线程同步 1.1、同步概念与竞态条件 1.2、条件变量 1.2.1、认识条件变量接口 1.2.2、举例子认识条件变量 1.2.3、…

工作时发现自己手写SQL能力很低,特此再来学习一遍SQL

SQL语法 ①常用的数据库本身的操作 # 显示数据库列表 show databases;# 使用某个数据库 use twbpm_dev;# 创建一个数据库 create database db_test;# 删除一个数据库 drop database if exists db_test;# 显示数据库中所有的表 show tables;# 查看MySQL的版本 select version();…

华为Ensp模拟器配置RIP路由协议

目录 RIP路由详解&#xff1a;另一种视角解读 1. RIP简介&#xff1a;轻松理解基础概念 2. RIP的核心机制&#xff1a;距离向量的魅力 3. RIP的实用与局限 RIP配置实验 实验图 ​编辑 PC的ip配置 RIP配置步骤 测试 结语&#xff1a;RIP的今天与明天 RIP路由详解&…