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.
|
|
2 days ago | |
|---|---|---|
| routers | 2 days ago | |
| templates | 2 days ago | |
| .env | 2 days ago | |
| .gitignore | 2 days ago | |
| .python-version | 2 days ago | |
| README.md | 2 days ago | |
| database.py | 2 days ago | |
| main.py | 2 days ago | |
| models.py | 2 days ago | |
| pyproject.toml | 2 days ago | |
| requirements.txt | 2 days ago | |
| utils.py | 2 days ago | |
| uv.lock | 2 days 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/ # 静态文件目录
开发规范
- 不分离:服务端渲染,不走API分离
- Tailwind:仅用TailwindCSS CDN,不写独立CSS
- 安全:SQL参数化、密码哈希、会话超时
数据库表结构
users- 用户表courses- 课程表chapters- 章节表lessons- 课时表assignments- 作业表assignment_submissions- 作业提交表enrollments- 选课表learning_progress- 学习进度表course_reviews- 课程评价表qa_questions- 问答问题表qa_answers- 问答回答表announcements- 公告表
默认账号
系统初始没有默认账号,需要通过注册页面创建账号。
许可证
MIT License
ba94de1 (初始化项目)