Skip to content

xinghyfish/live-stream-classroom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

live-stream-classroom

综合项目实践项目学习记录+代码

关于作者 @name: 小黄鱼 @email: xinghy.fish@qq.com

项目开发环境:

  • 操作系统:linux ubuntu 20.04
  • python解释器:python3.8.6
  • IDE:vscode或者pycharm(vscode运行配置读取问题参考notes/diary.md
  • 数据库:MySQL
  • 测试浏览器:chromefirefox

项目结构

项目的代码结构如下:

live-stream-classroom
├─ .idea
├─ .vscode
│  └─ settings.json
├─ README.md
├─ demo
├─ notes
│  ├─ WebRTC.md
│  ├─ diary.md
│  ├─ ffmpeg.md
│  └─ nginx.md
├─ src
│  ├─ conf
│  │  └─ server.conf
│  ├─ controller
│  │  ├─ __init__.py
│  │  ├─ __pycache__
│  │  ├─ student.py
│  │  ├─ teacher.py
│  │  └─ websocket.py
│  ├─ main.py
│  ├─ model
│  ├─ package-lock.json
│  ├─ package.json
│  ├─ static
│  │  ├─ avatars
│  │  ├─ css
│  │  ├─ demo
│  │  ├─ icons
│  │  ├─ images
│  │  ├─ js
│  │  └─ resources
│  └─ view
└─ venv

其中:

  • .idea.vscode是IDE的配置文件;
  • notes文件夹为本项目进展过程中的一些技术摘要和日志;
  • README.md文件为本文件;
  • src存储项目的核心代码
  • venv为项目的python虚拟环境

项目的核心代码文件src中,包含以下文件或文件夹:

  • conf为服务器配置文件,包括项目的端口号等;
  • controller存储tornado后端和数据库进行交互的组件,在MVC中表示控制器;
  • model存储tornado中的模型文件,这里主要和数据库直接交互的模块db
  • static文件夹存储了项目的静态文件,例如cssjavascripticonsresources(程序运行中产生的中间文件,例如用户上传的文件、聊天记录、签到记录等)
  • demo文件夹为隔离的测试环境,用于在正式继承功能前对技术核心的实践或代码的细节调试;
  • view文件夹存储了视图相关的html文件
  • main.py表示项目的程序入口,用于启动项目

项目的安装和启动

项目的安装

  1. 使用git安装:打开存储项目的文件夹,在终端输入如下命令:
git clone https://github.com/xinghyfish/live-stream-classroom.git

即可安装。

  1. 直接下载压缩包:点击下载链接即可下载

项目运行配置

项目运行需要数据库支持,需要提前安装MySQL数据库。数据库的配置信息参考src/model/db.pyget_conn()函数,默认的用户名为root,密码为123456,数据库名为online_teaching,服务器为127.0.0.1,端口为默认端口3306

连接数据库,若成功则数据库配置完成。

创建数据库后,需要创建数据库表:

  • SC:学生选课表
  • TC:教师授课表
  • course:课程信息表
  • user:用户信息表

上述各表的DDL如下:

create table course(
   id varchar(10) PRIMARY KEY,
   name varchar(16) NOT NULL,
   credit int NOT NULL,
   class varchar(30) NOT NULL,
   count int,
   ps varchar(500)
);

create table user(
   id int PRIMARY KEY AUTO_INCREMENT,
   username varchar(20) NOT NULL DEFAULT 'User',
   passwd varchar(20) NOT NULL DEFAULT '123456',
   nickname varchar(20),
   avatar blob,
   email varchar(40),
   school varchar(20),
   userID int,
   type char(6) NOT NULL DEFAULT '学生'
);

create table TC(
   teacherName varchar(16),
   courseID varchar(10),
   clock varchar(30),
   status int,
   PRIMARY KEY (teacherName, courseID, clock),
   FOREIGN KEY (teacherName) REFERENCES user(username),
   FOREIGN KEY (courseID) REFERENCES course(id)
);

create table SC(
   studentName varchar(16),
   courseID varchar(10),
   teacherName varchar(16),
   FOREIGN KEY (studentName) REFERENCES user(username),
   FOREIGN KEY (courseID) REFERENCES course(id),
   FOREIGN KEY (teacherName) REFERENCES user(username)
)

创建上述表后,即可运行项目。

项目运行

  1. 打开文件夹src,将项目的python解释器指向venv/bin/python3.8
  2. 在图形化操作界面点击运行按钮或在终端中输入:
python main.py

如果没有错误,即说明项目运行成功。打开浏览器,在浏览器导航栏中输入:127.0.0.1:8888host:port),即可运行项目。

项目问题和解决

项目开发中遇到的问题可以参考文件:notes/diary.md

如果在部署项目时遇到问题或者发现程序中的bug欢迎在issue中提出并commit正确的版本。

About

综合项目实践项目学习记录+代码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published