wacline
WacLine is a software product line that allows configuration and derivation of web annotation browser extensions for specific domains using pure::variants
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
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
- Host: GitHub
- Owner: onekin
- License: mit
- Language: JavaScript
- Default Branch: master
- Homepage: https://onekin.github.io/WacLine/
- Size: 35.3 MB
Statistics
- Stars: 8
- Watchers: 1
- Forks: 6
- Open Issues: 28
- Releases: 44
Topics
Metadata Files
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.
- Evaluation Software to develop it.
- 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
- eslint:
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)
- Website: http://onekin.org/
- Repositories: 20
- Profile: https://github.com/onekin
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
- @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
- 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