1 Star 0 Fork 0

temgl / oursite

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

锦江校园交流平台

准备

如何使用(适用于Linux):

  1. 安装docker, 拉取mysql,运行mysql, 创建bbs数据库, 拉取redis, 运行redis
    1. docker pull mysql:latest
    2. docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
    3. mysql -u root -p 接着输入:123456
    4. create database bbs;
    5. docker pull redis:latest
    6. docker run -itd --name redis -p 6379:6379 redis
  2. 创建python虚拟环境和所需的包
    1. pipenv install
  3. 创建数据表
    1. pipenv run python manage.py makemigrations
    2. pipenv run python manage.py migrate
  4. 运行项目
    1. pipenv run python manage.py runserver

功能

用户端功能

  • 注册:用户在注册界面可以提交注册,暂不支持手机短信验证,直接注册。
  • 登录:已注册的用户可以通过正确的用户名和密码登录。
  • 欢迎:主页的导航栏会显示用户名并且欢迎。
  • 查看公告:查看管理员发出的公告。
  • 查看指南:显示在主页的指南。
  • 推荐帖子:每个帖子可以选择推荐在首页显示。
  • 查看类别:可以看到论坛里帖子所有的类别,点击可以查看对应下的帖子。
  • 查看全部帖子:按照时间顺序,查看所有帖子。
  • 帖子筛选:可以根据帖子分类、回复量、发布时间进行组合筛选。
  • 帖子搜索:根据输入关键字查询相关帖子。
  • 发帖:普通用户可以发帖。
  • 查看帖子详细:可以看到帖子的发布时间,作者,类别,标题,简介,详细内容,所有留言信息。
  • 留言:可以在帖子下面发表文字或者图片留言(评论),暂不支持回复评论。
  • 聊天室:一对一聊天,消息暂留15条

架构

  • mysql
  • redis
  • jquery 3.2.0
  • bootstrap v5.1.3
  • dijango 3.2

系统说明

数据库

项目采用mysql进行存储,我使用的是mysql 8.0.27。表之间不采用任何外键关联,逻辑的管理都在控制层完成。每个表的id都由Django自动创建,也同时作为主键。

表与字段

用户表:User
字段名称 字段类型 字段说明
id int 编号,自增,主键
uid vchar(16) 用户名,唯一
password vchar(16) 密码
create_time Date 创建日期
帖子表:Topic
字段名称 字段类型 字段说明
id int 编号,自增,主键
t_uid vchar(16) 帖子作者
t_kind vchar(32) 帖子类型
create_time Date 帖子发布日期
t_photo vchar(128) 帖子主页图,允许为空
t_content vchar(3000) 帖子内容
t_title vchar(64) 帖子标题
t_introduce vchar(256) 帖子介绍
recommend boolean 是否推荐到主页,默认false
回复表:Reply
字段名称 字段类型 字段说明
id int 编号,自增,主键
r_tid vchar(16) 回复的帖子
r_uid vchar(16) 发表回复的人
r_time Date 回复时间
r_photo vchar(128) 回复图片,允许为空
r_content vchar(256) 回复内容
分类表:Kind
字段名称 字段类型 字段说明
id int 编号,自增,主键
k_name vchar(16) 分类名称
公告表:Announcement
字段名称 字段类型 字段说明
id int 编号,自增,主键
a_title vchar(64) 公告名称
a_content vchar(3000) 公告内容,允许为空

数据库代码

数据库代码在模型(models)层:参见/ForumSystem/app01/models.py

用户端

用户端前端

  • 主页:
    • 显示公告:模板和数据渲染生成
    • 显示指南:html固定内容
    • 显示导航栏
      • 登陆后显示:主页、发帖、看帖、欢迎、退出
      • 未登录显示:主页、发帖(点击会跳转到登录)、看帖、登录。
    • 显示推荐帖子:模板和数据渲染生成
    • 显示全部帖子按钮:页面固定
    • 底部栏:显示名称和导航栏
  • 登录&注册页面:
    • 一个输入框:分为用户名和密码
    • 两个按钮(登录/注册)
    • 通过ajax发送登录或者注册请求
  • 全部帖子页面:
    • 论坛名称(左上角):固定显示
    • 搜索框:固定,form表单post提交
    • 导航栏:同上
    • 组合筛选栏
      • 分类筛选:模板和数据渲染得到所有分类显示
      • 回复数量筛选:固定
      • 发布时间筛选:固定
    • 显示全部帖子:模板和数据渲染获取
  • 帖子详情页面:模板和数据渲染获取
    • 论坛名称:同上
    • 导航栏:同上
    • 帖子主图
    • 帖子标题和详细内容
    • 帖子作者、发布时间、分类
    • 发表留言栏:form表单,post提交
    • 显示所有留言:模板和数据渲染获取
  • 公告详情页面:
    • 公告标题
    • 公告内容
  • 发布帖子页面:
    • 一个大form表单,包括帖子的标题、简介、内容、封面图、类别(下拉选择)。
  • 修改密码页面:
    • 用户名框(只显示,不可改)
    • 原密码框
    • 新密码框
    • 确认新密码框
    • 提交(成功后返回主页)、取消(返回主页)按钮

用户端接口

主页
  • url:http://127.0.0.1:8000/home/
  • GET请求
    • 参数:无
    • 返回值:10个最新公告列表,所有推荐贴列表,渲染好的页面
聊天室
所有帖子
  • url:http://127.0.0.1:8000/all-0-0-0
  • GET请求
    • url说明:后3个0指组合筛选不进行筛选
    • 参数:无,也可以说是all后面的3个数字(kid, reply_limit, time_limit)
    • 返回值:根据3个参数选择后的帖子列表
  • POST请求:
    • 参数
      • keys:搜索关键字
    • 返回值:根据关键字搜索到的帖子列表
登录、注册
  • url:http://127.0.0.1:8000/login/
  • GET请求:
    • 参数:无
    • 返回值:登录页面
  • POST请求:
    • 参数:
      • type:login 或者 register
      • uid:用户名
      • pwd:密码
    • 返回值:
      • msg:信息
      • status:状态,成功与否
发布帖子
  • url:http://127.0.0.1:8000/publish/
  • GET请求:
    • 参数:无
    • 返回值:发布帖子页面
  • POST请求:
    • 参数:
      • t_title:标题
      • t_introduce:介绍
      • t_content:内容
      • t_kind:类别
      • t_photo:主图
    • 返回值:
      • 成功后重定向到单个帖子页面
单个帖子
  • url:http://127.0.0.1:8000/single/1/
  • GET请求:
    • url说明:1就是tid
    • 参数:tid
    • 返回值:帖子相关所有信息,渲染成单个帖子详情页面
  • POST请求:主要用于评论的发表和删除
    • 参数:
      • type:类型,删除评论还是发表评论
      • r_content:评论内容
      • r_photo:评论图片
      • r_id:回复id,删除已有回复才用到
    • 返回值:
      • msg:信息
      • status:状态,成功与否
修改密码
  • url:http://127.0.0.1:8000/edit-pwd/
  • GET请求:
    • 参数:无
    • 返回值:修改密码页面
  • POST请求:
    • 参数:
      • old_pwd:旧密码
      • new_pwd1:新密码
      • new_pwd2:确认新密码
    • 返回值:
      • 成功后重定向到主页

管理员端

管理员前端

  • 管理员登录:
    • 一个输入框:分为用户名和密码
    • 两个按钮(登录/取消)
    • 一个form表单,提交数据
  • 帖子管理:
    • 导航栏:帖子管理、公告管理、分类管理
    • 欢迎头部
    • 帖子列表:序号、名称、简介、推荐、操作
      • 推荐操作:绑定ajax,刷新页面
      • 取消推荐操作:ajax,刷新
      • 查看操作:跳转帖子详情页面
      • 删除操作:ajax,同时刷新
  • 公告管理:
    • 导航栏:帖子管理、公告管理、分类管理
    • 欢迎头部
    • 公告列表:序号、标题、操作
      • 查看操作:跳转公告详情页面
      • 删除操作:ajax,同时刷新
  • 分类(板块)管理:
    • 导航栏:帖子管理、公告管理、分类管理
    • 欢迎头部
    • 分类列表:序号、分类名称、操作
      • 查看该分类下所有帖子操作:跳转到全部帖子下组合搜索出分类里的帖子
      • 删除操作:ajax,同时刷新

管理员接口

登录
  • url:http://127.0.0.1:8000/my-admin/
  • GET请求:
    • 参数:无
    • 返回值:管理员登录页面
  • POST请求:
    • 参数:
      • admin_id:管理员用户名
      • admin_pwd:管理员密码
    • 返回值:
      • 成功后重定向到帖子管理页面
    • 注意:管理员我没有做表去存放管理员账号密码,所以在程序里写死了管理员账号为guanliyuan,密码为123456
帖子管理
  • url:http://127.0.0.1:8000/admin-home/
  • GET请求:
    • 参数:无
    • 返回值:所有帖子信息,渲染后的帖子管理页面,需要验证管理员是否登录(使用session)
  • POST请求:
    • 参数:
      • type:post请求类型(以下为type可用的值)
        • zhiding:置顶(推荐)
        • qzhiding:取消置顶
        • delete:删除
      • t_id:帖子id,根据帖子id进行type操作
    • 返回值:
      • msg:信息
      • status:成功与否状态
公告管理
  • url:http://127.0.0.1:8000/announcement/
  • GET请求:
    • 参数:无
    • 返回值:所有公告信息,渲染后的公告管理页面,需要验证管理员是否登录(使用session)
  • POST请求:
    • 参数:
      • type:post请求类型
        • create:创建公告
        • delete:删除公告
      • a_id:公告id,如果type=delete需要公告id
      • a_title:公告标题,如果type=create,需要公告标题
      • a_content:公告内容,如果type=create,需要公告标题
    • 返回值:
      • msg:信息
      • status:成功与否状态
分类管理
  • url:http://127.0.0.1:8000/kind-manage/
  • GET请求:
    • 参数:无
    • 返回值:所有分类信息,渲染后的类别管理页面,需要验证管理员是否登录(使用session)
  • POST请求:
    • 参数:
      • type:post请求类型(删除or创建)
        • create:创建类别
        • delete:删除类别
      • k_id:类别id,如果type=delete需要类别id
      • k_name:类别名称,如果type=create,需要类别名称
    • 返回值:
      • msg:信息
      • status:成功与否状态

空文件

简介

毕业设计 展开 收起
JavaScript 等 5 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/temgl/oursite.git
git@gitee.com:temgl/oursite.git
temgl
oursite
oursite
develop

搜索帮助