Skip to content

wangyuanchuan2022/homework_board

Repository files navigation

作业板系统

一个基于Django和MongoDB的作业板网站,用于学校或教育机构管理学生作业,实现了作业布置、查看、跟踪和统计功能。

功能特点

  • 多角色账户系统:支持管理员、教师和学生三种角色,不同角色拥有不同权限
  • 作业管理:教师可以按科目布置作业,设置起止时间,支持批量创建作业
  • 日历视图:学生可以通过日历查看当天及未来的作业计划
  • 作业跟踪:学生可以标记作业完成状态,教师可查看完成情况
  • 数据统计:教师可以查看学生作业完成情况和统计数据
  • 用户验证:支持登录验证和Cookie存储,确保账户安全
  • 科目管理:支持隐藏不关注的科目,优化学生使用体验
  • 热搜功能:支持发布热门话题,带有点赞和热度计算功能
  • API接口:提供获取当日作业的API接口,方便第三方应用集成

示例界面

以下是系统的主要界面截图:

学生仪表盘

学生可以在仪表盘查看待完成的作业,并通过日历视图管理作业计划。

学生仪表盘

教师仪表盘

教师可以查看和管理已创建的作业,并统计学生完成情况。

教师仪表盘1

教师仪表盘2

桌面客户端

系统支持Windows桌面客户端,方便快速查看作业。

Windows桌面客户端

系统架构

技术栈

  • 后端:Django 3.1
  • 数据库:Sqlite3
  • 前端:Bootstrap 5、jQuery、JavaScript
  • 部署:支持通过WSGI部署到生产环境

项目结构

homework_board/
├── board/                   # 主应用目录
│   ├── models.py            # 数据模型定义
│   ├── views.py             # 视图函数和业务逻辑
│   ├── forms.py             # 表单定义
│   ├── admin.py             # 管理后台配置
│   └── migrations/          # 数据库迁移文件
├── homework_board/          # 项目配置目录
│   ├── settings.py          # 项目设置
│   ├── urls.py              # URL路由配置
│   ├── wsgi.py              # WSGI配置
│   └── asgi.py              # ASGI配置
├── templates/               # HTML模板目录
├── static/                  # 静态文件目录
├── staticfiles/             # 收集的静态文件
├── manage.py                # Django管理命令
└── docs/                    # 项目文档

数据模型

系统包含以下核心数据模型:

  1. User:基于Django AbstractUser扩展,支持多角色(学生、教师、管理员)

    • 学生用户包含学号信息
    • 用户可以设置隐藏不关注的科目
  2. Subject:科目模型,记录学科信息

    • 系统默认提供语文、数学、英语等基础科目
  3. Assignment:作业模型

    • 包含标题、描述、教师、科目、开始日期、截止日期等信息
    • 与教师和科目关联
  4. CompletionRecord:作业完成记录

    • 记录学生对特定作业的完成状态
    • 包含完成时间戳
  5. HotTopic:热搜话题

    • 支持置顶功能
    • 包含热度计算算法,根据时间和点赞数量计算热度
  6. HotTopicLike:热搜点赞记录

    • 记录用户对热搜话题的点赞

安装步骤

  1. 确保已安装Python 3.6+和MongoDB

  2. 克隆仓库

git clone <repository-url>
cd homework_board
  1. 安装依赖
pip install -r requirements.txt
  1. 初始化数据库
python manage.py makemigrations
python manage.py migrate
  1. 创建管理员账号
python manage.py createsuperuser
  1. 启动开发服务器
python manage.py runserver
  1. 访问系统并初始化科目数据
    • 在管理员面板中使用"初始化科目数据"按钮

核心功能详解

用户管理

  1. 用户注册

    • 支持学生和教师角色注册
    • 学生需提供学号,教师需提供邀请码
    • 注册时进行用户名和学号唯一性验证
  2. 用户认证

    • 基于Django认证系统,支持登录/登出
    • 不同角色登录后导向不同的仪表盘
  3. 用户设置

    • 支持修改用户名
    • 支持隐藏不关注的科目
    • 支持账号删除功能

作业管理

  1. 作业创建

    • 教师可选择科目创建作业
    • 设置作业标题、描述、起止时间
    • 支持批量创建作业,提高效率
    • 支持历史作业标题快速选择
  2. 作业编辑

    • 教师可编辑已创建的作业信息
    • 管理员可编辑任何作业
  3. 作业查看

    • 学生通过日历界面查看作业
    • 按科目分类显示作业
    • 显示作业的详细信息和截止时间
  4. 作业完成状态

    • 学生可标记作业为已完成或未完成
    • 教师可查看学生作业完成情况
    • 系统记录作业完成时间

热搜功能

  1. 热搜发布

    • 学生和管理员可发布热搜话题
    • 支持标题和内容编辑
  2. 热搜互动

    • 支持点赞功能
    • 热度随时间衰减,保持话题新鲜度
  3. 热搜管理

    • 管理员可置顶和删除热搜
    • 用户可删除自己发布的热搜

页面功能说明

  1. 学生仪表盘

    • 日历视图显示当月作业计划
    • 按科目分组展示当日作业
    • 支持标记作业完成状态
    • 可查看热搜话题
  2. 教师仪表盘

    • 显示已创建的作业列表
    • 查看学生作业完成统计
    • 提供作业管理功能
  3. 管理员仪表盘

    • 系统概览统计数据
    • 用户管理功能
    • 作业管理功能
    • 系统维护功能
  4. 作业详情页面

    • 显示作业详细信息
    • 列出学生完成情况
    • 教师可编辑作业
  5. 用户设置页面

    • 修改用户名
    • 管理隐藏科目
    • 账号删除选项

API接口

系统提供以下API接口:

  1. 获取今日作业
    • 提供用户名和密码进行身份验证
    • 返回今日需要完成的作业,按科目分组
    • 支持特殊标记(如"明不收"、"周一不收")

开发指南

  1. 添加新功能
    • 在models.py中定义新的数据模型
    • 在views.py中添加相应的视图函数
    • 在urls.py中配置URL路由
    • 在templates目录中创建新的模板

许可证

MIT

About

显示每天的作业,网站

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published