Skip to content
适合中国互联网情况的、现代化的开源课堂辅助系统
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
center 优化首页课程工具栏 Feb 24, 2018
checkin 关闭感恩节祝福 Sep 20, 2018
checkinsystem
course 修复课程时间处理问题 Sep 20, 2018
docker 修改docker auto-backup.sh 中的项目名称 Jun 15, 2018
docs add docs img Apr 16, 2019
media
school
static upgrade bootstrap-fileinput to 4.4.8 Jun 24, 2018
templates remove django-analytical Jun 21, 2018
user_system
wechat
zhengfang 正方同步:部门不存在时自动创建 Feb 24, 2019
.env-example
.gitattributes add linguist-language Feb 23, 2017
.gitignore add docker-compose support Nov 17, 2017
Dockerfile 添加豆瓣源 Jun 14, 2018
LICENSE Create LICENSE Mar 31, 2019
README.md update README Jun 9, 2019
crontab.sh add before time on autostoplesson,and change default corn to today Oct 9, 2016
docker-compose.yml fix docker-compose env error Jan 28, 2018
manage.py 加入celery并且修改配置方式 Sep 10, 2017
requirements.txt
uwsgi_example.ini

README.md

OpenCLMS

介绍

适合中国互联网情况的、现代化的开源课堂辅助系统

功能

  • 微信二维码考勤
  • 作业提交
  • 资源分享
  • 课堂通知微信推送
  • 课堂提问、随机点名
  • 在线课表、课表导入手机日历
  • 课程数据统计,每日报表
  • 正方教务系统数据自动同步
  • 等等

部署方法(Docker-compose)

  1. Clone 代码
git clone https://github.com/xiaohuanshu/OpenCLMS.git
  1. 复制.env-example 到 .env
cp .env-example .env
  1. 编辑.env配置文件,具体配置含义见下文
vim .env
  1. 编译Docker镜像
docker-compose build
  1. 运行所有相关系统(容器)
docker-compose up -d
  1. 更新\初始化数据表
docker-compose run --rm web python manage.py migrate
  1. 首次运行需创建管理员帐号
docker-compose run --rm web python manage.py createsuperuser

随后即可通过浏览器访问0.0.0.0:80,通过创建的管理员帐号密码登录。其它学生、教师、课程数据可通过正方同步功能同步,可通过权限系统赋予其它教师管理员权限。

部署方法(本地)

  1. 安装配置postgresql数据库
  2. 安装配置redis缓存服务
  3. 安装nginx服务器
  4. 安装配置Python2环境
  5. Clone代码
  6. 复制checkinsystem/local_settings_example.py 到 checkinsystem/local_settings.py
  7. 编辑checkinsystem/local_settings.py配置
  8. 测试运行 python manage.py runserver
  9. 更新数据表: python manage.py migrate
  10. 首次运行需创建管理员帐号python manage.py manage.py createsuperuser
  11. 配置uwsgi与nginx

配置文件说明

配置 默认值 说明
POSTGRES_PASSWORD 必填 PostgreSQL数据库密码,在Docker-compose部署模式下,第一次配置有效,后续不能通过修改配置文件来修改密码
SECRET_KEY 必填 系统随机密钥,请确保此值为随机字符串并且不能泄露
DOMAIN 必填 域名,系统必须使用已备案域名
CHECKINURL 必填 签到二维码地址,请填写http://域名/checkin/ck
SCHOOLEMAIL 必填 学校邮箱域(@后面)
QRCODEREFRESHTIME 5 考勤二维码变换时间(s)
BROWSER_DOWNLOAD_URL 客户端下载地址,本系统windows客户端暂不开源
WECHAT_TOKEN 必填 企业微信认证相关,具体见下文
WECHAT_CORPID 必填 注册企业微信时的企业id
WECHAT_AGENTID 必填 企业微信认证相关,具体见下文
WECHAT_APPSECRET 必填 企业微信认证相关,具体见下文
WECHAT_ENCODINGAESKEY 必填 企业微信认证相关,具体见下文
CONTACTSECRET 必填 企业微信认证相关,具体见下文
WECHATQRCODEURL 必填 未关注用户尝试扫描二维码考勤时的关注指引链接
WEEK_FIRST_DAY 1 每周哪一天为首日,1为周一;0为周日
DATABASE_URL 必填 数据库连接配置,请填写 postgres://postgres:数据库密码@postgres:5432/postgres
ZHENGFANG_DATABASE_URL 必填 正方教务系统数据库连接配置,请填写 oracle://zfxfzb:密码@数据库ip地址:1521/ORCL其中正方教务系统默认数据库名为zfxfzb,默认数据库端口为5423
REDIS_URL 必填 Redis配置,使用Docker-Compose填写redis://redis:6379/1即可
EMAIL_HOST 系统邮件SMTP (系统邮件用于发送找回密码等自动触发的邮件)
EMAIL_PORT 系统邮件 SMTP端口
EMAIL_HOST_USER 系统邮件地址
EMAIL_HOST_PASSWORD 系统邮件密码
EMAIL_SUBJECT_PREFIX 邮件标题前缀
SERVER_EMAIL 系统邮件服务地址,同系统邮件地址即可

企业微信配置

OpenCLMS需要一个认证的企业微信帐号

企业微信相关文档:https://work.weixin.qq.com/help?person_id=1

企业微信添加OpenCLMS应用过程:

  1. 打开企业微信-应用与小程序https://work.weixin.qq.com/wework_admin/frame#apps
  2. 在自建标签中,点击创建应用,输入应用名称 image
  3. 创建成功后,记录此应用的AgentId,填入配置文件中的WECHAT_AGENTID,记录Secret填入配置文件中的WECHAT_APPSECRET image
  4. 点击下方网页授权及JS-SDK中的设置可信域名,填入OpenCLMS系统的域名 image
  5. 点击接受消息中的设置API接受,URL处填入http://域名/wechat/api,Token选择随机生成,并写入配置文件中的WECHAT_TOKEN,EncodingAESKey选择随机生成,并写入配置文件中的WECHAT_ENCODINGAESKEY,勾选上报地理位置 image
  6. 点击企业微信授权配置中的设置,在Web网页中的设置授权回调域中填写系统域名 image
  7. 在管理工具-通讯录同步(https://work.weixin.qq.com/wework_admin/frame#apps/contactsApi)中,开启API同步,并生成Secret,写入配置文件中的`CONTACTSECRET` image

系统安装完毕后,运行命令docker-compose run --rm web python manage.py createmenu创建微信应用菜单

Docker-compose 容器说明

使用Docker-compose部署后会启动5个容器

容器名 作用
openclms_nginx_1 Http服务器
openclms_celery_1 用于执行定时任务,定时同步、定时生成考勤统计等
openclms_web_1 OpenCLMS系统主程序
openclms_redis_1 Redis服务器,用于缓存
openclms_postgres_1 PostgreSQL数据库服务器,用于储存数据

日志

全部日志储存在容器下的/usr/src/app/logs目录中,具体含义如下:

日志名 含义
access.log Nginx访问日志
checkinlog.log 考勤相关日志
courselog.log 课程操作相关日志
error.log Nginx访问失败日志
request.log 系统请求错误日志
schoollog.log 学校操作相关日志
userlog.log 用户相关日志
wechatlog.log 与微信交互中的相关日志
zhengfanglog.log 同步正方教务数据的相关日志

License

OpenCLMS项目在GNU Affero General Public License version 3协议下开源

AGPL协议详情:https://www.gnu.org/licenses/agpl-3.0.html

项目地址:https://github.com/xiaohuanshu/OpenCLMS

You can’t perform that action at this time.