Relate is an Environment for Learning And TEaching

Relate是在 Django上面构建的,可以快速搭建LMS系统,该系统可以方便学习管理和在线课程的发放;

由于最近弄了一个python的课程,所以自己动手测试了以下这个框架

Relate本身包含了后台管理系统,按照官方文档的配置安装就可以启动这个后台管理系统

relate本身是基于YAML和MARKDOWN来进行书写和组织课程相关的材料和测试的。

这些语言可以通过pandoc转换成 其它格式

relate可以渲染 jupyter notebook同时可以嵌入视频

relate本身作为一个服务器和课程开发是分开的,课程开发是一个git的repo,然后只要告诉relate从哪里寻找就好了

这里说一下应用relate创建的课程示例的步骤:

1. 按照指示安装启动服务:

https://documen.tician.de/relate/misc.html

这里不要忘了执行 npm install 这个命令哦

2. 在启动服务器的时候会让输入邮箱和密码

3. 在浏览器打开本地8000端口,就可以访问到web应用,登录的时候采用用户名和密码;其中用户名是计算机的用户名,密码是2中设置的密码

4. 尝试修该local_settings.py,其中重要的部分说明如下:

# {{{ database and site

SECRET_KEY = 'xxx'

ALLOWED_HOSTS = [
"relate.example.com",
"127.0.0.1",
]
EMAIL_HOST = 'smtp.whu.edu.cn'
EMAIL_HOST_USER = 'xxx@whu.edu.cn'
EMAIL_HOST_PASSWORD = 'xxxxx'
EMAIL_PORT = 25
EMAIL_USE_TLS = True # definitely true here ROBOT_EMAIL_FROM = "xxxx@whu.edu.cn"
RELATE_ADMIN_EMAIL_LOCALE = "en_US" SERVER_EMAIL = ROBOT_EMAIL_FROM # ADMINS = (
# ("Example Admin", "admin@example.com"),
# )
ADMINS = (
("xxxx@qq.com", ),
)

要注意自己的邮箱服务要开启smtp服务~

relate会通过登录这个邮箱,然后发一个链接给想要登录的用户(如果这个用户想用邮箱登录的话,这个用户主可以是学生或者管理员),用户打开自己的邮箱,看到链接并点击进入,这个用户就可以访问这个系统了。

# {{{ sign-in methods

RELATE_SIGN_IN_BY_EMAIL_ENABLED = True
RELATE_SIGN_IN_BY_USERNAME_ENABLED = True
RELATE_REGISTRATION_ENABLED = True
RELATE_SIGN_IN_BY_EXAM_TICKETS_ENABLED = True
LANGUAGE_CODE = 'zh-Hans'

这里配置中文显示,注意的是,这里要首先安装,再配置哦,安装的方法在文档里有详细的说明的

5. 使用管理系统创建课程

这里的课程样例在这里

https://github.com/inducer/relate-sample

可以看到这里面所有的文件基本都是YAML格式的

要创建课程并不需要在本地上下载这个repo,需要置顶git的地址就可以,relate会将其存储到某个位置(该位置在配置文件里面进行配置)

,点击设置新课程

按照说明进行设置就可以了。

设置完之后,再访问页面就可以看到课程的连接了,可以点进去看一看,这个时候在另一个浏览器里可以用新的邮箱申请登录哦。

6. 访问和参加课程

访问的话需要登录,登录可以使用邮件,然后relate会给邮件发一个链接,点击链接就可以登录的

要参加课程需要一定的权限。需要在后台进行操作

在站点管理里面找到课程模块下面的课程参与点进去

,然后在这里增加可以参加该课程的用户就可以了:

到这里,基本就可以实现了用户登录,参与课程的审核,以及添加课程和访问课程,还有课程管理等功能

最后就安心的根绝 relate制定的规则开发自己的课程就好了

,这里的课程和莫烦的博客其实有很大的差别,首先它不是公开的,其次里面增加了很多管理上的东西。

在开放课程的时候可以使用博客,这样可以专注课程核心内容的开发。

在运营和管理课程的时候才需要lms系统,总的来说,这个系统有以下功能值得尝试使用:

1. 在特定的时间制定相应的课程和课件

2. 可以实现访问控制

3. 可以对学生的作业进行统一管理和评估

4. 包含课程日历,比如课表信息

5. 可以包含pdf课件以及相应的链接

使用python库relate搭建LMS学习管理系统的更多相关文章

  1. Linux yum的配置 , python环境管理, nginx搭建简单学习

    Linux yum的配置 , python环境管理, nginx搭建简单学习 一丶配置yum的数据仓库 ### yum 工具, 方便,自行解决软件之间的依赖关系. # 配置yum源仓库 (可以使用,清 ...

  2. CTF常用python库PwnTools的使用学习

    之前主要是使用zio库,对pwntools的了解仅限于DynELF,以为zio就可以取代pwntools.后来发现pwntools有很多的高级用法都不曾听说过,这次学习一下用法,希望可以在以后的exp ...

  3. python学习之python开发环境搭建

    Python简介 Python是一种面向对象.解释型计算机程序设计语言.Python语法简洁而清晰,具有丰富和强大的类库等等众多的特性,这是来自百度百科的介绍,在百度百科还能看到它的更详细的介绍信息, ...

  4. ZhuSuan 是建立在Tensorflow上的贝叶斯深层学习的 python 库

    ZhuSuan 是建立在Tensorflow上的贝叶斯深层学习的 python 库. 与现有的主要针对监督任务设计的深度学习库不同,ZhuSuan 的特点是深入到贝叶斯推理中,从而支持各种生成模式:传 ...

  5. 最常用的几个python库--学习引导

    核心库 1.NumPy 当我们用python来处理科学计算任务时,不可避免的要用到来自SciPy  Stack的帮助.SciPy Stack是一个专为python中科学计算而设计的软件包,注意不要将它 ...

  6. Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建;学习Python语言,利用Python语言来写测试用例。加油!!!

    Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建:学习Python语言,利用Python语言来写测试用例.加油!!!

  7. python学习笔记:安装boost python库以及使用boost.python库封装

    学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C+ ...

  8. 基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境

    基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境 前言一.环境准备环境介绍软件下载VMware下安装UbuntuUbuntu下Anaconda的安 ...

  9. Github好用的Python库使用学习日记

    开源好用的Python库 Overview 所有内容基本源于下面的两个网站 awesome-python python3官方文档 you-get(命令行操作的媒体下载工具) you-get的git项目 ...

随机推荐

  1. 详解intent和intentfilter

    1.Intent对象简介 Intent中文意思指"意图",按照Android的设计理念,Android使用Intent来封装程序的"调用意图",不管启动Acti ...

  2. ISO/IEC 9899:2011 前言

    前言 1.ISO(国际标准组织)与IEC(国际电工技术委员会)为全世界标准形成了专门的系统.作为ISO或IEC成员的国家机构,通过由各自组织所建立的技术委员会来加入国际标准的开发,以处理特定领域的技术 ...

  3. C# 实现HTTP的POST(完整可运行并且通过测试的代码)

    https://blog.csdn.net/qq_21381465/article/details/80016159 我是通过VS2010 ,新建一个winform窗体项目,然后写了一个测试软件,软件 ...

  4. Linux中搜索大于200M的文件

    Linux中清理磁盘空间时,经常需要找出大于200M的文件. 这个命令可以实现这个功能: find / -size +200M -exec du -h {} \;

  5. 大名鼎鼎的UniDAC手工安装

    第一次开博,该写点什么.由于懒,很多事情,都不想动.不过,懒不能解决遗忘的毛病.还是动手,记录一下吧. 好了,言归主题. UniDAC 的手工安装. 现在Delphi,已经发展到了XE6,支持多种移动 ...

  6. 密码工具:KeePassXC

    KeePassXC 开源免费 只支持数据库存放在本地, 跨平台 自动填充 使用浏览器插件时,软件必须启动着 KeePassXC is a community fork of KeePassX, a n ...

  7. Kubernetes 之 MySQL 持久存储和故障转移(十一)

    目录 一.规划 二.部署 1.创建 PV 和 PVC 2.部署 MySQL 3.更新 MySQL 数据 4.故障转移 一.规划 我们接着之前的文档的架构规划进行下面的操作. IP 角色 192.168 ...

  8. 用js实现promise

    /*       自定义promise         1. 执行MyPromise构造函数,要立即执行executor         2. promise实例对象,内部有三种状态          ...

  9. 测试从应用到DB的准确的网络延迟

    最近几大云厂商把底层的基础设施包装起来后,通过Ping等很难知道真正的网络延迟了,因为通过ping还没到db都返回了,如何知道从应用到db的真正网络延迟呢? 用我的脚本 #!/bin/bash m= ...

  10. Qt信号-槽原理剖析--(2)自己实现信号槽

    时间乃是最大的革新家--培根 先了解一下相关宏: qt为c++增加的相关宏:signals, slots,emit 在qt的预编译过程中,这些宏会被替换. 1)#define signals publ ...