wacline

WacLine is a software product line that allows configuration and derivation of web annotation browser extensions for specific domains using pure::variants

https://github.com/onekin/wacline

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.0%) to scientific vocabulary

Keywords

annotation annotation-activity annotation-client browser-extension chrome chrome-extension javascript nodejs pure-variants software-product-line variants web webannotation
Last synced: 6 months ago · JSON representation

Repository

WacLine is a software product line that allows configuration and derivation of web annotation browser extensions for specific domains using pure::variants

Basic Info
Statistics
  • Stars: 8
  • Watchers: 1
  • Forks: 6
  • Open Issues: 28
  • Releases: 44
Topics
annotation annotation-activity annotation-client browser-extension chrome chrome-extension javascript nodejs pure-variants software-product-line variants web webannotation
Created over 6 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Contributing License Citation

README.md

WacLine

Please note that this is a prototype under development. It is not thought to use in a production environment yet.

WacLine is a Software Product Line to manage heterogeneity in Web Annotation domain. Specifically, WacLine allows configuration and automatically generation of customized web annotation clients to conduct annotation activities in specific domains. Created annotation clients are browser extensions currently compatible with Chromium-like web browsers (Google Chrome, Opera,...).

Requirements for contributors and annotation clients developers

  • Pure::variants v5.0: Our SPL is build on top of pure::variants. Pure::variants is an eclipse plugin for development and deployment of products lines and software families.
  • NodeJS v16: required to compile the resultant generated products. We recommend you to use nvm for UNIX-like systems or for windows to manage multiple versions of nodeJS installed in your system.
  • Gulp v4: a javascript toolkit to manage build tasks over nodeJS. To install it globally run: npm install -g gulp
  • For MacOSX it is required to have installed and updated Xcode
  • Additional packages to develop:
    • eslint: npm install eslint -g

How to create your annotation client

You can follow this small video that creates a sample extension

Step 1. You can create a product variant in ./Variants/ folder in Eclipse. Configure with the features that your annotation client must have to conduct your annotation activity. You can view the full documentation of the feature model here.

Step 2. Generate the product, the resultant will be placed in ./output/

Step 3. Resolve dependencies and compile: * In windows systems: Open a powershell and execute in ./output/<name_of_your_product> folder: ./dependencies.ps1 * In UNIX-like systems: Open a shell and execute in ./output/<name_of_your_product> folder: ./dependencies.sh

Step 4. A compiled browser extension is created in ./output/<name_of_your_product>/dist folder. Drag and drop to your browser's extensions folder (remember that Developer mode must be activated)

Step 5. Test the installed extension in the browser

Examples

Community have created up to 6 variants that can be used as an example, where three of them are already available in Chrome Store: * Highlight&Go: a web annotation client to conduct Systematic Literature Reviews data extraction using Google Sheets * Mark&Go: a web annotation client to conduct assignments marking over Moodle using evaluation rubrics * Review&Go: a web annotation client to conduct papers review based on a customizable reviewing framework * ConceptAndGo: a web annotation client to develop mind maps based on capturing data over the web * Docal: a web annotation client to capture data from legal sentences * Fival: a web annotation client for bachelor degree thesis evaluation

You can find the latest version of each of them in their corresponding branch product/* (e.g., for Highlight&Go the branch is named product/highlightAndGo).

How to contribute

You can check contribution information in contributing notes.

Continuous delivery for application engineers and contributors

Each of the derived products from WacLine are ready to build, ~~test~~ and pack to delivery in browser extensions stores (e.g: Chrome Web Store). Here are described some gulp tasks to facilitate these activities:

Build

Note that ./dependencies.sh or ./dependencies.ps1 described above builts the browser extension to install as a developer in chrome. The following section describes other available options for building.

$ gulp

| Option | Description | |----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------| | --watch | Starts a livereload server and watches all assets.
To reload the extension on change include livereload.js in your bundle. | | --production | Minifies all assets | | --verbose | Log additional data to the console. | | --vendor | Compile the extension for different vendors (chrome, firefox, opera, edge) Default: chrome | | --sourcemaps | Force the creation of sourcemaps. Default: !production |

Pack

Zips your dist directory and saves it in the packages directory.

$ gulp pack --vendor=firefox

Testing

We are currently planning to automatize web annotation clients testing using puppeteer.

Owner

  • Name: Onekin Research Group
  • Login: onekin
  • Kind: organization
  • Location: Donostia (Spain)

Onekin researches the intersection of software engineering and AI. We focus our research on product line engineering, accessibility, AI for education and more!

GitHub Events

Total
  • Member event: 2
Last Year
  • Member event: 2

Dependencies

input/package.json npm
  • @babel/cli ^7.14.3 development
  • @babel/core ^7.14.3 development
  • @babel/plugin-proposal-class-properties ^7.13.0 development
  • @babel/plugin-proposal-export-default-from ^7.12.13 development
  • @babel/plugin-syntax-async-generators ^7.8.4 development
  • @babel/preset-env ^7.14.2 development
  • @babel/register ^7.13.16 development
  • @popperjs/core ^2.9.2 development
  • ansi-colors ^4.1.1 development
  • babel-core ^7.0.0-bridge.0 development
  • babel-eslint ^10.1.0 development
  • babel-loader ^8.2.2 development
  • chai ^4.3.4 development
  • chromereload 0.x.x development
  • core-js ^3.12.1 development
  • debounce ^1.2.1 development
  • del ^6.0.0 development
  • dotenv ^10.0.0 development
  • eslint ^7.27.0 development
  • eslint-config-standard ^16.0.2 development
  • eslint-plugin-import ^2.23.3 development
  • eslint-plugin-node ^11.1.0 development
  • eslint-plugin-promise ^5.1.0 development
  • eslint-plugin-standard ^4.1.0 development
  • eslint-webpack-plugin ^2.5.4 development
  • fancy-log ^1.3.3 development
  • graceful-fs ^4.2.6 development
  • gulp ^4.0.2 development
  • gulp-bump ^3.2.0 development
  • gulp-cache ^1.1.3 development
  • gulp-clean-css ^4.3.0 development
  • gulp-dart-sass ^1.0.2 development
  • gulp-filter ^7.0.0 development
  • gulp-git ^2.10.1 development
  • gulp-if 3.0.0 development
  • gulp-imagemin ^7.1.0 development
  • gulp-json-transform ^0.4.7 development
  • gulp-less ^4.0.1 development
  • gulp-livereload ^4.0.2 development
  • gulp-mocha ^8.0.0 development
  • gulp-plumber ^1.2.1 development
  • gulp-sequence ^1.0.0 development
  • gulp-sourcemaps ^3.0.0 development
  • gulp-tag-version ^1.3.1 development
  • gulp-zip ^5.1.0 development
  • js-yaml ^4.1.0 development
  • mocha ^8.4.0 development
  • regenerator-runtime ^0.13.7 development
  • require-dir ^1.2.0 development
  • sass ^1.32.13 development
  • standard ^16.0.3 development
  • vinyl-named 1.x.x development
  • webpack ^5.37.1 development
  • webpack-cli ^4.7.0 development
  • webpack-dev-server ^3.11.2 development
  • webpack-stream ^6.1.2 development
  • yargs ^17.0.1 development
  • awesomplete ^1.1.5
  • axios ^0.21.1
  • bootstrap ^5.0.1
  • circular-json-es6 ^2.0.2
  • color ^3.1.3
  • color-hash ^2.0.1
  • components-jqueryui ^1.12.1
  • diff-match-patch ^1.0.5
  • doi-regex ^0.1.10
  • dom-anchor-text-position ^5.0.0
  • dom-anchor-text-quote ^4.0.2
  • dom-node-iterator ^5.0.0
  • dom-seek ^5.1.1
  • file-saver ^2.0.5
  • html2canvas ^1.0.0-rc.7
  • hypothesis-api-client ^0.1.12
  • jquery ^3.6.0
  • jquery-contextmenu ^2.9.2
  • js-sha256 ^0.9.0
  • json-form-data ^1.7.2
  • jsonld ^5.2.0
  • jspdf ^2.3.1
  • linkify-urls ^3.1.1
  • lodash ^4.17.21
  • moment ^2.29.1
  • qs ^6.10.1
  • qtip2 ^3.0.3
  • query-string ^7.0.0
  • showdown ^1.9.1
  • sweetalert2 ^11.0.11
  • unique-colors ^1.0.1
  • wildcard ^2.0.0
  • xpath-range ^1.1.1
.github/workflows/codesee-arch-diagram.yml actions
  • Codesee-io/codesee-detect-languages-action latest composite
  • Codesee-io/codesee-map-action latest composite
  • actions/checkout v2 composite
  • actions/setup-java v2 composite
  • actions/setup-node v2 composite
  • actions/setup-python v2 composite
  • ruby/setup-ruby v1 composite