{"id":21198773,"url":"https://github.com/natlibfi/qvain-js","last_synced_at":"2025-07-10T06:30:46.505Z","repository":{"id":34343680,"uuid":"123440675","full_name":"NatLibFi/qvain-js","owner":"NatLibFi","description":"Qvain frontend","archived":false,"fork":false,"pushed_at":"2022-12-30T17:23:41.000Z","size":14698,"stargazers_count":3,"open_issues_count":26,"forks_count":4,"subscribers_count":3,"default_branch":"next","last_synced_at":"2025-04-05T11:21:59.448Z","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":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NatLibFi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-01T13:47:05.000Z","updated_at":"2019-07-03T13:29:35.000Z","dependencies_parsed_at":"2023-01-15T06:30:58.062Z","dependency_job_id":null,"html_url":"https://github.com/NatLibFi/qvain-js","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/NatLibFi/qvain-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2Fqvain-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2Fqvain-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2Fqvain-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2Fqvain-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NatLibFi","download_url":"https://codeload.github.com/NatLibFi/qvain-js/tar.gz/refs/heads/next","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2Fqvain-js/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264538580,"owners_count":23624436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-20T19:53:21.269Z","updated_at":"2025-07-10T06:30:45.530Z","avatar_url":"https://github.com/NatLibFi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Qvain\n-------\n\nQvain is the metadata editor for the [Fairdata](https://www.fairdata.fi/en/) project by the [Finnish Ministry of Education and Culture](https://minedu.fi/en/). It has been developed by the [National Library of Finland](https://www.kansalliskirjasto.fi/en). It has a front-end written in Javascript and back-end written in [Go](https://golang.org/). This repository contains the javascript front-end.\n\nThe user interface uses the minimal [Vue](https://vuejs.org/) UI framework and related libraries [Vue router](https://router.vuejs.org/) and [Vuex state management](https://vuex.vuejs.org/) to update the [DOM](https://en.wikipedia.org/wiki/Document_Object_Model) to handle different steps of the editing process. The application is written in [ES6](https://kangax.github.io/compat-table/es6/) (also called ECMAScript 2015), the latest standard of Javascript, and packaged into a bundle for the browser by [webpack](https://webpack.js.org/) and [babel](https://babeljs.io/).\n\n\n## Prerequisites \u0026 dependencies\n\nServices:\n\n- Schema service: Qvain needs a schema to build its metadata input interface from; this schema comes from the [iow service](http://iow.csc.fi/model/mrd/)\n- ATT id/login service: the Qvain frontend doesn't handle login, it expects a [JSON web token](https://jwt.io/) to assert the user's identity, which the backend provides\n\n\n## Getting up and running\n\n### Requirements\n\nYou need to have a reasonably recent version of node and (usually included) npm – the Node Package Manager – installed.\n\nMost Javascript development uses [node](https://nodejs.org/) as engine to run the actual Javascript and its package manager [npm](https://www.npmjs.com/) to install dependencies. You can also use [yarn](https://yarnpkg.com/) to manage package dependencies, but the instructions here are for npm.\n\n### Install dependencies\n\nFirst, clone this repository and install the dependencies listed in [package.json](package.json):\n\n```shell\n$ git clone https://.../qvain-js\n$ cd qvain-js\n$ npm install\n[... npm downloads the whole internet ...]\n```\n\nWhen npm finishes, you should have everything you need to run Qvain.\n\n\n### Build for development\n\nTo run the application for development on localhost, run the npm `serve` script:\n\n```shell\n$ npm run serve\n DONE  Compiled successfully in 11715ms                                                                                                                                                                                                                                                       16:50:53\n\n\n   App running at:\n     - Local:   http://localhost:8080/\n     - Network: unavailable\n\n   Note that the development build is not optimized.\n   To create a production build, run npm run build.\n```\n\n... and open a browser window at http://localhost:8080/.\n\n\n### Building dist packages\n\nTo build packages that can be uploaded to a server, run the npm `build` script:\n\n```shell\n$ npm run build\n```\n\n... it will build and bundle files into `./dist`. The contents of this directory is what your production web server should serve.\n\n\n## Releasing a version\n\nTo release a version, forcefully add the `./dist` folder as it is ignored by default and either tag or commit:\n\n```shell\n$ npm run build\n$ git add -f dist/\n$ git tag -a v0.8.0 -m \"Release 0.8.0\"\n$ git push -v\n```\n\n\n## Validator\n\nQvain contains a json-schema validator (sub) package in the `vendor/` directory. The validator has its own test suite based on Mocha and node's assert:\n\n```shell\n$ cd vendor/validator\n$ npm test\n```\n\n\n## Browser support\n\nQvain is a modern [SPA](https://en.wikipedia.org/wiki/Single-page_application) web application written in ES6 (anno 2015) compliant Javascript and transpiled by Webpack and Babel. [The build process creates two bundles](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/): a faster and smaller one with modern ES6 Javascript for browsers supporting Javascript modules – all of the current self-updating browsers – and a slower and larger bundle with code transpiled to ES5 with optional polyfills for old browsers, in an attempt to support those people stuck with old browsers such as IE11.\n\nNote that because Qvain depends on [Vue](https://vuejs.org/v2/guide/installation.html#Compatibility-Note) and [Bootstrap 4](https://getbootstrap.com/docs/4.0/getting-started/browsers-devices/#supported-browsers), it is very unlikely to work on versions of Internet Explorer older than IE10. In short, run Qvain in an [evergreen browser](https://www.w3.org/2001/tag/doc/evergreen-web/).\n\n\n# License\n\nCopyright (c) 2016-2018 The National Library of Finland\n\nCopyright (c) 2019 The Ministry of Education and Culture of Finland\n\nLicensed under the GNU GPL 3.0.\n\nThis repository contains third party software.\nIndividual package dependencies remain the property of their respective owners and under their own respective licenses.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatlibfi%2Fqvain-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnatlibfi%2Fqvain-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatlibfi%2Fqvain-js/lists"}