项目说明
该项目旨在构建武汉轻工大学算法协会天梯、论坛、网盘一体的网站,目前完成大部分功能,但仍有少部分功能尚未完成。
github仓库地址:whpu-algorithm-union-web
项目时间:2022-7 至 2022-10,暑假期间一个人独立完成,当时没考虑很多就直接写了, 就拿这个练手,不够目前这个项目是废弃了的,如果有同校的想完成相同的工作,我建议使用
wordpress
来搭建相同的平台,我自己写的这个看看就好了😂PS: 本博客就是使用的
wordpress
平台搭建的,项目演示如下:
环境要求
- PHP >= 8.0
- mysql 推荐 8.0(暂未测试最低版本)
demo运行环境:win11 + apache 2.4.53 + php 8.1.6 + mysql 8.0,使用XMAPP3.3.0构建
尚未完成功能
- 用户信息展示界面
- 用户个人信息编辑界面
- 评论删除功能
- 通知功能
- 搜索功能
- 网盘
构建
git到本地
git clone https://github.com/DaYangtuo247/whpu-algorithmUnionWeb
构建数据库
由于本项目目前尚未实现install功能,因此在运行本项目之前,请先构建数据库,将buildDB中的三个文件依次导入mysql,中,使你的数据库有如数据库结构所示结构,然后打开dbConfig.php配置本地数据库地址、账号、密码。
<?php
$config = array(
'host' => 'localhost',
'account' => 'root',
'password' => "Wql247360"
);
return $config;
将algorithmUnionWeb文件夹下的所有文件拷贝到XAMPP安装目录的xampp/htdocs/目录下,在XAMPP中启动apache
启动心跳连接
在windows powershell中输入如下命令,前提要求php环境变量存在且运行正常
E:\xampp\php\php.exe -f "E:\algorithmUnionWeb\control\heartbeat.php" -- -arg1 -arg2
//php所在目录 heartbeat.php所在目录
心跳连接,前台js每隔5分钟发送一次消息,后端接受到消息后返回给前台是否连接成功的消息,以此来判断用户是否在线
网盘
对于网盘的构建,目前的方案如下,在该项目中尚未上传相关文件,如有需要,请联系
- filegator + 阿里云OSS ossfs挂载
- 优点:不限制带宽,由用户网速所决定下载速度
- 缺点:在ossfs不活跃时,首次访问过慢,需要等待5s左右
- filegator + 阿里云OSS FileSystem
- 优点:filegator可以直接操纵oss,下载速度不限
- 缺点:上传大文件会导致中断,目前尚未解决
- Directory Lister + ossfs
- filegator + 服务器空间
- 优点:下载速度由服务器带宽决定,费用高
- 缺点:空间由服务器大小决定
项目目录结构
├─banner //主页公告
├─control
│ ├─workerman
│ ├─connect.php //连接数据库
│ ├─heartbeat.php //心跳连接,检测是否登录状态
│ ├─like.php //点赞
│ ├─login.php //登录
│ ├─loginCheck.php //登录检查
│ ├─quit.php //退出登录
│ ├─register.php //注册
│ ├─updHeadImg.php //更新头像
│ ├─updRanking.php //更新天梯榜单
│ └─workerman.log //workerman日志
│
├─error //报错页面
│ ├─assets
│ └─error.html
│
├─forum
│ ├─API //论坛API接口,包含添加评论、创建文章、更新文章图片、获取文章信息等
│ ├─articleImage //文章内嵌图片存储
│ │ └─Dayangtuo247-1659720697
│ │ └─commentImg //当前文章下的评论图片存储
│ ├─editormd //editmr.md开源markdown编辑器
│ │ └─editormd.js //编辑器控制及调用函数
│ │
│ ├─reply-editor //文章评论回复区域编辑器
│ │ ├─css
│ │ ├─img //评论回复表情
│ │ │ ├─emoji
│ │ │ ├─qq
│ │ │ └─tieba
│ │ └─script
│ ├─temp //创建包含图片的文章但尚未发布图片存储区域
│ ├─article.php //文章主要界面
│ └─create-edit.php //文章编辑器
│
├─script //项目公共函数
│ ├─coco-message.js //弹窗
│ ├─happyimage.min.js //轮播图
│ ├─header.js //登录控件
│ ├─heartbeat.js //心跳检测
│ ├─moment.min.js //时间格式化库,与jquery类似
│ ├─moment-zh-cn.min.js //中文补丁
│ ├─timeFormat.js //时间戳格式化
│ └─loginCheck.js //登录检查
│
├─style //项目样式
│ ├─css
│ ├─font
│ └─image
│
├─userinfo //用户信息相关
│ ├─userPictures //用户头像,default为系统默认头像
│ │ └─default
│ └─userinfo.php //用户个人信息界面
│
├─views //项目模板
│
├─could //网盘,目前尚未构建
│
├─forum.php //论坛首页
│
├─index.php //主页
│
└─ranking.php //天梯首页
数据库结构
├─accout //账号
│ ├─todaylike //今日天梯点赞情况
│ └─user //用户数据
│
├─forum //论坛
│ ├─article //文章内容
│ ├─article-describe //文章描述
│ ├─comment //评论
│ ├─reply //回复
│ └─tags //文章标签
│
├─publicdata //公共数据
│ ├─homepage //主页信息
│ └─rankinglist //天梯表
│
├─mysql
│
├─information_schema
│
├─performance_schema
│
└─sys
鸣谢
该项目的开发离不开以下开源项目,再次感谢