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.
 
 
YKONGCO 5bd4c82c27
feat(teacher): 添加学生管理功能
1 day ago
routers feat(teacher): 添加学生管理功能 1 day ago
templates feat(teacher): 添加学生管理功能 1 day ago
.env docs(README): 添加项目详细文档 2 days ago
.gitignore docs(README): 添加项目详细文档 2 days ago
.python-version docs(README): 添加项目详细文档 2 days ago
README.md docs(README): 添加项目详细文档 2 days ago
database.py docs(README): 添加项目详细文档 2 days ago
main.py docs(README): 添加项目详细文档 2 days ago
models.py docs(README): 添加项目详细文档 2 days ago
pyproject.toml feat: 添加安全依赖和测试工具 1 day ago
requirements.txt feat: 添加安全依赖和测试工具 1 day ago
utils.py docs(README): 添加项目详细文档 2 days ago
uv.lock feat: 添加安全依赖和测试工具 1 day ago

README.md

<<<<<<< HEAD

mooc-online

=======

MOOC课程管理平台

一个基于FastAPI、Jinja2和PostgreSQL的在线学习平台。

技术栈

  • FastAPI - Web框架
  • Jinja2 - 模板引擎
  • PostgreSQL - 数据库
  • TailwindCSS - 样式框架CDN
  • SQLAlchemy - ORM

功能模块

用户管理

  • 用户注册、登录
  • 权限管理(管理员、教师、学生)
  • 个人信息管理

课程管理

  • 课程创建、编辑、发布、归档
  • 章节/课时管理
  • 课程分类和难度设置

教学管理

  • 作业布置和管理
  • 成绩评定和反馈
  • 公告发布

学习管理

  • 课程选择
  • 学习进度跟踪
  • 作业提交
  • 课时学习

互动交流

  • 课程评价
  • 问答互动
  • 公告查看

数据分析

  • 学习进度统计
  • 成绩分析
  • 课程评价分析

安装和运行

1. 安装依赖

pip install -r requirements.txt

或使用uv

uv pip install -r requirements.txt

2. 配置数据库

确保PostgreSQL数据库已创建并修改.env文件中的数据库配置:

DATABASE_HOSTNAME=your_host
DATABASE_PORT=5432
DATABASE_NAME=mooc
DATABASE_USERNAME=your_username
DATABASE_PASSWORD=your_password

3. 初始化数据库

python init_db.py

4. 运行应用

python app.py

或使用uvicorn

uvicorn app:app --reload

应用将在 http://localhost:8000 启动。

项目结构

.
├── app.py                      # 主应用文件
├── models.py                   # 数据库模型
├── database.py                 # 数据库连接
├── init_db.py                  # 数据库初始化脚本
├── clean_db.py                 # 数据库清理脚本
├── templates/                  # Jinja2模板
│   ├── base.html              # 基础模板
│   ├── index.html             # 首页
│   ├── login.html             # 登录页
│   ├── register.html          # 注册页
│   ├── profile.html           # 个人资料
│   ├── course_detail.html     # 课程详情
│   ├── learn.html             # 学习页面
│   ├── lesson.html            # 课时详情
│   ├── qa.html                # 问答列表
│   ├── qa_new.html            # 提问页面
│   ├── question_detail.html   # 问题详情
│   ├── reviews.html           # 评价列表
│   ├── teacher/               # 教师相关页面
│   │   ├── dashboard.html
│   │   ├── course_form.html
│   │   ├── course_edit.html
│   │   ├── assignments.html
│   │   ├── submissions.html
│   │   └── announcements.html
│   ├── student/               # 学生相关页面
│   │   ├── dashboard.html
│   │   ├── assignments.html
│   │   ├── submit_assignment.html
│   │   └── progress.html
│   └── admin/                 # 管理员相关页面
│       ├── dashboard.html
│       ├── users.html
│       ├── courses.html
│       └── analytics.html
└── static/                     # 静态文件目录

开发规范

  1. 不分离服务端渲染不走API分离
  2. Tailwind仅用TailwindCSS CDN不写独立CSS
  3. 安全SQL参数化、密码哈希、会话超时

数据库表结构

  • users - 用户表
  • courses - 课程表
  • chapters - 章节表
  • lessons - 课时表
  • assignments - 作业表
  • assignment_submissions - 作业提交表
  • enrollments - 选课表
  • learning_progress - 学习进度表
  • course_reviews - 课程评价表
  • qa_questions - 问答问题表
  • qa_answers - 问答回答表
  • announcements - 公告表

默认账号

系统初始没有默认账号,需要通过注册页面创建账号。

许可证

MIT License

ba94de1 (初始化项目)