You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yeqiang4444 8f3b119854
文档修改
1 week ago
..
__pycache__ 文档修改 1 week ago
static 测试数据与转换脚本+查询优化 2 weeks ago
templates 测试数据与转换脚本+查询优化 2 weeks ago
.env app 3 weeks ago
.env.example app 3 weeks ago
QUICKSTART.md app 3 weeks ago
README.md app 3 weeks ago
app.py 测试数据与转换脚本+查询优化 2 weeks ago
config.py app 3 weeks ago
database.py 测试数据与转换脚本+查询优化 2 weeks ago
requirements.txt app 3 weeks ago
schema_backup.sql 文档修改 1 week ago
start.bat app 3 weeks ago
要求.txt app 3 weeks ago

README.md

MOOC在线学习平台

一个基于Flask + PostgreSQL的简单MOOC管理信息系统用于数据库课程设计。

项目结构

app/
├── app.py              # Flask主应用
├── config.py           # 配置文件
├── database.py         # 数据库连接模块
├── requirements.txt    # Python依赖
├── .env.example        # 环境变量示例
├── static/
│   └── style.css      # CSS样式
└── templates/
    ├── base.html       # 基础模板
    ├── index.html      # 首页
    ├── login.html      # 登录页
    ├── register.html   # 注册页
    ├── student/        # 学生端模板
    ├── teacher/        # 教师端模板
    └── admin/          # 管理员端模板

功能说明

学生端功能

  • 用户注册和登录
  • 浏览已发布的课程
  • 选课
  • 查看个人课程学习情况
  • 点击学习按钮更新学习进度
  • 查看课程章节
  • 参加测验(模拟提交)
  • 查看测验成绩
  • 在讨论区发帖和回复

教师端功能

  • 创建课程
  • 编辑课程信息
  • 添加课程章节
  • 创建课程测验
  • 查看课程学习统计
  • 管理讨论区(隐藏违规评论)

管理员端功能

  • 查看和管理用户(启用/禁用账号)
  • 审核和发布课程
  • 内容监管(删除违规评论)

安装步骤

1. 安装Python依赖

pip install -r requirements.txt

2. 配置数据库

复制 .env.example.env 并修改数据库配置:

cp .env.example .env

编辑 .env 文件:

DB_HOST=localhost
DB_PORT=5432
DB_NAME=mooc_platform
DB_USER=postgres
DB_PASSWORD=你的数据库密码
SECRET_KEY=随机密钥字符串

3. 创建数据库

使用 要求.txt 中的SQL语句创建数据库、表、视图和索引。

在PostgreSQL中执行

-- 创建数据库
CREATE DATABASE mooc_platform
    WITH
    OWNER = postgres
    ENCODING = 'UTF8'
    LC_COLLATE = 'en_US.UTF-8'
    LC_CTYPE = 'en_US.UTF-8'
TEMPLATE = template0;

-- 然后连接到mooc_platform数据库执行要求.txt中的所有建表、建视图、建索引语句

4. 运行应用

python app.py

应用将在 http://localhost:5000 启动

使用说明

首次使用

  1. 访问 http://localhost:5000
  2. 点击"注册账号",可以注册学生或教师账号
  3. 如需管理员账号,需要手动在数据库中创建:
INSERT INTO users (user_id, username, password, role, real_name, email)
VALUES ('1', 'admin', 'c1c224b03cd9bc7b6a86d77f5dace40191766c485cd55dc48caf9ac873335d6f', 'admin', '管理员', 'admin@example.com');
-- 密码是 'admin123' 的SHA256哈希值

SQL语句实现说明

系统中每个功能都对应 要求.txt 中的SQL语句

学生端SQL操作

  • 注册: INSERT INTO users
  • 登录: SELECT ... FROM users WHERE username = ? AND password = ?
  • 浏览课程: SELECT ... FROM courses WHERE status = 'published'
  • 选课: INSERT INTO enrollments
  • 查看我的课程: SELECT * FROM student_course_view WHERE student_id = ?
  • 更新学习进度: UPDATE enrollments SET progress = ?
  • 提交测验: INSERT INTO quiz_results
  • 查看成绩: SELECT * FROM student_quiz_result_view WHERE student_id = ?
  • 发帖: INSERT INTO discussion_comments
  • 回复: INSERT INTO discussion_comments ... parent_id = ?

教师端SQL操作

  • 创建课程: INSERT INTO courses
  • 查看我的课程: SELECT * FROM teacher_course_view WHERE teacher_id = ?
  • 编辑课程: UPDATE courses
  • 添加章节: INSERT INTO sections
  • 创建测验: INSERT INTO quizzes
  • 查看统计: SELECT * FROM teacher_course_statistics_view WHERE course_id = ?
  • 隐藏评论: UPDATE discussion_comments SET status = 'hidden'

管理员端SQL操作

  • 查看用户: SELECT ... FROM users
  • 禁用用户: UPDATE users SET status = 'inactive'
  • 发布课程: UPDATE courses SET status = 'published'
  • 内容监管: SELECT * FROM admin_content_monitor_view
  • 删除评论: UPDATE discussion_comments SET status = 'deleted'

主要特点

  1. 严格遵循数据库设计: 所有操作都使用文档中定义的SQL语句
  2. 简化业务逻辑: 学习功能通过点击按钮实现,测验可以手动输入成绩
  3. 使用视图: 充分利用预定义的数据库视图简化查询
  4. 三种角色: 学生、教师、管理员各有独立界面
  5. 基于Session的认证: 简单的用户会话管理

技术栈

  • 后端: Flask (Python Web框架)
  • 数据库: PostgreSQL
  • 前端: HTML + CSS (响应式设计)
  • 数据库驱动: psycopg2

注意事项

  1. 这是一个教学演示项目密码加密使用简单的SHA256
  2. 生产环境应使用更安全的密码哈希算法如bcrypt
  3. 没有实现复杂的前端交互重点在于展示SQL操作
  4. 测验功能是模拟的,没有真实的题库和答题逻辑

开发者

数据库课程设计项目 - MOOC管理信息系统

许可证

MIT License