laitimes

Java,SpringBoot,Vue,Python爬虫,Hadoop大数据旅游推荐管理系统

author:Program ape big waves

summary

This system is a travel recommendation management system based on Java, SpringBoot, Vue, Python crawler, Hadoop big data technology. The system aims to provide users with personalized travel recommendation services, and recommend suitable travel destinations, attractions, etc. for users by analyzing their travel history data and behavior patterns.

The system uses SpringBoot as the back-end framework, which is responsible for handling user requests, data analysis, and the implementation of recommendation algorithms. The front-end uses Vue.js to build user interfaces that provide a user-friendly interaction experience. Python crawlers are used to crawl travel information on the network to provide data support for recommendation algorithms. Hadoop big data technology is used to store and process massive tourism data to improve the data processing capacity of the system.

Through this system, users can more easily obtain personalized travel recommendation services and improve the travel experience. At the same time, the system can provide valuable user behavior analysis and market insights for tourism-related enterprises to help them optimize their products and services.

Java,SpringBoot,Vue,Python爬虫,Hadoop大数据旅游推荐管理系统
Java,SpringBoot,Vue,Python爬虫,Hadoop大数据旅游推荐管理系统

Function introduction

The functions of the system should include: registration and login, tourist statistics, public opinion analysis, tourism recommendation, user management and other functions.

Registration and login: New users can fill in the relevant information to register, and users can log in to the website with their account and password to use the relevant functions;

Tourist statistics: According to the comprehensive index of tourism popularity displayed by occupation or scenic spots, users can also publish evaluations of scenic spots;

Public opinion analysis: After crawling data and analyzing it, use bar charts to display information such as the real-time popularity of popular attractions;

Travel recommendation: Use crawled and analyzed scenic spots or city-related data to make recommendations, which is convenient for users to obtain real-time travel recommendation data;

User management: Administrators can manage user information or manually add users.

Java,SpringBoot,Vue,Python爬虫,Hadoop大数据旅游推荐管理系统
Java,SpringBoot,Vue,Python爬虫,Hadoop大数据旅游推荐管理系统

Technical introduction

Backend: Java language, Spring Boot framework, MuSQL database, maven dependency management, etc.

前端:Vue、Element ui等;

爬虫:Python;

Big data analytics: Hadoop.

Java,SpringBoot,Vue,Python爬虫,Hadoop大数据旅游推荐管理系统
Java,SpringBoot,Vue,Python爬虫,Hadoop大数据旅游推荐管理系统

Part of the code is displayed

<template>
  <div class="layui-card" id="app">

    <el-container class="margin-t">
      <el-header class="main-view" height="10vh">
        <el-form :inline="true" class="demo-form-inline">
          <el-form-item label="用户昵称">
            <el-input v-model="title" placeholder="输入昵称"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit">查询</el-button>
          </el-form-item>
		  <el-form-item>
		    <el-button type="success" @click="add()">新增用户</el-button>
		  </el-form-item>
        </el-form>
      
      
      </el-header>
      <el-main class="main-view" style="min-height: 87vh;">
		<div style="height: 87vh;">
			<el-table :stripe="true" :data="tableData" style="width: 100%">
			  <el-table-column prop="uid" label="ID" width="80">
			  </el-table-column>
			  <el-table-column prop="nickName" label="用户名" width="100">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.nickName}}</div>
			    </template>
			  </el-table-column>
			  <el-table-column prop="phone" label="手机号" width="150">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.phone}}</div>
			    </template>
			  </el-table-column>
			  <el-table-column prop="job" label="职业" width="90">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.job}}</div>
			    </template>
			  </el-table-column>
			  <el-table-column prop="edu" label="学历" width="90">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.edu}}</div>
			    </template>
			  </el-table-column>
			  <el-table-column prop="address" label="所在地" width="90">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.address}}</div>
			    </template>
			  </el-table-column>
			 <!-- <el-table-column prop="sex" label="性别" width="80">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.sex}}</div>
			    </template>
			  </el-table-column> -->
			  
			  <!-- <el-table-column prop="pic" label="头像" width="100">
			    <template slot-scope="scope">
			      <div>
			        <div v-if="!scope.row.pic" class="text-ellipsis-2">未上传</div>
			        <el-image v-else :preview-src-list="[picPath+scope.row.pic ]" :src="picPath+scope.row.pic"
			          style="width: 80px; height: 80px;box-shadow: 1px 1px 5px rgba(0,0,0,0.1)">
			          <div slot="error" class="image-slot">
			            <i class="el-icon-picture-outline"></i>
			          </div>
			        </el-image>
			      </div>
			    </template>
			  </el-table-column> -->
			
			  
				<el-table-column prop="title" label="类型" width="100">
				  <template slot-scope="scope">
				    <div class="text-ellipsis-2">{{scope.row.type==1?"管理员":(scope.row.type==2?'员工':"用户")}}</div>
				  </template>
				</el-table-column>
			  <el-table-column prop="createTime" label="添加时间" width="180">
			  </el-table-column>
			  <el-table-column label="操作" width="250">
			    <template slot-scope="scope">
			      <el-button @click="toEdit(scope.row)" type="text" size="small">编辑</el-button>
			      <el-button @click="delData(scope.row)" type="text" class="text-red" size="small">删除</el-button>
				  <el-button @click="resetPass(scope.row)" type="text" class="text-red" size="small">重置密码</el-button>
			    </template>
			  </el-table-column>
			</el-table>
		</div>
        

      </el-main>
    </el-container>

    <el-dialog title="编辑用户" :visible.sync="show">
      <el-form :model="dataView">
        
		<el-form :model="dataView">
			<el-form-item label="昵称" label-width="120px">
				<el-input v-model="dataView.nickName" autocomplete="off"></el-input>
			</el-form-item>
			<el-form-item label="电话" label-width="120px">
				<el-input v-model="dataView.phone" autocomplete="off"></el-input>
			</el-form-item>
			<el-form-item label="所在地" label-width="120px">
				<el-select v-model="dataView.address" placeholder="请选择">
				    <el-option
				      v-for="item in cityList"
				      :key="item.value"
				      :label="item.label"
				      :value="item.value">
				    </el-option>
				  </el-select>
			</el-form-item>
			<el-form-item label="职业" label-width="120px">
				<el-input v-model="dataView.job" autocomplete="off"></el-input>
			</el-form-item>
			<el-form-item label="学历" label-width="120px">
				<el-input v-model="dataView.edu" autocomplete="off"></el-input>
			</el-form-item>
			<!-- <el-form-item label="头像" label-width="120px">
			  <div style="display: flex;justify-content: space-between;">
			    <div>
			      <el-image :preview-src-list="[getPicUrl(dataView.pic)]" :src="getPicUrl(dataView.pic)"
			        style="width: 100px; height: 100px;box-shadow: 1px 1px 5px rgba(0,0,0,0.1)">
			        <div slot="error" class="image-slot">
			          <i class="el-icon-picture-outline" style="font-size: 100px;"></i>
			        </div>
			      </el-image>
			      <div style="display: flex;justify-content: space-between;">
			        <div style="text-align: center;">头像</div>
			        <div @click="editPic(dataView,'')" style="text-align: center;color: #63a35c;">修改</div>
			      </div>
			    </div>
			  </div>
			</el-form-item> -->
			<el-form-item label="类型" label-width="120px">
				<el-select v-model="dataView.type" placeholder="请选择">
				  <el-option label="用户" :value="2"></el-option>
				  <el-option label="管理员" :value="1"></el-option>
				</el-select>
			</el-form-item>
			<el-form-item label="密码" label-width="120px">
				<div v-if="!dataView.uid">默认123456</div>
			</el-form-item>
			
		</el-form>

      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="show = false">取 消</el-button>
        <el-button type="primary" @click="editData">确 定</el-button>
      </div>
    </el-dialog>

  </div>
</template>
           

To get the source code, please pay attention to the private message "20240430"

Read on