# ai-fundamental **Repository Path**: chentuo2000/ai-fundamental ## Basic Information - **Project Name**: ai-fundamental - **Description**: 人工智能学习平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-28 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI基础课程子项目 智慧教学平台的AI基础课程子项目,提供专业的AI基础课程学习服务。 ## 项目概述 本项目是智慧教学平台的一个子项目,专注于AI基础课程的教学和学习。项目采用Flask后端框架,SQLite3数据库,以及现代化的前端技术栈构建。 ### 主要特性 - 🎓 **系统化课程体系**:从初级到高级的完整AI课程体系 - 📱 **响应式设计**:支持PC、平板、手机等多种设备 - 🔄 **学习进度跟踪**:实时跟踪用户学习进度和时长 - 🌐 **多环境支持**:开发和生产环境的URL路径配置 - 📊 **数据统计**:丰富的学习数据统计和分析 - 🔌 **RESTful API**:完整的API接口支持 ## 技术栈 ### 后端 - **Flask 2.3.3** - Web框架 - **SQLAlchemy 2.0.21** - ORM数据库操作 - **SQLite3** - 数据库(开发环境) - **Flask-SQLAlchemy** - Flask数据库扩展 ### 前端 - **Bootstrap 5.1.3** - CSS框架 - **jQuery 3.6.0** - JavaScript库 - **Font Awesome 6.0.0** - 图标库 - **响应式设计** - 适配各种设备 ### 开发工具 - **pytest** - 单元测试 - **black** - 代码格式化 - **flake8** - 代码检查 ## 项目结构 ``` ai-fundamentals/ ├── app/ # 应用主目录 │ ├── models/ # 数据模型 │ │ └── __init__.py # 模型定义 │ ├── routes/ # 路由模块 │ │ ├── __init__.py │ │ ├── main.py # 主要路由 │ │ ├── courses.py # 课程相关路由 │ │ └── api.py # API路由 │ ├── static/ # 静态文件 │ │ ├── css/ │ │ │ └── main.css # 主样式文件 │ │ ├── js/ │ │ │ └── main.js # 主JavaScript文件 │ │ └── images/ # 图片资源 │ ├── templates/ # 模板文件 │ │ └── ai/ # AI课程模板 │ │ ├── base.html # 基础模板 │ │ ├── index.html # 首页 │ │ ├── about.html # 关于我们 │ │ ├── contact.html # 联系我们 │ │ ├── courses/ # 课程相关模板 │ │ └── errors/ # 错误页面模板 │ └── utils/ # 工具函数 ├── instance/ # 数据库文件目录 ├── logs/ # 日志文件目录 ├── app.py # 应用入口文件 ├── config.py # 配置文件 ├── init_db.py # 数据库初始化脚本 ├── requirements.txt # 依赖包列表 ├── env.example # 环境变量示例 └── README.md # 项目说明 ``` ## 快速开始 ### 环境要求 - Python 3.8+ - pip 或 conda ### 安装步骤 1. **克隆项目** ```bash git clone cd ai-fundamentals ``` 2. **创建虚拟环境** ```bash python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **配置环境变量** ```bash cp env.example .env # 编辑 .env 文件,修改相应的配置 ``` 5. **初始化数据库** ```bash python init_db.py ``` 6. **启动应用** ```bash python app.py ``` 7. **访问应用** - 开发环境:http://localhost:5003 - 生产环境:http://your-domain/ai/ ## 环境配置 ### 开发环境 开发环境使用以下配置: - 端口:5003 - 数据库:SQLite3(本地文件) - URL前缀:无(直接访问) - 调试模式:开启 ### 生产环境 生产环境使用以下配置: - 端口:5003(内部) - 数据库:SQLite3(可配置为MySQL/PostgreSQL) - URL前缀:/ai(通过反向代理) - 调试模式:关闭 ## API接口 项目提供了完整的RESTful API接口: ### 课程相关 - `GET /api/courses` - 获取课程列表 - `GET /api/courses/{id}` - 获取课程详情 - `GET /api/courses/{id}/lessons` - 获取课程章节 ### 学习进度 - `GET /api/users/{id}/progress` - 获取用户学习进度 - `POST /api/users/{id}/progress` - 更新学习进度 ### 搜索功能 - `GET /api/search` - 搜索课程和章节 ### 统计信息 - `GET /api/stats` - 获取平台统计信息 ## 部署指南 ### Ubuntu 22.04 部署 1. **安装系统依赖** ```bash sudo apt update sudo apt install python3 python3-pip python3-venv nginx ``` 2. **部署应用** ```bash # 上传项目文件到服务器 cd /var/www/ai-fundamentals # 创建虚拟环境 python3 -m venv venv source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 初始化数据库 python init_db.py ``` 3. **配置Nginx反向代理** ```nginx server { listen 80; server_name your-domain.com; location /ai/ { proxy_pass http://127.0.0.1:5003/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 4. **配置系统服务** ```bash # 创建systemd服务文件 sudo nano /etc/systemd/system/ai-fundamentals.service ``` 服务文件内容: ```ini [Unit] Description=AI Fundamentals Flask App After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/var/www/ai-fundamentals Environment="PATH=/var/www/ai-fundamentals/venv/bin" ExecStart=/var/www/ai-fundamentals/venv/bin/python app.py [Install] WantedBy=multi-user.target ``` 5. **启动服务** ```bash sudo systemctl daemon-reload sudo systemctl enable ai-fundamentals sudo systemctl start ai-fundamentals ``` ### Docker 部署 1. **创建Dockerfile** ```dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 5003 CMD ["python", "app.py"] ``` 2. **构建和运行** ```bash docker build -t ai-fundamentals . docker run -d -p 5003:5003 --name ai-fundamentals ai-fundamentals ``` ## 开发指南 ### 代码规范 - 使用 `black` 进行代码格式化 - 使用 `flake8` 进行代码检查 - 使用 `isort` 进行导入排序 ```bash # 格式化代码 black . # 检查代码 flake8 . # 排序导入 isort . ``` ### 测试 ```bash # 运行测试 pytest # 生成覆盖率报告 pytest --cov=app ``` ### 添加新功能 1. 在 `app/models/` 中定义数据模型 2. 在 `app/routes/` 中创建路由 3. 在 `app/templates/` 中创建模板 4. 更新 `app/static/` 中的静态文件 ## 常见问题 ### Q: 如何修改端口号? A: 修改环境变量 `PORT` 或在 `app.py` 中修改默认端口。 ### Q: 如何添加新的课程? A: 可以通过数据库初始化脚本添加,或通过管理界面添加。 ### Q: 如何配置邮件发送? A: 在 `.env` 文件中配置 `MAIL_*` 相关变量。 ### Q: 生产环境如何配置HTTPS? A: 在Nginx配置中添加SSL证书配置。 ## 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 联系方式 - 邮箱:contact@ai-fundamentals.com - 电话:400-123-4567 - 地址:北京市海淀区中关村大街1号 ## 更新日志 ### v1.0.0 (2024-01-01) - 初始版本发布 - 基础课程管理功能 - 用户学习进度跟踪 - 响应式前端界面 - RESTful API接口 ## gitee 简易的命令行入门教程: ### Git 全局设置: - git config --global user.name "Chentuo" - git config --global user.email "chentuo@ms.xab.ac.cn" ### 创建 git 仓库: - mkdir ai-fundamental - cd ai-fundamental - git init - git add . - git commit -m "first commit" - git remote add origin https://gitee.com/chentuo2000/ai-fundamental.git - git push -u origin "master" ### 已有仓库? - cd existing_git_repo - git remote add origin https://gitee.com/chentuo2000/ai-fundamental.git - git push -u origin "master" ### 创建标签: - git tag -a v1.0.0 -m "version 1.0.0" - git push origin v1.0.0 ### 回到上次提交的干净状态 # 硬重置到最近一次提交(HEAD),彻底清空所有本地修改 git reset --hard HEAD ### 从远程拉取3个版本之前git提交 # 假设远程分支是 master,直接执行以下命令即可拉取 3 个版本前并创建分支: # 1. 同步远程最新提交记录 git fetch origin master # 2. 创建并切换到3个版本前的分支 git checkout -b old-version-3 origin/master~3 # 3. (可选)验证当前版本是否正确(查看当前提交说明) git log -1 --oneline 如果这些本地修改是无用的,例如mlp_train_visualization.html,不想保留,直接丢弃(不可逆,修改会丢失): # 强制丢弃指定文件的本地修改(替换为你的文件路径) git checkout -- app/static/ai/Dot-Digital-5x5/mlp_train_visualization.html # 或丢弃所有本地未提交的修改(更彻底,谨慎!) # git reset --hard HEAD # 之后执行切换命令 git checkout -b old-version-3 origin/master~3 警告:git checkout -- 文件名 或 git reset --hard HEAD 会直接删除未提交的修改,无法恢复,确认无用再执行!