一个基于Django和MongoDB的作业板网站,用于学校或教育机构管理学生作业,实现了作业布置、查看、跟踪和统计功能。
- 多角色账户系统:支持管理员、教师和学生三种角色,不同角色拥有不同权限
- 作业管理:教师可以按科目布置作业,设置起止时间,支持批量创建作业
- 日历视图:学生可以通过日历查看当天及未来的作业计划
- 作业跟踪:学生可以标记作业完成状态,教师可查看完成情况
- 数据统计:教师可以查看学生作业完成情况和统计数据
- 用户验证:支持登录验证和Cookie存储,确保账户安全
- 科目管理:支持隐藏不关注的科目,优化学生使用体验
- 热搜功能:支持发布热门话题,带有点赞和热度计算功能
- API接口:提供获取当日作业的API接口,方便第三方应用集成
以下是系统的主要界面截图:
学生可以在仪表盘查看待完成的作业,并通过日历视图管理作业计划。
教师可以查看和管理已创建的作业,并统计学生完成情况。
系统支持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/ # 项目文档
系统包含以下核心数据模型:
-
User:基于Django AbstractUser扩展,支持多角色(学生、教师、管理员)
- 学生用户包含学号信息
- 用户可以设置隐藏不关注的科目
-
Subject:科目模型,记录学科信息
- 系统默认提供语文、数学、英语等基础科目
-
Assignment:作业模型
- 包含标题、描述、教师、科目、开始日期、截止日期等信息
- 与教师和科目关联
-
CompletionRecord:作业完成记录
- 记录学生对特定作业的完成状态
- 包含完成时间戳
-
HotTopic:热搜话题
- 支持置顶功能
- 包含热度计算算法,根据时间和点赞数量计算热度
-
HotTopicLike:热搜点赞记录
- 记录用户对热搜话题的点赞
-
确保已安装Python 3.6+和MongoDB
-
克隆仓库
git clone <repository-url>
cd homework_board
- 安装依赖
pip install -r requirements.txt
- 初始化数据库
python manage.py makemigrations
python manage.py migrate
- 创建管理员账号
python manage.py createsuperuser
- 启动开发服务器
python manage.py runserver
- 访问系统并初始化科目数据
- 在管理员面板中使用"初始化科目数据"按钮
-
用户注册
- 支持学生和教师角色注册
- 学生需提供学号,教师需提供邀请码
- 注册时进行用户名和学号唯一性验证
-
用户认证
- 基于Django认证系统,支持登录/登出
- 不同角色登录后导向不同的仪表盘
-
用户设置
- 支持修改用户名
- 支持隐藏不关注的科目
- 支持账号删除功能
-
作业创建
- 教师可选择科目创建作业
- 设置作业标题、描述、起止时间
- 支持批量创建作业,提高效率
- 支持历史作业标题快速选择
-
作业编辑
- 教师可编辑已创建的作业信息
- 管理员可编辑任何作业
-
作业查看
- 学生通过日历界面查看作业
- 按科目分类显示作业
- 显示作业的详细信息和截止时间
-
作业完成状态
- 学生可标记作业为已完成或未完成
- 教师可查看学生作业完成情况
- 系统记录作业完成时间
-
热搜发布
- 学生和管理员可发布热搜话题
- 支持标题和内容编辑
-
热搜互动
- 支持点赞功能
- 热度随时间衰减,保持话题新鲜度
-
热搜管理
- 管理员可置顶和删除热搜
- 用户可删除自己发布的热搜
-
学生仪表盘
- 日历视图显示当月作业计划
- 按科目分组展示当日作业
- 支持标记作业完成状态
- 可查看热搜话题
-
教师仪表盘
- 显示已创建的作业列表
- 查看学生作业完成统计
- 提供作业管理功能
-
管理员仪表盘
- 系统概览统计数据
- 用户管理功能
- 作业管理功能
- 系统维护功能
-
作业详情页面
- 显示作业详细信息
- 列出学生完成情况
- 教师可编辑作业
-
用户设置页面
- 修改用户名
- 管理隐藏科目
- 账号删除选项
系统提供以下API接口:
- 获取今日作业
- 提供用户名和密码进行身份验证
- 返回今日需要完成的作业,按科目分组
- 支持特殊标记(如"明不收"、"周一不收")
- 添加新功能
- 在models.py中定义新的数据模型
- 在views.py中添加相应的视图函数
- 在urls.py中配置URL路由
- 在templates目录中创建新的模板
MIT