npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vlabs-buildexp

v3.1.6

Published

* Introduction

Downloads

805

Readme

#+title: Phase 3 Lab and Experiment Operations #+setupfile: ./org-html-themes/setup/theme-readtheorg-local.setup #+export_file_name: ./docs/index.html

  • 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: [[https://nodejs.org/en/download/][node]]
      • recommended to install via [[https://github.com/nvm-sh/nvm][nvm]]
    2. npm 6.11.x
  • Setup

** Install Dependencies

#+BEGIN_SRC bash

npm install

#+END_SRC

  • Generating Lab Pages

** Create Lab Repository

Create a new lab repository on [[https://github.com/virtual-labs][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. [[file:lab-descriptor.org][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][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.

#+BEGIN_SRC bash
cd ~/virtual-labs/myNewLab
git checkout -b lab-descriptor
editor lab-descriptor.json
#+END_SRC

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

#+BEGIN_SRC bash
  git add lab-descriptor.json
  git commit -m "lab-descriptor for verification"
  git push origin lab-descriptor
#+END_SRC

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.

#+NAME: labgen-generate #+BEGIN_SRC bash npm run labgen -- --release minor <path/to/lab/repo> #+END_SRC

  • Building an Experiment

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

#+BEGIN_SRC sh 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 ../ #+END_SRC

Or, from with this repository:

#+BEGIN_SRC sh npm run build-exp <path/to/exp/repo> #+END_SRC

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

|--------------------------+---------------------------------------------------------------------------| | DOCUMENT | DESCRIPTION | |--------------------------+---------------------------------------------------------------------------| | [[file:docs/lab-build-process.org][Lab Build Process]] | This document describes the lab build process. | | [[file:docs/lab-descriptor.org][Lab Descriptor]] | This document describes the structure and functions of the lab-descriptor | | [[file:docs/exp-build-process.org][Experiment Build Process]] | Document describing the experiment build process. | | [[file:docs/analytics.org][Analytics]] | Lab and Experiment Analytics details. | | [[docs/units.org][Units]] | Defines all types of units in an experiment | | [[docs/plugins.org][Proposed Plugins]] | Proposal for moving towards a plugin based architecture. | |--------------------------+---------------------------------------------------------------------------|

  • TODO
  • 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