Skip to content

Development Setup

Param Siddharth edited this page Aug 12, 2021 · 2 revisions

Development Setup

Here, you'll find the instructions to setup the development environment for Jugaadu Rema.

Dependencies for the Canvas API

Setting up the development requires the system to have the dependencies for the node-canvas module set up. The dependencies are required to have the Node.js port of the Canvas API to work properly in the back-end.

The detailed and updated setup information for its dependencies is given in the node-canvas wiki.

OS Command
OS X Using Homebrew:
brew install pkg-config cairo pango libpng jpeg giflib librsvg
Ubuntu sudo apt install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
Fedora sudo yum install gcc-c++ cairo-devel pango-devel libjpeg-turbo-devel giflib-devel
Solaris pkgin install cairo pango pkg-config xproto renderproto kbproto xextproto
OpenBSD doas pkg_add cairo pango png jpeg giflib
Windows See the node-canvas wiki
Others See the node-canvas wiki

Ensuring the abovementioned dependencies are properly set up and configured, install the package dependencies.

cd src
npm ci

If successful, you can proceed to the next step.

Starting Jugaadu Rema in Development Mode

This procedure is relevant only for developing Jugaadu Rema's UI.

Jugaadu Rema runs on port 8081 by default. To use a custom port, use the PORT environment variable.

# For development, listening to code-changes
npm run dev

# For production, not suggested for development
npm start

Atiuttam! Jugaadu Rema is up and running on http://localhost:8081.

Using Jugaadu Rema's CLI

Clone the Jugaadu Rema source code, navigate to the src directory and symbolically link the package for global usage.

cd src

# Link globally
npm link

Execute the CLI using jrema from anywhere.

jrema --help

Output:

...
Welcome to Jugaadu Rema. 🔥
Generates a deployable Jugaadu static build of Rema.

Usage: jrema <options>

Options:
      --help        Show help                                          [boolean]
      --version     Show version number                                [boolean]
  -b, --base-route  The route on which the build will be mounted. [default: "/"]
  -l, --list        A CSV file containing all records.  [default: "records.csv"]
  -k, --output      The CSV file to be generated with updated records.
                                                         [default: "output.csv"]
  -t, --template    The exported Rema template file.  [default: "template.json"]
  -d, --directory   Generate a webpage that lists all certificates.
           [string] [choices: "absent", "visible", "hidden"] [default: "absent"]
  -s, --static-dir  Rema's static directory, needed by templates referencing
                    resources by path.                       [default: "static"]
  -o, --build-dir   The output build directory.               [default: "build"]
      --no-minify   Turn minification off.                             [boolean]
      --preview     Generates a preview of the template.               [boolean]