Giter Club home page Giter Club logo

ph3-lab-mgmt's Introduction

Phase 3 Lab and Experiment Operations

Introduction

A Virtual Labs Experiment is a systematic collection of learning resources for Engineering students to learn about a single topic in a subject. Each experiment consists of some theory and reading material, interactive simulations and quizes or tests. The authoring process may be different for each institute but the end result is a collection of web-pages that are published together as an Experiment.

Each experiment is a part of of Lab. A Lab is a conceptually a collection of Experiments related to a subject. A Lab is published as a collection of web-pages that provide an entry point for a user to learn about that subject. The list of experiments included in a lab provides links to all the available experiments.

Creating a publishable lab along with all it’s experiments, is a process that involves a lot of manual effort that does not add any value to the lab itself. Labgen is a command-line tool that helps in avoiding all the repeatative effort involved in creating a lab from individual experiments and other lab content.

The following processes are supported by labgen:

  1. Generation of Lab pages.
  2. Deployment of Lab
  3. Build and Deployment of Experiments

The automated build and deployment of experiments is supported only for experiments generated using the Phase 3 experiment authoring process (link?) defined by IIT-B.

Requirements

  1. node 12.12.x
    • Download link: node
    • recommended to install via nvm
  2. npm 6.11.x

Setup

Install Dependencies

npm install

Generating Lab Pages

Create Lab Repository

Create a new lab repository on Github or clone and existing one. The repository should be empty.

Initialize Lab Descriptor

To start with the process of lab generation, you need a Lab Descriptor.

Lab Descriptor is a json file the contains data for lab pages and other information for lab and experiment deployment. This document describes the structure of a lab descriptor file.

Complete and Verify Lab Descriptor

Fill all the values in the <path/to/lab/repo>/lab-descriptor.json file generated above and create a pull-request to get the lab-descriptor approved.

LD Verification Example

Continuing the init example, lets see how to submit the completed lab-descriptor for verification.

In the lab repository, switch to a new branch and edit the json.

cd ~/virtual-labs/myNewLab
git checkout -b lab-descriptor
editor lab-descriptor.json

After filling the json push the file to remote and create a pull request.

git add lab-descriptor.json
git commit -m "lab-descriptor for verification"
git push origin lab-descriptor

Once this pull request is merged to master, do not make any new changes to the lab-descriptor.

Run All

From the Phase-3-Lab-Template repository, run the following.

npm run labgen -- --release minor <path/to/lab/repo>

Building an Experiment

To build an individual experiment first clone the experiment and run the following:

cd <path/to/experiment/repo>
git clone https://github.com/virtual-labs/ph3-lab-mgmt/
cd ph3-lab-mgmt
npm install
npm run build-exp ../

Or, from with this repository:

npm run build-exp <path/to/exp/repo>

The first method is useful when running the script from the github actions pipeline.

The experiment can be found in the build directory with the experiment repository location.

DOCS

DOCUMENTDESCRIPTION
Lab Build ProcessThis document describes the lab build process.
Lab DescriptorThis document describes the structure and functions of the lab-descriptor
Experiment Build ProcessDocument describing the experiment build process.
AnalyticsLab and Experiment Analytics details.
UnitsDefines all types of units in an experiment
Proposed PluginsProposal for moving towards a plugin based architecture.

  • DOCS:
    • Lab Build Process
      • Lab descriptor - DONE
      • templates - TODO
      • staging and deployment process - DONE
    • Experiment build process
      • experiment descriptor - DONE
      • experiment model - DONE
    • Analytics - DONE
    • script usage - DONE
  • quiz - TODO
  • exp process integration and testing - DONE

  • identify modules - WIP
  • FAQ - WIP
  • label -> backend => build-process - DONE

ph3-lab-mgmt's People

Contributors

ojas1 avatar b30wulffz avatar pavanchow avatar raj-vlabs avatar vjspranav avatar hrushikeshj avatar aditya-debug15 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.