Eventyay视频平台开发环境搭建指南
项目概述
Eventyay视频平台是一个开源的在线活动与视频会议解决方案,专为线上会议、研讨会和活动设计。该系统采用现代化的技术架构,包含前端Web应用、后端API服务以及数据库支持,为开发者提供了完整的视频会议开发框架。
开发环境准备
基础要求
开发Eventyay视频平台需要准备以下核心组件:
- 前端Web应用:用户交互界面
- 后端API服务:处理业务逻辑
- PostgreSQL数据库:持久化存储
- Redis数据库:缓存和实时通信支持
推荐开发方式
建议使用Docker容器化方案进行开发,这能确保:
- 环境一致性:所有开发者使用相同的依赖版本
- 快速启动:一键启动所有服务
- 隔离性:不影响本地其他开发环境
所需工具
- Docker引擎
- docker-compose工具
使用Docker快速启动
- 构建并启动所有服务容器:
docker-compose up --build
- 服务启动后:
- 后端API服务运行在8375端口
- 前端Web应用运行在8880端口
- 代码修改会自动触发服务重启
- 导入示例数据(使开发环境更有趣):
docker-compose exec server python manage.py import_config sample/worlds/sample.json
- 访问前端应用:
浏览器打开
http://localhost:8880/
即可体验访客视角
测试与代码质量
运行测试套件
修改代码后应运行测试确保功能正常:
docker-compose exec server pytest
代码风格规范
项目采用严格的代码风格规范,确保代码一致性和可读性。
本地代码检查准备
- 创建Python虚拟环境并激活
- 安装依赖:
cd server
pip install -r requirements.txt
代码格式化与检查命令
- 自动格式化代码:
black venueless tests
isort -rc venueless tests
- 静态代码检查:
flake8 venueless tests
Git提交前检查(推荐)
创建.git/hooks/pre-commit
脚本并添加以下内容:
#!/bin/bash
source ~/.virtualenvs/venueless/bin/activate
cd server
for file in $(git diff --cached --name-only | grep -E '\.py$' | grep -Ev "venueless/celery_app\.py|venueless/settings\.py")
do
echo Scanning $file
git show ":$file" | black -q --check - || { echo "Black failed."; exit 1; }
git show ":$file" | flake8 - --stdin-display-name="$file" || exit 1
git show ":$file" | isort -df --check-only - | grep ERROR && exit 1 || true
done
非Docker开发环境配置
对于偏好原生环境开发的用户,可按以下步骤配置:
数据库准备
- 创建PostgreSQL用户(与系统用户同名):
sudo -u postgres createuser -s $USER
- 创建数据库:
createdb eventyay-video
后端服务配置
- 创建配置文件
server/venueless.cfg
:
[database]
backend = postgresql
name = eventyay-video
- 执行数据库迁移:
./manage.py migrate
- 创建管理员账户:
./manage.py createsuperuser
- 启动开发服务器:
./manage.py runserver
访问管理后台:http://localhost:8000/control/
开发建议
- 环境隔离:无论使用Docker还是原生环境,都建议保持开发环境隔离
- 代码规范:严格遵守项目代码规范,便于团队协作
- 测试驱动:修改功能前先补充或修改对应测试用例
- 实时调试:利用自动重启特性快速验证代码变更
通过以上步骤,开发者可以快速搭建Eventyay视频平台的完整开发环境,开始功能开发或二次开发工作。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考