Giter Club home page Giter Club logo

geshanzsq-nav's Introduction

格姗导航网站

一个基于 Spring Boot、MyBatis Plus、Vue3、Element Plus 前后端分离的导航网站系统,在线演示地址:https://gesdh.cn。由于工作和个人能力原因,部分技术都是边学习边开发,特别是前端(工作中是后端开发),基本上不熟悉,代码质量和设计,请大家多多指教

欢迎加群一起学习交流技术。

QQ 群交流:673465233

微信群:添加我微信:geshanintell,备注:格姗导航

码云下载地址(国内推荐):https://gitee.com/geshanzsq/geshanzsq-nav

Github 下载地址:https://github.com/geshanzsq/geshanzsq-nav

简介

本项目是一个网站导航,网站内容均由小格子本人收集并整理。前端基于 Vue3,后端使用 Spring Boot。目前只是基础版,没有开源自定义导航,大家可以根据此开源项目进行自定义导航开发。如果对自定义导航感兴趣,可联系小格子购买自定义导航源码

  • 前端采用 Vue3、Element Plus。
  • 后端采用 Spring Boot、MyBatis Plus、Spring Security、Redis。
  • 后台管理支持加载动态权限菜单,权限修改立即生效,不用再退出重新登录。
  • 高效率开发,只需要简单的 @Query 注解即可实现分页和列表接口。

内置功能

  1. 用户管理:用户是整个系统操作人,主要完成系统用户配置
  2. 角色管理:配置角色菜单、分配用户角色等。
  3. 菜单管理:配置系统菜单、按钮权限标识、关联 API 等。
  4. 数据字典:系统中经常使用的一些较为固定的数据进行维护。
  5. API 管理:后端所有接口地址、请求方式等。
  6. 参数配置:系统动态配置常用参数。
  7. 登录日志:系统登录日志记录查询。
  8. 操作日志:系统操作日志记录和查询。
  9. 导航管理:分类管理、网站管理、评论管理

运行

前端:需要搭建 Vue 脚手架环境,如:安装 Node.js、Vue-cli 。

后端:需要搭建 Java 开发环境。此外,还需要安装 MySQL 数据库(推荐 MySQL 8)、Redis。

相关环境版本:

软件名称 版本号
Node 16.16.0
NPM 6.14.15
JDK 1.8.0_202
MySQL 8.0.17
Redis 5.0.9
Nginx 1.9.9

项目目录结构说明

geshanzsq-nav-admin: 后台管理模块
    geshanzsq-nav-admin-application: 后台管理应用启动和导航业务
    geshanzsq-nav-admin-system: 后台管理的系统管理模块
geshanzsq-nav-common: 通用模块
    geshanzsq-nav-common-core: 核心通用模块,包含一些通用工具类
    geshanzsq-nav-common-framework: 通用框架模块
    geshanzsq-nav-common-rate-limiter: 通用限流模块
    geshanzsq-nav-common-log: 通用日志模块
    geshanzsq-nav-common-redis: 通用缓存模块
    geshanzsq-nav-common-security: 通用安全框架模块
    geshanzsq-nav-common-swagger: 通用接口文档模块
vue-geshanzsq-nav: 前端模块

前端运行

# 进入项目目录
cd vue-geshanzsq-nav

# 安装依赖
npm install

# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org

# 启动服务
npm run serve

浏览器访问 http://127.0.0.1:8023

后端运行

新建数据库,导入 sql/geshanzsq_nav.sql 数据库脚本

geshanzsq-nav/geshanzsq-nav-admin/geshanzsq-nav-admin-application应用启动模块下,有三个配置文件:

application.yml application-dev.yml application-prod.yml
主要配置文件,配置公共信息 开发环境,配置 MySQL 数据库、Redis 缓存、文件路径 生产环境,配置 MySQL 数据库、Redis 缓存、文件路径

上述配置完成后,启动后台管理 geshanzsq-nav-admin-application 应用

在开发环境的 application-dev.yml 配置文件中,配置 MySQL 数据库连接信息、Redis 缓存、网站初始化图片。

导航网站-数据库配置信息

导航网站-文件上传配置信息

注: 需要把目录【网站图片】下的 profile.zip 解压到配置文件的文件路径中,否则内置的网站数据加载不出图片。比如我的是:D:/data/geshanzsq-nav/profile,解压后的文件路径如图所示,如果网站图片加载失败,请检查图片路径是否正确。

导航网站-图片路径

生产环境

在 application.yml 配置文件中,把 dev 改为 prod;并在 application-prod.yml 配置对应的 MySQL 数据库、Redis 环境、文件路径。

后端技术

技术 说明 官网链接
Spring Boot MVC 框架 https://spring.io/projects/spring-boot
Spring Security 认证和授权安全框架 https://spring.io/projects/spring-security
MyBatis Plus ORM 框架 https://mp.baomidou.com
Knife4j 接口文档管理框架 https://doc.xiaominfo.com
Redis 缓存框架 https://redis.io
Lombok 对象封装工具 https://github.com/projectlombok/lombok
Nginx Http 和反向代理 Web 服务器 http://nginx.org

前端技术

说明 官网
前端框架 https://vuejs.org
路由框架 https://router.vuejs.org
全局状态管理框架 https://vuex.vuejs.org
前端 Element Plus 框架 https://element-plus.gitee.io
前端 Http 框架 https://github.com/axios/axios
富文本编辑器 https://www.wangeditor.com
代码语法高亮插件 https://github.com/highlightjs/highlight.js

使用

导航首页:http://127.0.0.1:8023

登录地址:http://127.0.0.1:8023/login

默认用户:admin

默认密码:123456

演示图

导航网站-首页.png

导航网站-首页-格式转换.png

导航网站-分类管理.png

导航网站-网站管理.png

导航网站-网站配置.png

导航网站-接口文档.png

项目部署

最近有挺多小伙伴不知道如何部署到服务器,小格子给大家简单的介绍一下。

安装相关环境

首先需要有一台服务器(建议 Linux 系统),安装 JDK1.8、MySQL 数据库、Redis 缓存、Nginx 代理。不会安装的请看这几篇文章。

Linux 安装 MySQL 8 数据库

Linux 安装 Nginx 代理

前端打包后会生成 dist,上传到服务器对应目录。后端打包为 Jar 包,上传到服务器对应目录并执行下面命令:

nohup java -jar geshanzsq-nav-admin.jar &

Nginx 代理配置

为了保证前端和后端不存在跨域问题,需要部署在 Nginx 进行配置:

server {
    listen       80;
    server_name  localhost;
    
    # 前端项目配置
    location / {
        # root 后面为项目存在目录
        root /data/project/geshanzsq-nav/dist;
        index index.html index.htm;
        try_files $uri $uri/ /index.html;
   }
    
   # 后端项目配置
   location /prod-api/ {
        # 项目 IP 地址和端口,如果不在一台服务器,请填写对应的 IP;如果后端端口修改后,请填写修改后的端口
        proxy_pass http://127.0.0.1:8083//geshanzsq-nav-api/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  } 
}

License

Copyright © 2020-2023 格姗导航 Released under the Apache-2.0.

注:本导航开源的目的是大家能够在本站的基础之上有所启发,做出更多新的东西,比如自定义导航。并不是让大家照搬所有代码。 如果你使用这个开源项目,请注明本项目开源地址。

感谢

若依后台管理系统:RuoYi-Vue

花裤衩:vue-element-admin

geshanzsq-nav's People

Contributors

geshanzsq avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.