当前位置: 首页 > news >正文

CS.DEEP | 基于 openGauss 实现的计算机论坛项目

前言

本项目是一个基于前后端分离(后端:SpringBoot + openGauss,前端:Vue3 + Element Plus)实现的开源计算机博客论坛项目,旨在为用户提供一个方便、高效的博客发布和交流平台。

本平台支持 Markdown 编辑,并具有丰富的功能,包括文章的发布、点赞、收藏、评论、搜索等,同时还提供活跃度热力图展示和个人信息管理等功能。其中的一大亮点是平台的搜索功能利用 openGauss 数据库在全局检索的优势来实现。下面来简要介绍此论坛平台:

主要功能介绍

为了方便论坛用户更好地了解本论坛的使用,在此介绍本论坛的主要功能,主要包括:

  • 论坛首页

  • 文章编辑

  • 文章详情页

  • 全局搜索

  • 用户中心

论坛首页

1. 用户可以点击发布进入文章的编辑页面,对于文章编辑页面下文有详细概述。

2. 在首页的侧边可以实时看到论坛的流量情况,包括:用户数、博客数、创立时间。

3. 首页主体是论坛文章的展示,我们采用分页展示的方式,除此之外还有按照发布时间、文章热度、推荐等方式进行排列展示。

94259bd0298899b078c69b7dcaa061da.jpeg

文章编辑

文章编辑页面如下图,主要包括文章标题、文章分类、文章标签、内容主体、文章发布、文章删除几部分内容。

1. 对于文章分类有专业知识、分享发现、吐槽讨论三种可供选择。

2. 对于文章标签用户的可塑性较高,可以任意填写三个与文章相关的标签,但是对于标签的字数有一定的限制。

3. 文章内容的编写采用 markdown 的这一方式来进行,对 markdown 不了解的用户可以点击右上角的问号来查询。

4. 如果未完成文章的内容编写可以点击保存保存到草稿箱;同样也可对文章进行发布和删除操作。

71be26b55cc9b5e5e0cd5d5789abecad.jpeg

文章详情页

1. 文章详情页本平台采用 marked + highlight.js 实现对 markdown 格式的转换,展示文章的标题,标签,正文等内容。

2. 在文章详情页用户可以进行点赞、收藏、评论等功能。

3. 如果用户对文章作者感兴趣可以点击作者头像来进入作者用户的个人信息页进行关注等操作。

7a39f02f8e01fbb172c411018867c4d3.jpeg

全局搜索

1. 本论坛的搜索采用 openGauss 数据库(tsvector 数据类型与 tsquery函数)实现文章的全局关键字搜索,会根据用户输入的关键词进行实时搜索结果的展现。

2. 搜索结果下拉列表只会展示至多5条数据,更多的结果可进行搜索结果页面查看。

61fa7175105e37923af735fdac24b52f.jpeg

用户中心

1. 用户在个人中心可以点击编辑个人资料进行个人信息的编辑。

2. 用户可以实时得到自己的关注数和粉丝数,点击两者可分别进入关注或者粉丝的列表页面。

3. 用户还可以在博客文章的区域看到自己发布的文章。

4. 活跃度热力图展示是本论坛的一大特色,用户可以通过发布文章、对文章进行评论、关注用户等方式得到活跃度的提升,不同颜色代表活跃度的高低,颜色越深代表活跃度越高。用户可以查看过去一年自身的活跃度变化。

c4f908936388ce1f826393a7d0193ccd.jpeg

TODO

1. 实现多种方式登录(微信、github等)

2. 为本论坛增加权限管理,平台使用者分为管理员和普通用户,管理员可实时观察本平台的用户使用情况

3. 添加知识图谱可视化模块,实现用户、博客关联的可视化与交互

4. 实现本论坛的多端运行,主要包括PC端、小程序端、APP三种方式,同时实现用户信息互通


部署


部署方法可见:https://gitee.com/Wa_automat/examples/tree/master/LinZeXun-examples


Issue提出

如有创新的意见或项目bug,请在:https://gitee.com/Wa_automat/examples/tree/master/LinZeXun-examples)处提出issue

最后的最后如果发现论坛的Bug欢迎邮箱联系: cs_deep@163.com,让我们共同维护这个平台吧~

  本文作者


本文内容来自于第六届开源软件创新大赛openGauss赛道开源项目贡献赛二等奖获奖作品—阳光开朗大男孩团队。团队成员主要包括林泽勋、林江荣、梁志标等同学。在这里特别感谢阳光开朗大男孩团队的特别分享。

相关文章:

CS.DEEP | 基于 openGauss 实现的计算机论坛项目

前言 本项目是一个基于前后端分离(后端:SpringBoot openGauss,前端:Vue3 Element Plus)实现的开源计算机博客论坛项目,旨在为用户提供一个方便、高效的博客发布和交流平台。 本平台支持 Markdown 编辑&…...

【ArcGIS Pro微课1000例】0053:基于SQL Server创建与启用地理数据库

之前的文章有讲述基于SQL Server创建企业级地理数据库,本文讲述在SQL Server中创建常规的关心数据库,然后在ArcGIS Pro中将其启用,转换为企业级地理数据库。 1. 在SQL Server中创建数据库** 打开SQL Server 2019,连接到数据库服务器。 展开数据库连接,在数据库上右键→新…...

快速排序(2)

一、快速排序有三种方法:hoare版本、挖坑法、前后指针版本 但是三种方法的核心思想都是一样的,都是将该数组分为左右两半递归式的排序。 1.hoare版本 该方法是先保存a[keyi]位置的值,然后右边先开动找小,找到小后,左…...

持续集成和持续交付

引言 CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一种面向开发和运维团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(亦称:“集成地狱”&#…...

C#、JavaScript、VBScript解析JSON数据源码

本示例使用设备:WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) C#解析JSON数据 string dispstr "{" getChinesecode("扫码") ":}" data; //显示信息,注意中文汉字一定要转换为设备能显…...

JVM面试连环炮:你准备好迎接挑战了吗?

在Java开发领域,JVM面试一直是一个热门话题。作为一名优秀的开发者,你是否已经准备好迎接这场挑战了呢?今天,我们就来深度解析一下JVM面试的热点问题,帮助你更好地应对面试,一举拿下offer! 1、…...

Ansible通过kubernetes.core.k8s_info和kubernetes.core.k8s访问OCP

文章目录 环境OCPClient(Ansible控制节点) 步骤准备工作在client端配置ssh免密登录OCP端在client端安装Ansible kubernetes.core.k8s_info第1次尝试在OCP端安装python和pip3在OCP端安装kubernetes在OCP端安装PyYAML第2次尝试在OCP端配置config文件第3次尝…...

vscode汉化

安装插件 Chinese (Simplified) (简体中文) Language Pack for 重新打开,若还是没有汉化: 【CtrlShiftp】 输入“configure display language”,回车键 选择刚刚安装的 中文(简体)...

美易投资:美国圣诞树价格飙升,涨价的问题所在?

美国圣诞树价格飙升,商家称“拜登经济学”是导致涨价的罪魁祸首 随着圣诞节的临近,美国各地的家庭开始准备庆祝这一传统佳节。然而,今年美国的圣诞树价格却呈现出了明显的上涨趋势。据一些商家反映,这主要是由于“拜登经济学”所致…...

国内外聊天AI大比拼,你知道几个?一键了解最火聊天AI应用!

国内类ChatGPT的AI工具一网打尽 2022年,是一个不平凡的一年。ChatGPT迅速崭露头角,成为备受瞩目的热门话题。特别是在OpenAI发布了基于GPT-3.5模型的ChatGPT版本后,这一产品因其卓越的对话能力和广泛的应用潜力,很快引起了大众的…...

C++STL的vector模拟实现

文章目录 前言成员变量成员函数构造函数push_backpop_backinserterase析构函数拷贝构造 前言 成员变量 namespace but {template<class T>class vector{public:typedef T* iterator;private:iterator _start;iterator _finish;iterator _end_of_storage;}; }我们之前实…...

openssl 常用命令 pkcs12

openssl pkcs12 openssl pkcs12 官方文档 1. 描述 The pkcs12 command allows PKCS#12 files (sometimes referred to as PFX files) to be created and parsed. PKCS#12 files are used by several programs including Netscape, MSIE and MS Outlook. pkcs12 命令是用来创…...

2017下半年软工(桥接模式)

题目——桥接模式&#xff08;抽象调用实现部分&#xff09; package org.example.桥接模式;/*** 桥接模式的核心思想是将抽象部分与它的实现部分分离&#xff0c;使它们可以独立变化&#xff0c;就是说你在实现部分&#xff1a;WinImp、LinuxImp基础上还能加上RedHatImp&#…...

Hive 浅析

Hive是一个简单的LUA沙盒&#xff0c;除了基本的LUA解释器的功能以外&#xff0c;还提供了诸如热加载等功能。 了解HIVE的工作原理有利于了解Lua虚拟机的底层实现机理。 本文从是什么-怎么用-为什么三个维度介绍HIVE。 Hive Hive是什么 hive是一个简单的LUA应用框架,目前基于…...

C 语言中,结构体「.」与「->」的区别

简单来说 「 」的左边是结构体名字时用点符号「.」 「 」的左边是结构体指针时名字时用箭头「->」 对于要读取结构体种的数据时&#xff0c;有下面三种写法&#xff0c;操作是等价的。 struct ListNode a;struct ListNode *p1 &a;/*三种写法*/a.element 2333;p1->e…...

【Java Web学习笔记】5 - XML

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/xml 零、在线文档 XML系列教程 一、XML引出 1.为什么需要XML 1.需求1 :两个程序间进行数据通信? 2.需求2:给一台服务器&#xff0c;做一个配置文件&#xff0c;当服务器程序启动时&#xff0c;去…...

在jupyter notebook中修改其他文件的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

如何在Android中旋转屏幕时避免重新绘制Activity

如何在Android中旋转屏幕时避免重新绘制Activity 在Android开发中&#xff0c;设备旋转通常导致当前活动&#xff08;Activity&#xff09;被销毁并重新创建&#xff0c;这可能导致用户界面重置和不必要的资源重新加载。然而&#xff0c;有时我们希望避免这种行为&#xff0c;…...

离线环境下安装python库(推荐pip download)

离线环境下安装python库&#xff08;推荐pip download&#xff09; 目录 1.需求 2.失败操作&#xff08;注意&#xff09; 3.成功操作 4.其它参考 1.需求 机器部署web系统环境后&#xff0c;就不可再次联网&#xff0c;所以升级python web后端&#xff0c;需要离线安装pyt…...

ubuntu16.04安装ROS+Gazebo

ubuntu16.04安装ROS参考文章 ros安装&#xff08;一键最简安装&#xff0c;吹爆鱼香ROS&#xff0c;请叫我鱼吹&#xff09; ROS篇——Ubuntu快速一键安装ROS或ROS2&#xff08;通用&#xff09; ubuntu安装ROS melodic(最新、超详细图文教程) 配置ubuntu以及安装ros2必要环…...

手动搭建koa+ts项目框架(路由篇)

文章目录 前言一、安装koa-router二、引入koa-router并使用三、优化路由配置总结如有启发&#xff0c;可点赞收藏哟~ 前言 本文基于手动搭建koats项目框架&#xff08;基础篇&#xff09;配置接口路由 一、安装koa-router npm i -S koa-router二、引入koa-router并使用 ./sr…...

c语言:文件操作(1)

前言&#xff1a;为什么要使用文件 使用文件可以让程序在不同运行之间保存和读取数据。这样可以实现持久化存储&#xff0c;即使程序关闭后数据也不会丢失。文件也可以用于数据交换&#xff0c;允许不同程序之间共享信息。在 C 语言中&#xff0c;文件还可以用于读取配置信息&…...

运筹学经典问题(三):最大流问题

问题描述 给定一个图网络 G ( V , E ) G(V, E) G(V,E)&#xff0c;网络中连边的权重代表最大容量&#xff0c;在这个图中找出从起点到终点流量最大的路径。 数学建模 集合&#xff1a; I I I&#xff1a;点的集合&#xff1b; E E E&#xff1a;边的集合。 常量&#x…...

裸机开发与Linux驱动开发的区别

一. 简介 裸机开发&#xff0c;即我们常说的不带系统的单片机开发。 Linux驱动开发&#xff0c;即带文件系统的Linux驱动的开发。 二. 裸机开发与Linux驱动开发的区别 1. 裸机开发 比较底层&#xff0c;跟寄存器打交道&#xff0c;有些 MCU提供了库。 2. Linux驱动开发…...

【蓝桥杯选拔赛真题75】Scratch行走的螃蟹 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch行走的螃蟹 一、题目要求 编程实现 二、案例分析 1、角色分析...

小型洗衣机哪个牌子质量好?迷你洗衣机排名前十名

随着内衣洗衣机的流行&#xff0c;很多小伙伴在纠结该不该入手一款内衣洗衣机&#xff0c;专门来洗一些贴身衣物&#xff0c;答案是非常有必要的&#xff0c;因为我们现在市面上的大型洗衣机只能做清洁&#xff0c;无法对我们的贴身衣物进行一个高强度的清洁&#xff0c;而小小…...

MySQL_9.B-数索引

1.定义&#xff1a;B-树是一类树,包括B-树、B树、B*树等,是一棵自平衡的搜索树,它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点. 2.B-数产生的原因 当数据量非常大时&#xff0c;内存不够用&#xff0c;大部分数据只能存放在磁盘上&#xff0c;只有需要的…...

ubuntu-更改镜像源-系统初始化-安装Clion-C++编译环境-Java安装

文章目录 1.镜像配置文件及更新2.安装java sdk并配置环境变量3.安装Clion4.总结 1.镜像配置文件及更新 将sources.list备份保存为sources.list.backup,以防止有需要的时候更换回来。 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup sudo gedit /etc/apt/source…...

c语言-动态内存管理

文章目录 一、为什么会有动态内存管理二、申请内存函数1、malloc2、free3、calloc4、realloc 三、常见的动态内存的错误四、练习 一、为什么会有动态内存管理 1.我们一般的开辟空间方式&#xff1a; int a 0;//申请4个字节空间 int arr[10] { 0 };//申请40个字节空间2.这样…...

【JAVA杂货铺】一文带你走进面向对象编程的构造方法 | Java| 面向对象编程 | (中)

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏:Java学习系列专栏&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 回顾 构造方法 this关键字 面试题 构造方法的类型 下节预告 代码块 &#x1f352;回顾 之前我们学习了什么是类 什么是…...