{"id":20566181,"url":"https://github.com/aces/instrument-builder","last_synced_at":"2026-04-11T23:41:56.326Z","repository":{"id":95178285,"uuid":"188890090","full_name":"aces/instrument-builder","owner":"aces","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-03T03:45:19.000Z","size":945,"stargazers_count":0,"open_issues_count":25,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-30T02:39:33.979Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aces.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-27T18:16:25.000Z","updated_at":"2025-02-04T21:16:06.000Z","dependencies_parsed_at":"2023-06-12T07:30:09.561Z","dependency_job_id":null,"html_url":"https://github.com/aces/instrument-builder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aces/instrument-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aces%2Finstrument-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aces%2Finstrument-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aces%2Finstrument-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aces%2Finstrument-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aces","download_url":"https://codeload.github.com/aces/instrument-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aces%2Finstrument-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31699438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T21:17:31.016Z","status":"ssl_error","status_checked_at":"2026-04-11T21:17:24.556Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T04:40:19.446Z","updated_at":"2026-04-11T23:41:56.311Z","avatar_url":"https://github.com/aces.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# instrument-builder\n\n## Overview\n\nThis repo contains all LORIS-ReproSchema shared React components to be used in the front-end development of an Instrument Builder module that can be plugged in both LORIS and MindLogger.\n\nThe React components will include LORIS Core React elements living in the jsx/ directory as well as instrument-builder specific Forms for adding new items to the instrument.\n\n---\n\n## Set up\n\nIn order to use `webpack`, we need to install `Node.js`, `NPM` and additional dependencies.\n\n### 1. Get Node.js\n\nTo check whether or not `Node.js` is installed on your machine, run the following:\n```\nnode -v\n```\n\nIf not installed, use one of the following steps to install for your OS:\n\n**Ubuntu**\n\nFor this install you will need sudo rights\n\n```\ncurl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -\nsudo apt-get install -y nodejs\nsudo apt-get install -y build-essential\n```\n\u003e**Note**: Older LTS version (14.04\u003c=)\n```\ncurl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -\nsudo apt-get install -y nodejs\nsudo apt-get install -y build-essential\n```\n\n**CentOS**\n\n```\ncurl --silent --location https://rpm.nodesource.com/setup_6.x | bash -\nyum -y install nodejs\nyum install gcc-c++ make\n```\n\n**MacOS**\n\nDownload the `Node.js` package from [here](https://nodejs.org/en/)\n\n### 2. Get NPM\n\nOnce `Node.js` is installed, run the following to install `npm`\n\n```\ncurl -L https://www.npmjs.com/install.sh | sudo sh\n```\n\n### 3. Get LORIS dependencies\n\nOnce `Node.js` and `npm` are installed, you are ready to install all necessary `Node.js` dependencies. (i.e `webpack`)\n\nFollow these steps in your terminal:\n\n```bash\n  cd $loris$ # your LORIS home directory\n  npm install --only=dev\n```\n\n\u003e**Note**: Permissions might be adjusted using\n```bash\nsudo chown -R $USER:$(id -gn $USER) ./node_modules\n```\n\n\u003e**Note**: to see a list of all dependencies refer to `package.json`\n\n---\n\n## File Structure\n\n**1. Generic `JSX` files (Loris Core)**\n\nWithin LORIS we have many React components that can be used throughout the different modules. When adding a new generic file, the `JSX` file should be placed in the `jsx/` directory and its compiled file in the `htdocs/js/components` directory.\n\n**2. instrument-builder specific JSX files**\n\nReact components that are designed for this specific instrument_builder module should have its `JSX` file placed in the\n`module/jsx/` directory and its compiled file in the `module/js/` directory.\n\n\n\u003e**Note**: When creating a new JSX file **always** use the `.js` extension or the continuous compilation will not work as expected. The file name of the `JSX` and its compiled file should have the same name.\n\n---\n\n## Transpiling React code\n\nWe need to use `webpack` in order to transpile `JSX` and `ES6` syntax used in our React code into `ES5` syntax understood by all browsers.\n\n**Step 1: Update `webpack.config.js`**\n\nWhen you create a new `ES6/JSX file`, ensure you add it to the ```webpack.config.js``` file under the ```config.entry``` object with the following format:\n```\n'./desc/file.js' : './src/file.js'\n```\n\n**Step 2: Transpiling all files**\n\nTo compile all `ES6/JSX` files in LORIS, run the following command:\n\n```\nnpm run compile\n```\n\nwhich is a short-cut for:\n\n```\n./node_modules/.bin/webpack\n```\n\n**Step 3: Watch all files (optional)**\n\nYou can have webpack watch for changes to all revelant files and compile them on the fly:\n\n```\nnpm run watch\n```\n\nwhich is a short-cut for:\n\n```\n./node_modules/.bin/webpack --watch\n```\n\n---\n\n## Coding Guidelines\n- All new React components and major updates to existing React components should follow `ES6 standard`\n- All new and existing Javascript code should pass `ESLint` validation\n- All new components should be compiled using `webpack`\n- All new modules and major module updates should use a single javascript entry-point `index.js` and rely on ES6 modules to include additional components\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faces%2Finstrument-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faces%2Finstrument-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faces%2Finstrument-builder/lists"}