基于区块链的毕业设计EdTechHubLib – The EdTech Hub Evidence Library application – EdTechHubLib-edtechhub证据库应用程序

本文提供基于区块链的毕业设计国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,基于区块链的毕业设计EdTechHubLib – The EdTech Hub Evidence Library application – EdTechHubLib-edtechhub证据库应用程序 是一篇很好的国外资料

EdTechHubLib – The EdTech Hub Evidence Library application

This application uses Kerko to provide a user-friendly search and browsing web interface for a bibliography managed with the Zotero reference manager.

About this application

This application is built in Python with the Flask framework.

Some things to know:

  • Although the structure and some bits of code are similar to KerkoApp (version 0.5), no attempt was made in making this application compatible with KerkoApp in any way. Since this application is just a thin layer built over Kerko, it is relatively small and can follow its own destiny, separate from KerkoApp’s.
  • Configuration is generally done in app/config.py, except for secret keys that should not be stored in source control (per the Twelve-factor App methodology).
  • Some of Kerko’s templates are overridden (see the app/templates/app/ directory).
  • The custom Sass stylesheet takes advantage of Bootstrap’s theming capabilities (see static/src/app/scss/styles.scss).
  • Front-end assets such as CSS, JavaScript and icons are bundled with the application. In production, these files are statically served from the static/dist/ directory.
  • Similarly to back-end Python packages, front-end dependencies are retrieved during the installation process. While the former go into your Python virtual environment, the latter go to the static/src/vendor/ directory, which should not be stored in the code repository.
  • If some source assets from static/src/ are modified, you have to run the build process, which generates the content of static/dist/. You normally push the resulting files from static/dist/ to the code repository, so that the built assets can be used on the production server.

Developing EdTechHubLib

Making changes to EdTechHubLib requires a Python development environment. Once the changes are tested in that environment, they can be pushed to the Git repository and deployed on the production server (see the Deploying EdTechHubLib in production section).

Installing the application locally

Pre-requisites:

  • A Python virtual environment using the same Python version as the production server (Python 3.7).
  • Install Node.js (recommended version: 10.x or later). Node.js provides npm, a package manager that is required to install some of the application’s front-end dependencies.

Steps:

  1. With the virtual environment active, install the software by running the following shell commands:

    git clone https://github.com/edtechhub/eth-evidence-library-kerko.git edtechhublib cd edtechhublib pip install -r requirements/dev.txt npm install

    This will install many packages required by Kerko and EdTechHubLib.

  2. Copy dotenv.sample to .env. Open .env in a text editor to assign proper values to the variables outlined below.

    • SECRET_KEY: This variable is required for generating secure tokens in web forms. It should have a secure, random value and it really has to be secret. For this reason, never add your .env file to a code repository.
    • KERKO_ZOTERO_API_KEY: The API key associated to the library on zotero.org. You may have to create that key.
    • KERKO_ZOTERO_LIBRARY_ID: Your personal userID for API calls, as given on zotero.org (you must be logged-in on zotero.org).
    • KERKO_ZOTERO_LIBRARY_TYPE: The type of library on zotero.org (either 'user' for your main personal library, or 'group' for a group library).
  3. Synchronize data from zotero.org:

    flask kerko sync

    If you have a large bibliography and/or large file attachments, that command may take a while to complete (and there is no progress indicator). In production use, that command is usually added to the crontab file for regular execution.

    Note that Kerko provides a few Flask subcommands. To list them all:

    flask kerko --help

    To get details about a given subcommand:

    flask kerko SUBCOMMAND --help
  4. Run EdTechHubLib using Flask’s built-in server:

    flask run
  5. With the server running, open http://localhost:5000/ in your browser to use the application.

Press CTRL+C from the terminal if you wish to stop the server.

Note that Flask’s built-in server is not suitable for production as it doesn’t scale well, but is is perfectly adequate for development.

Upgrading Python dependencies

There are two types of Python dependencies: (1) run dependencies, which are required to run the application; (2) dev dependencies, which are required to build the application. Those are specified in requirements/run.in and requirements/dev.in respectively. To ensure reproducible results, exact package versions are pinned into requirements/run.txt and requirements/dev.txt.

With your virtual environment active, to upgrade a package PACKAGE to its latest version and synchronize all installed dependencies:

pip-compile --upgrade-package PACKAGE --output-file requirements/run.in pip-compile --upgrade-package PACKAGE --output-file requirements/dev.in pip-sync requirements/dev.txt

After adequate testing, the updated requirements/{dev,run}.{in,txt} files can be pushed to the repository for later deployment.

Upgrading front-end dependencies

There are two types of front-end dependencies: (1) asset dependencies, parts of which are ingested by the build process and packaged into bundles, e.g., Bootstrap, jQuery; (2) dev dependencies, which are tools required by the build process, e.g., clean-css-cli, postcss-cli.

To upgrade an asset dependency, manually edit the package’s specification in frontendDependencies section of package.json, then run the following command:

npm install

To upgrade a dev dependency PACKAGE to a version VERSION, run the following command:

npm install PACKAGE@VERSION --save-dev

After a build (see the Building the assets section below) and adequate testing, the updated package.json and package-lock.json files can be pushed to the repository.

Upgrading Kerko or changing Kerko’s configuration

Kerko can be upgraded like regular Python packages (see Upgrading Python dependencies). However, make sure to check Kerko’s changelog. The upgrade may require some changes to EdTechHubLib, or a rebuild of the search index.

Similarly, some change to Kerko’s configuration, especially changes to the KERKO_COMPOSER variable in EdTechHubLib’s app/config.py, may have an impact on the structure of the search index. A rebuild of the search index may be necessary after such change.

With your virtual environment active, to rebuild the search index:

flask kerko clean index flask kerko sync

Building the assets

If some front-end dependencies have been upgraded or if you have manually edited a Sass stylesheet (from static/src/app/scss/), a rebuild of the assets is required. From the application’s directory (the one that contains wsgi.py), and with your virtual environment active:

export PATH=`pwd`/node_modules/.bin:${PATH} flask assets build

If you’re happy with the results, build the minified assets for production use:

export ASSETS_DEBUG=False flask assets build

Then push the updated files from the static/dist/ directory to the repository for later deployment.

Note: Never manually edit the files in static/dist/css/ or static/dist/js/; any change will be overwritten by the build process.

Deploying EdTechHubLib

There are two types of deployment: the initial installation or the deployment of changes to an existing installation.

Installing the application on Gandi

The following procedure has to be performed only once.

  1. Create a new Simple Hosting instance.

  2. Add SSH key(s) to the instance.

  3. Link domain to the instance.

  4. Add Git remote to the local Git repository, e.g.:

    git remote add gandi ssh+git://{instance_id}@git.{datacenter_id}.gpaas.net/default.git git push gandi master

    (Replace {instance_id} and {datacenter_id} with the appropriate values)

  5. Deploy to the instance, e.g.:

    ssh {instance_id}@git.{datacenter_id}.gpaas.net 'deploy default.git'
  6. Activate the Emergency Console (SSH)

  7. SSH into the instance (requires instance password, SSH keys not supported):

    ssh {instance_id}@console.{datacenter_id}.gpaas.net
  8. In the instance, create the .env file in /srv/data/web/vhosts/default/. See step 2 of Installing the application locally for details.

  9. Synchronize data from zotero.org:

    cd /srv/data/web/vhosts/default /srv/data/web/vhosts/default/local/bin/flask kerko sync
  10. In a browser, check that the site works.

  11. Add scheduled task to /srv/data/etc/cron/anacrontab, e.g.:

    @daily 0 kerkosync cd /srv/data/web/vhosts/default && /srv/data/web/vhosts/default/local/bin/flask kerko sync 

Deploying changes to the existing installation on Gandi

The following procedure is necessary to deploy changes to EdTechHubLib into production.

  1. Once all required changes have been implemented, built, and tested in the local environment, tag and push the new version to the repository, e.g.:

    git tag prod-`date -u +%Y%m%d-%H%M` git push gandi master && git push --tags

    If something goes wrong once in production, it will be easy to revert to the previously tagged version.

  2. Deploy to the instance, e.g.:

    ssh {instance_id}@git.{datacenter_id}.gpaas.net 'deploy default.git'
  3. If changes require the search index to be rebuilt, SSH to the instance and run the following commands:

    cd /srv/data/web/vhosts/default /srv/data/web/vhosts/default/local/bin/flask kerko clean index /srv/data/web/vhosts/default/local/bin/flask kerko sync

EdTechHubLib-edtechhub证据库应用程序关于这个应用程序

开发EdTechHubLib

在本地安装应用程序

升级Python依赖项

升级前端依赖项

升级Kerko或更改Kerko的配置

构建资产此应用程序在任何方面都与KerkoApp兼容。由于此应用程序只是构建在Kerko之上的一层薄薄的一层,因此它相对较小,并且可以独立于KerkoApp的应用程序。配置通常在应用程序中完成/配置.py,但不应存储在源代码管理中的密钥除外(根据十二因子应用程序方法)。
  • Kerko的一些模板被覆盖(请参见app/templates/app/目录)。
  • 定制的Sass样式表利用了Bootstrap的主题化功能(参见static/src/app/scss)/样式.scss).
  • 前端资产(如CSS、JavaScript和图标)与应用程序捆绑在一起。在生产环境中,这些文件是从static/dist/目录静态提供的。
  • 与后端Python包类似,在安装过程中检索前端依赖项。前者进入Python虚拟环境,后者进入静态/src/vendor/目录,不应存储在代码库中。
  • 如果修改了static/src/中的某些源资产,则必须运行生成static/dist/内容的构建过程。通常,您可以将生成的文件从static/dist/推送到代码存储库,这样就可以在生产服务器上使用构建的资产。
  • 使用与生产服务器相同的Python版本的Python虚拟环境(python3.7)。
  • 安装节点.js(推荐版本:10.x或更高版本)。节点.js提供npm,它是安装应用程序的一些前端依赖项所需的包管理器。
  • 在虚拟环境处于活动状态时,通过运行以下shell命令安装软件:git clonehttps://github.com/edtechhub/eth-evidence-library-kerko.gitedtechhublib cd edtechhublib pip安装-r要求/开发.txtnpm install这将安装Kerko和EdTechHubLib所需的许多软件包。
  • 复制dotenv.sample到.env。在文本编辑器中打开.env,为下面列出的变量指定适当的值。SECRET_KEY:此变量是在web窗体中生成安全令牌所必需的。它应该有一个安全的,随机的值,而且必须是秘密的。因此,不要将.env文件添加到代码存储库中。KERKO_ZOTERO_API_密钥:与上的库关联的API密钥zotero.org网站. 您可能需要创建该密钥。KERKO_ZOTERO_LIBRARY_ID:API调用的个人用户ID,如zotero.org网站(您必须登录zotero.org网站). KERKO_ZOTERO_LIBRARY_TYPE:上的库类型zotero.org网站(您的主要个人库为“user”,组库为“group”)。
  • SECRET_KEY:此变量是在web窗体中生成安全令牌所必需的。它应该有一个安全的,随机的值,而且必须是秘密的。因此,不要将.env文件添加到代码存储库中。
  • KERKO_ZOTERO_API_密钥:与上的库关联的API密钥zotero.org网站. 您可能需要创建该密钥。
  • KERKO_ZOTERO_LIBRARY_ID:API调用的个人用户ID,如zotero.org网站(您必须登录zotero.org网站).
  • KERKO_ZOTERO_LIBRARY_类型:上的库类型zotero.org网站(您的主要个人库为“user”,组库为“group”)。
  • 同步来自zotero.org网站:flask kerko sync如果您有大型书目和/或大型文件附件,则该命令可能需要一段时间才能完成(并且没有进度指示器)。在生产环境中,该命令通常被添加到crontab文件中以便定期执行。注意Kerko提供了几个Flask子命令。列出它们:flask kerko—帮助获取给定子命令的详细信息:flask kerko子命令–help
  • 使用flask的内置服务器运行EdTechHubLib:flask Run
  • 在服务器运行的情况下,打开ht
  • 此应用程序使用Kerko为Zotero reference manager管理的书目提供用户友好的搜索和浏览web界面。

    开发EdTechHubLib

    这个应用程序是用Python和Flask框架构建的。

    一些需要知道的事情:

    • Kerko的一些模板被覆盖(请参见app/templates/app/目录)。
    • 定制的Sass样式表利用了Bootstrap的主题化功能(参见static/src/app/scss)/样式.scss).
    • 前端资产(如CSS、JavaScript和图标)与应用程序捆绑在一起。在生产环境中,这些文件是从static/dist/目录静态提供的。
    • 与后端Python包类似,在安装过程中检索前端依赖项。前者进入Python虚拟环境,后者进入静态/src/vendor/目录,不应存储在代码库中。
    • 如果修改了static/src/中的某些源资产,则必须运行生成static/dist/内容的构建过程。通常,您可以将生成的文件从static/dist/推送到代码存储库,这样就可以在生产服务器上使用构建的资产。
    • 使用与生产服务器相同的Python版本的Python虚拟环境(python3.7)。
    • 安装节点.js(推荐版本:10.x或更高版本)。节点.js提供npm,它是安装应用程序的一些前端依赖项所需的包管理器。

    在本地安装应用程序

    对EdTechHubLib进行更改需要一个Python开发环境。一旦在该环境中测试了更改,就可以将它们推送到Git存储库并部署到生产服务器上(请参阅在生产中部署EdTechHubLib一节)。

    升级Python依赖项

    先决条件:

    • 在虚拟环境处于活动状态时,通过运行以下shell命令安装软件:git clonehttps://github.com/edtechhub/eth-evidence-library-kerko.gitedtechhublib cd edtechhublib pip安装-r要求/开发.txtnpm install这将安装Kerko和EdTechHubLib所需的许多软件包。
    • 复制dotenv.sample到.env。在文本编辑器中打开.env,为下面列出的变量指定适当的值。SECRET_KEY:此变量是在web窗体中生成安全令牌所必需的。它应该有一个安全的,随机的值,而且必须是秘密的。因此,不要将.env文件添加到代码存储库中。KERKO_ZOTERO_API_密钥:与上的库关联的API密钥zotero.org网站. 您可能需要创建该密钥。KERKO_ZOTERO_LIBRARY_ID:API调用的个人用户ID,如zotero.org网站(您必须登录zotero.org网站). KERKO_ZOTERO_LIBRARY_TYPE:上的库类型zotero.org网站(您的主要个人库为“user”,组库为“group”)。

    步骤:

    1. SECRET_KEY:此变量是在web窗体中生成安全令牌所必需的。它应该有一个安全的,随机的值,而且必须是秘密的。因此,不要将.env文件添加到代码存储库中。
    2. KERKO_ZOTERO_API_密钥:与上的库关联的API密钥zotero.org网站. 您可能需要创建该密钥。
    3. 在服务器运行的情况下,打开ht
    4. 使用Flask的内置服务器运行EdTechHubLib:

      flask run
    5. 在服务器运行的情况下,打开http://localhost:5000/在浏览器中使用该应用程序。

    如果要停止服务器,请从终端按CTRL+C。

    请注意Flask的内置服务器不适合生产,因为它不能很好地扩展,但它完全适合开发。

    升级前端依赖项

    有两种类型的Python依赖关系:(1)运行应用程序所需的运行依赖项;(2)构建应用程序所需的开发依赖项。要求中有规定/磨合和要求/开发区分别。为了确保结果的可重复性,准确的软件包版本被固定在需求中/运行.txt和要求/开发.txt.

    在虚拟环境处于活动状态时,要将包包升级到其最新版本并同步所有已安装的依赖项:

    pip-compile --upgrade-package PACKAGE --output-file requirements/run.in pip-compile --upgrade-package PACKAGE --output-file requirements/dev.in pip-sync requirements/dev.txt

    在充分测试之后,可以将更新后的需求/{dev,run}.{in,txt}文件推送到存储库以供以后部署。

    升级Kerko或更改Kerko的配置

    有两种类型的前端依赖关系:(1)资产依赖关系,其中一部分由构建过程接收并打包成包,例如Bootstrap、jQuery;(2)dev依赖项,它们是构建过程所需的工具,例如clean css cli、postcs cli。

    要升级资产依赖项,请在包.json,然后运行以下命令:

    npm install

    要将dev dependency包升级到版本版本,请运行以下命令:

    npm install PACKAGE@VERSION --save-dev

    在生成(请参阅下面的构建资产部分)和充分的测试之后,更新的包.json和包装-锁定.json可以将文件推送到存储库。

    构建资产此应用程序在任何方面都与KerkoApp兼容。由于此应用程序只是构建在Kerko之上的一层薄薄的一层,因此它相对较小,并且可以独立于KerkoApp的应用程序。配置通常在应用程序中完成/配置.py,但不应存储在源代码管理中的密钥除外(根据十二因子应用程序方法)。
  • Kerko的一些模板被覆盖(请参见app/templates/app/目录)。
  • 定制的Sass样式表利用了Bootstrap的主题化功能(参见static/src/app/scss)/样式.scss).
  • 前端资产(如CSS、JavaScript和图标)与应用程序捆绑在一起。在生产环境中,这些文件是从static/dist/目录静态提供的。
  • 与后端Python包类似,在安装过程中检索前端依赖项。前者进入Python虚拟环境,后者进入静态/src/vendor/目录,不应存储在代码库中。
  • 如果修改了static/src/中的某些源资产,则必须运行生成static/dist/内容的构建过程。通常,您可以将生成的文件从static/dist/推送到代码存储库,这样就可以在生产服务器上使用构建的资产。
  • 使用与生产服务器相同的Python版本的Python虚拟环境(python3.7)。
  • 安装节点.js(推荐版本:10.x或更高版本)。节点.js提供npm,它是安装应用程序的一些前端依赖项所需的包管理器。
  • 在虚拟环境处于活动状态时,通过运行以下shell命令安装软件:git clonehttps://github.com/edtechhub/eth-evidence-library-kerko.gitedtechhublib cd edtechhublib pip安装-r要求/开发.txtnpm install这将安装Kerko和EdTechHubLib所需的许多软件包。
  • 复制dotenv.sample到.env。在文本编辑器中打开.env,为下面列出的变量指定适当的值。SECRET_KEY:此变量是在web窗体中生成安全令牌所必需的。它应该有一个安全的,随机的值,而且必须是秘密的。因此,不要将.env文件添加到代码存储库中。KERKO_ZOTERO_API_密钥:与上的库关联的API密钥zotero.org网站. 您可能需要创建该密钥。KERKO_ZOTERO_LIBRARY_ID:API调用的个人用户ID,如zotero.org网站(您必须登录zotero.org网站). KERKO_ZOTERO_LIBRARY_TYPE:上的库类型zotero.org网站(您的主要个人库为“user”,组库为“group”)。
  • SECRET_KEY:此变量是在web窗体中生成安全令牌所必需的。它应该有一个安全的,随机的值,而且必须是秘密的。因此,不要将.env文件添加到代码存储库中。
  • KERKO_ZOTERO_API_密钥:与上的库关联的API密钥zotero.org网站. 您可能需要创建该密钥。
  • KERKO_ZOTERO_LIBRARY_ID:API调用的个人用户ID,如zotero.org网站(您必须登录zotero.org网站).
  • KERKO_ZOTERO_LIBRARY_类型:上的库类型zotero.org网站(您的主要个人库为“user”,组库为“group”)。
  • 同步来自zotero.org网站:flask kerko sync如果您有大型书目和/或大型文件附件,则该命令可能需要一段时间才能完成(并且没有进度指示器)。在生产环境中,该命令通常被添加到crontab文件中以便定期执行。注意Kerko提供了几个Flask子命令。列出它们:flask kerko—帮助获取给定子命令的详细信息:flask kerko子命令–help
  • 使用flask的内置服务器运行EdTechHubLib:flask Run
  • 在服务器运行的情况下,打开ht
  • Kerko可以像常规Python包一样进行升级(请参见升级Python依赖项)。但是,一定要检查Kerko的变更日志。升级可能需要对EdTechHubLib进行一些更改,或者重建搜索索引。

    同样,Kerko的配置也会发生一些变化,尤其是EdTechHubLib应用程序中Kerko_COMPOSER变量的更改/配置.py,可能会对搜索索引的结构产生影响。在这种更改之后,可能需要重建搜索索引。

    在虚拟环境处于活动状态时,要重建搜索索引:

    flask kerko clean index flask kerko sync

    Building the assets

    如果某些前端依赖项已升级,或者您手动编辑了Sass样式表(来自static/src/app/scss/),则需要重新生成资产。从应用程序的目录(包含wsgi.py),并且在虚拟环境处于活动状态时:

    export PATH=`pwd`/node_modules/.bin:${PATH} flask assets build

    如果您对结果满意,请构建小型资产以供生产使用:

    export ASSETS_DEBUG=False flask assets build

    然后将更新的文件从静态/dist/目录推送到存储库,以便以后部署。

    注意:不要手动编辑static/dist/css/或static/dist/js/中的文件;任何更改都将被生成过程覆盖。

    Deploying EdTechHubLib

    部署有两种类型:初始安装或部署对现有安装的更改。

    Installing the application on Gandi

    以下步骤只需执行一次。

    1. 创建一个新的简单托管实例。

    2. 向实例添加SSH密钥。

    3. 将域链接到实例。

    4. 将Git remote添加到本地Git存储库,例如:

      git remote add gandi ssh+git://{instance_id}@git.{datacenter_id}.gpaas.net/default.git git push gandi master

      (将{instance_id}和{datacenter_id}替换为适当的值)

    5. 部署到实例中,例如:

      ssh {instance_id}@git.{datacenter_id}.gpaas.net 'deploy default.git'
    6. 激活紧急控制台(SSH)

    7. SSH到实例中(需要实例密码,不支持SSH密钥):

      ssh {instance_id}@console.{datacenter_id}.gpaas.net
    8. 在实例中,创建/srv/data/web/vhosts/default/中的.env文件。有关详细信息,请参阅本地安装应用程序的步骤2。

    9. 同步来自zotero.org网站:

      cd /srv/data/web/vhosts/default /srv/data/web/vhosts/default/local/bin/flask kerko sync
    10. 在浏览器中,检查站点是否正常工作。

    11. 将计划任务添加到/srv/data/etc/cron/anacrontab,例如:

      @daily 0 kerkosync cd /srv/data/web/vhosts/default && /srv/data/web/vhosts/default/local/bin/flask kerko sync 

    Deploying changes to the existing installation on Gandi

    要将对EdTechHubLib的更改部署到生产中,必须执行以下过程。

    1. 在本地环境中实施、构建和测试所有必需的更改后,标记新版本并将其推送到存储库,例如:

      git tag prod-`date -u +%Y%m%d-%H%M` git push gandi master && git push --tags

      如果在生产中出现问题,则很容易恢复到以前标记的版本。

    2. 部署到实例,例如:

      ssh {instance_id}@git.{datacenter_id}.gpaas.net 'deploy default.git'
    3. 如果更改需要重建搜索索引,SSH到实例并运行以下命令:

      cd /srv/data/web/vhosts/default /srv/data/web/vhosts/default/local/bin/flask kerko clean index /srv/data/web/vhosts/default/local/bin/flask kerko sync

    部分转自网络,侵权联系删除区块链源码网

    www.interchains.cc

    https://www.interchains.cc/16586.html

    区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 !
    区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 基于区块链的毕业设计EdTechHubLib – The EdTech Hub Evidence Library application – EdTechHubLib-edtechhub证据库应用程序

    提供最优质的资源集合

    立即查看 了解详情