旅游网站[源码+前后端页面]。
账号:朱利尔,密码:123。
管理员账号:admin,密码:123456。
该项目仅适合作为JavaWeb入门或毕业设计使用,这是一个免费、轻量化、简单、易上手的旅游网站项目,项目中涉及皮尔逊相关系数的相似度算法Java实现和实际应用可查看景点推荐模块,系统包括完整的前端Html页面和后台代码,不具备实际使用价值。
本项目开源免费,如果您看到有人售卖或利用该项目盈利请帮忙举报,谢谢。
以下请您仔细阅读:
这个项目算不上牛逼但是带你入门足够了,项目用到的算法也不算牛逼但是面试吹牛也足够了,您大可利用多余的时间去做更有意义的事情,其实这对于每一个项目来说都是如此,相信找到这个项目的小伙伴大多是即将毕业的同学,一个系统从设计到实现是一个非常复杂的过程,请一定仔细食用这个项目,这个项目相比于原来tourism的设计更加简洁明了,如果您只是想毕业交差然后另谋他路请直接略过此段往下看,使用体验也更好,花钱买时间永远是最划算的买卖(恰饭时间O(∩_∩)O),但是在部署方式上可能需要耗费一定的精力才能跑起来(相比老版本),但是如果您毕业后从事编程相关的工作,或者建议您找淘宝或者我帮你远程部署,底层应用的实现代码也很简单,相信你一定会有所收获,以上。
Project description-项目描述。
因为tourism开发时间久远,现在对这个项目进行了全新升级。
本次升级抛弃了原来一些老旧的技术,底层的所有代码全部重写。
采用前后端分离架构
RESTful API风格接口化、Json形式数据传输。
前端页面进行了升级,引用了一些基本的组件,如dataTables.js、bootstrap.js、bootbox.js。
应用于项目的“景点推荐”栏目,引入皮尔逊线性相似度推荐算法的Java实现。
Project framework-项目架构。
后端语言Java
ORM使用SpringDataJPA。
缓存Redis
部署Nginx+Jar。
Project algorithm-相关算法。
皮尔逊相关系数的相似度算法(Pearson)。
以下给出其实现公式:。
具体算法实现请查看CFUtils.cosineSimilarity()方法,以下给出数据获取方法代码,该算法在本系统中实现了基于景点分数近似度的推荐功能。
public List
//系统中我将景点抽象成了产品,这样便于扩展,如酒店、旅行团均可看作产品评分,统一记录在系统的分数表中。
//如果是查询景点推荐列表,则根据入参景点id查询景点。
List
//因为相似度比对需要两份数据,首先得到自己查询的景点的分数集合。
double[] ownProductScoreList = new double[productScoreList.size()];。
for (int i = 0; i < productScoreList.size(); i++) {。
ownProductScoreList[i] = Double.parseDouble(productScoreList.get(i).getGrade());。
}
//然后得到分数表中所有景点的分数集合。
List
HashMap
//循环所有景点
for (int i = 0; i < productCountInScoreList.size(); i++) {。
//得到该产品的所有分数。
List
double[] otherProductScoreList = new double[bb.size()];。
//循环该产品的所有分数。
for (int j = 0; j < bb.size(); j++) {。
otherProductScoreList[j] = Double.parseDouble(bb.get(j).getGrade());。
}
//将产品作为key,分数集合作为value存入map。
ss.put(productCountInScoreList.get(i).getProductId(),otherProductScoreList);。
}
List
//循环Map依次比对其线性相似度。
ss.forEach((String k, double[] v)->{。
//得到相似度值
double n = CFUtils.cosineSimilarity(ownProductScoreList,v);。
log.info('id:{},线性相似度:{}',k,n);。
//判断相似度值是否符合自己设定的阈值。
if(n > pearsonCorrelation) {。
//符合相似阈值,放入推荐列表。
resSpotsList.add(spotsDao.findById(k));。
}
});
return resSpotsList;。
}
Project view Page-页面预览如下:。
注:看不到图片可能需要梯子(maybe u need VPN)。
前台登录&注册:
前台首页:
前台景点列表&详情:。
前台景点推荐:
前台酒店列表&详情&预订:。
前台旅线列表&详情:。
前台订单列表:
后台首页:
后台景点列表&添加&更新&删除:。
后台酒店列表&添加&更新:。
后台线路列表&更新:。
后台订单列表&订单审核:。
后台旅行社列表:
后台用户列表:
Run-启动访问(本地部署)。
1.启动Nginx
启动命令:nginx.exe。
server {
listen 80;。
server_name localhost;。
location {。
root tour-front;。
index index.html index.htm;。
}
error_page 500 502 503 504 /50x.html;。
location = /50x.html {。
root html;。
}
}
server {
listen 8082;。
server_name localhost;。
location {。
root tour;。
index index.html index.htm;。
}
error_page 500 502 503 504 /50x.html;。
location = /50x.html {。
root html;。
}
}
关闭Nginx
nginx.exe -s stop。
重启Nginx
nginx.exe -s reload。
2.启动Mongodb
启动命令:net start mongoDB。
3.启动Redis
启动命令:redis-server.exe --service-start --service-name redisserver。
4.启动项目
本地启动
打开idea选择import project,选择tourismPro或者mongodb-file-server导入,然后等待相关依赖加载完成。
#数据源
这里在mongodb中创建了名为tourismPro的数据库,将你自己本地创建的数据库替换写入,修改mongodb-file-server项目中application.properties配置文件。
spring.data.mongodb.uri=mongodb://localhost:27017/tourismPro。
如图启动main方法(mongodb-file-server同理)。
5.view address访问地址。
前台:http://localhost。
后台:http://localhost:8082/index.html。
注:使用我配置好的Nginx部署前端项目,通过我打包的jar直接启动后端项目。
提取码:1bra
1.工具介绍:
2.前端部署:
务必保证系统的80端口、8082端口不被占用。
解压nginx-1.18.0-tourismPro.rar。
双击解压后nginx-1.18.0-tourismPro目录中的nginx.exe。
再打开新标签输入localhost:8082,打开浏览器,输入localhost。
页面正常显示则前端部署完成。
3.后端部署:
务必保证系统的8081端口不被占用。
务必保证系统已经正确配置了JDK1.8环境变量。
务必保证系统正确安装且启动了Redis且未修改默认端口、未设置密码。
务必保证系统正确安装且启动了Mongodb且新建了一个名为tourismPro的数据库。
安装数据库时设置初始化账号为root,密码为1234。
打开cmd或者powershell输入以下命令:。
java -jar tourismPro.jar。
打开一个新的cmd或powershell输入以下命令:。
java -jar mongodb-file-server.jar。
两个jar包启动都不报错则部署成功。
4.验证:
打开浏览器访问地址
前台:http://localhost。
后台:http://localhost:8082/index.html。
在后台添加数据查看是否在前台正确展示。
PS-其他说明
本项目使用SpringDataJpa自动构建数据库表,启动项目会自动生成表结构,无需您手动创建。
项目使用Redis存储Session会话。
项目使用MongoDB作为小型文件存储数据库。
项目中推荐算法部分的实现需要评分数据支撑,请登录不同用户为景点提交评分、评论(每个景点不少于5个评分)。
北京市卫健委 提醒,今日是国庆节假期最后一天,面临进返京高峰,出京旅行
“秋天的日子是半透明的 涂在金色的土地和田野上” 如果有一个季节,能让整
最美的风景在路上,最美的路上有风景。一条条公路串联湖北的名山大川、多彩
从靠山水到卖场景 从卖特产到拼创意 乡村旅游越来越好玩 “采摘”“收割”“
老君山两日自由行攻略,不抱团,自己做大巴或开车去攻略。有爬山和做索道两
旅游出行方式的简单比较 出游 方式 项目 比较 特点 优点 局限性 适合人群 适合
一年四季,寒来暑往,春夏秋冬,风景各有各的美。而自驾旅游的魅力,就在于
从北京海淀出发,自驾140公里左右,就可以看到另外一番天地。 这里是高山草
我们都是时间的旅行者, 为了寻找生命中的光。 终其一生,行走在漫长的旅途
原标题:三月赏花游 户外踏青走起 文、图/广州日报全媒体记者罗磊 通讯员柳