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.
|
|
1 week ago | |
|---|---|---|
| .. | ||
| __pycache__ | 1 week ago | |
| static | 2 weeks ago | |
| templates | 2 weeks ago | |
| .env | 3 weeks ago | |
| .env.example | 3 weeks ago | |
| QUICKSTART.md | 3 weeks ago | |
| README.md | 3 weeks ago | |
| app.py | 2 weeks ago | |
| config.py | 3 weeks ago | |
| database.py | 2 weeks ago | |
| requirements.txt | 3 weeks ago | |
| schema_backup.sql | 1 week ago | |
| start.bat | 3 weeks ago | |
| 要求.txt | 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 启动
使用说明
首次使用
- 访问 http://localhost:5000
- 点击"注册账号",可以注册学生或教师账号
- 如需管理员账号,需要手动在数据库中创建:
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'
主要特点
- 严格遵循数据库设计: 所有操作都使用文档中定义的SQL语句
- 简化业务逻辑: 学习功能通过点击按钮实现,测验可以手动输入成绩
- 使用视图: 充分利用预定义的数据库视图简化查询
- 三种角色: 学生、教师、管理员各有独立界面
- 基于Session的认证: 简单的用户会话管理
技术栈
- 后端: Flask (Python Web框架)
- 数据库: PostgreSQL
- 前端: HTML + CSS (响应式设计)
- 数据库驱动: psycopg2
注意事项
- 这是一个教学演示项目,密码加密使用简单的SHA256
- 生产环境应使用更安全的密码哈希算法(如bcrypt)
- 没有实现复杂的前端交互,重点在于展示SQL操作
- 测验功能是模拟的,没有真实的题库和答题逻辑
开发者
数据库课程设计项目 - MOOC管理信息系统
许可证
MIT License