{"_id":"@carlsonp/kort","_rev":"3-57ece857760a87ded149014580ac306c","name":"@carlsonp/kort","dist-tags":{"latest":"1.0.1"},"versions":{"0.9.1":{"name":"@carlsonp/kort","version":"0.9.1","description":"A web application that provides UX card sorting, tree testing, and more.","keywords":["UX","User Experience","card sort","tree testing","product reaction","system usability scale","net promoter score"],"main":"app.js","repository":{"type":"git","url":"git+https://github.com/carlsonp/kort.git"},"bugs":{"url":"https://github.com/carlsonp/kort/issues"},"homepage":"https://github.com/carlsonp/kort","dependencies":{"async":"^2.6.1","bcrypt-nodejs":"0.0.3","body-parser":"^1.18.3","bootbox":"^4.4.0","bootstrap":"^4.1.3","clipboard":"^2.0.4","compression":"^1.7.3","connect-flash":"^0.1.1","connect-mongo":"^2.0.3","cookie-parser":"^1.4.3","datatables.net":"^1.10.19","datatables.net-buttons":"^1.5.4","datatables.net-buttons-dt":"^1.5.4","datatables.net-dt":"^1.10.19","dragula":"^3.7.2","ejs":"^2.6.1","express":"^4.16.4","express-session":"^1.15.6","font-awesome":"^4.7.0","helmet":"^3.15.0","jquery":"^3.3.1","jstree":"^3.3.7","mongoose":"^5.3.16","morgan":"^1.9.1","npm-font-open-sans":"^1.1.0","passport":"^0.4.0","passport-google-oauth":"^1.0.0","passport-local":"^1.0.0","pkginfo":"^0.4.1","plotly.js":"^1.42.5","popper.js":"^1.14.6","winston":"^3.1.0"},"devDependencies":{"casperjs":"^1.1.4","eslint":"^5.10.0","mongo-express":"^0.49.0","nodemon":"^1.18.8","phantomjs-prebuilt":"^2.1.16"},"scripts":{"test":"casperjs test ./tests/main.js"},"author":{"name":"Patrick Carlson and Leif Berg"},"license":"GPL-3.0","gitHead":"13db3f50f1bb0c11d07e421ef38763a0ff128a42","_id":"@carlsonp/kort@0.9.1","_npmVersion":"6.5.0","_nodeVersion":"8.13.0","_npmUser":{"name":"carlsonp","email":"carlson2442@gmail.com"},"dist":{"integrity":"sha512-MJzagaThKrZNA5UvM1A+4Cb61jprhj8S02vXVb47Ixpw2pbgiGtoZCKPySRzZo7/8sxqXTpY4RiN2BJXHSUDdw==","shasum":"7585f5660a2bfa235321794cf55b9788a0ecb6bb","tarball":"https://registry.npmjs.org/@carlsonp/kort/-/kort-0.9.1.tgz","fileCount":84,"unpackedSize":1405005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcFL4FCRA9TVsSAnZWagAANn0P/3X7P2SpWWlIxJVw1Ucm\nW1OaaOrh8MOb2dQg5w4jXSvuBG3gyUmJqkavD1rAyUefYE1S1KYwOWW0Uu0F\nq+YNlpqcdt3Gp079LqMfvt1ZrHM662yorZD1KLIuf5Tj22bpQmWary60fHJ3\neU66bLj3shsd51WxXqKVsVVHmN6YactKaAJria7lFC+JURxgHz1blsUs24fj\nQpJ7aAcOrczqCnsmEgnQDtla7c5uRsqOm3wkbKI2BvQBoUtVqa/6i+gJb4PN\nV9YJrOI2cP7dh+0vs2oIrK04n6NlUZ8IUuKKGkRMc6UtGW2VP2SoEfdwXOLK\nVzIT7Jo++47N4YuHjthIzWEzqgnnHS+MaFUVoZ0uhuoNFdA4LKI0wPVZDtOD\nlg6lcTboluQ0X6p+PqILJIrOXe+Ww5euVDRITHg8in8G1crvagFXsFyAeEW+\nVP+NlfZN25DczApxxkWXvNth3uNG3tX1L8EO6ShIUjmv4mPpKedDybUdpXz5\njKCrm8wZE3XW30Cnt4QTSztPxUMXeu5QsOxts8TbHgr7TnC8PCmOmHAEg+ra\n+p0QVtxfi6VlfOfSzO1Sc9GRGZcVzOkTz3cTKnRVFhIIUbA3jQkcjt6ZxxE6\nl+oYuaQxTzT0V4MCTMx23OBUZnQR74EEnqS0mDfBVKWBA8oMi5Ofnj6L4eJN\njkDz\r\n=qJ35\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDipanRmF2erdpX8U2jsrfObnoBUhkScReoohUbtF/fUgIgag0Vk9h5v4zXWCBAXlgAvl3VCWbvKGtKeKU9AqfD+bM="}]},"maintainers":[{"name":"carlsonp","email":"carlson2442@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kort_0.9.1_1544863236713_0.6640545384191907"},"_hasShrinkwrap":false},"1.0.0":{"name":"@carlsonp/kort","version":"1.0.0","description":"A web application that provides UX card sorting, tree testing, and more.","keywords":["UX","User Experience","card sort","tree testing","product reaction","system usability scale","net promoter score"],"main":"app.js","repository":{"type":"git","url":"git+https://github.com/carlsonp/kort.git"},"bugs":{"url":"https://github.com/carlsonp/kort/issues"},"homepage":"https://github.com/carlsonp/kort","dependencies":{"async":"^2.6.1","bcrypt-nodejs":"0.0.3","body-parser":"^1.18.3","bootbox":"^4.4.0","bootstrap":"^4.2.1","clipboard":"^2.0.4","compression":"^1.7.3","connect-flash":"^0.1.1","connect-mongo":"^2.0.3","cookie-parser":"^1.4.3","datatables.net":"^1.10.19","datatables.net-buttons":"^1.5.4","datatables.net-buttons-dt":"^1.5.4","datatables.net-dt":"^1.10.19","dragula":"^3.7.2","ejs":"^2.6.1","express":"^4.16.4","express-session":"^1.15.6","font-awesome":"^4.7.0","helmet":"^3.15.0","jquery":"^3.3.1","jstree":"^3.3.7","mongoose":"^5.4.11","morgan":"^1.9.1","npm-font-open-sans":"^1.1.0","passport":"^0.4.0","passport-google-oauth":"^1.0.0","passport-local":"^1.0.0","pkginfo":"^0.4.1","plotly.js":"^1.44.3","popper.js":"^1.14.7","winston":"^3.2.1"},"devDependencies":{"casperjs":"^1.1.4","eslint":"^5.13.0","mongo-express":"^0.51.1","nodemon":"^1.18.10","phantomjs-prebuilt":"^2.1.16"},"scripts":{"test":"casperjs test ./tests/main.js"},"author":{"name":"Patrick Carlson and Leif Berg"},"license":"GPL-3.0","gitHead":"561097283d7ca6244f69bb38db8be362251a2175","_id":"@carlsonp/kort@1.0.0","_nodeVersion":"8.15.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-XB6WIDU3loIoFgk0X2qw8umlMZC1sK8nzSMWEPr9l70t9mqXqdTQu+i9H32eLOu0swRMOmoWaFM9+lSk0XVikg==","shasum":"e00ed6eca6cbbade0d848e18fda46084a6f85290","tarball":"https://registry.npmjs.org/@carlsonp/kort/-/kort-1.0.0.tgz","fileCount":87,"unpackedSize":1406676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXwUpCRA9TVsSAnZWagAAcZoP/15Wle7kPBCN9FDtHXR5\nNqwq7ow/0zkH9W2464YeehXeDGhF6xFwOsV+Bbf0IYCq9f7QqAIcuEon1tbc\nY6AsJkt3WTqBUsXssEPWOHVJqAxH7IS1tJ+e8uCXFi9A+LU4M1UjU2hTCt4G\nolDzeKZvmuCuoU3e2x1NO5KAAWYgERfgXhQRXYhoP7lE4VkMawe6Jkughmof\n3lh1rj21jDkPrLtDiH3w7twACMVbJwLFRl3/yWST65JymfiZ6xCV2RVn4rzU\n656DFyNPBBJdf/rmznFWTCAYSF5Z/nZYKYcDe6j+qTfJvTCR5M5XUw3OBxw6\nmwLhvye5PvZu1yZnvqnoVw4AE0kAFVvDQDwTNWlNqCpNCrN4snb/+E9TElWP\nCPP5P6rzK7MjKIsBWUGLNfb5FUkAfKh95UWmpTlII14y41FoOgZWneMbe6/i\nr4z2QI8rAYOdX9oG2j7hXtNGlaq4+Ma2Ios0utDsYQVqn83PVTfbifA9Tkkr\nZOsna38xP+wy7jyVVzNunljKyB1rkc5yy1AWMkhNRW7LJbTBZ35JDEPOvDfY\nhYUXZOWghE3OmISYmNvn0kwZKNeR/el8bUGrvnLUOn2qkQIGJ7VsSsXQnA11\n4fJri2++T8OZpRtJglxKJ/xHvyDvMBNBpRIpjcbv7gXZnwdAD9G4iSrYr++x\n4ino\r\n=Q7u8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFMlS1hEw6ZgOUcaRaDDKNVlI2JYXjpJkgNmYdGWRwNhAiEAoB326SSjZ13DwSzoQ7aef4+KoJ934Xqq6KLFwOaku6U="}]},"maintainers":[{"name":"carlsonp","email":"carlson2442@gmail.com"}],"_npmUser":{"name":"carlsonp","email":"carlson2442@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kort_1.0.0_1549731113363_0.7447140979038456"},"_hasShrinkwrap":false},"1.0.1":{"name":"@carlsonp/kort","version":"1.0.1","description":"A web application that provides UX card sorting, tree testing, and more.","keywords":["UX","User Experience","card sort","tree testing","product reaction","system usability scale","net promoter score"],"main":"app.js","repository":{"type":"git","url":"git+https://github.com/carlsonp/kort.git"},"bugs":{"url":"https://github.com/carlsonp/kort/issues"},"homepage":"https://github.com/carlsonp/kort","dependencies":{"async":"^3.2.0","bcryptjs":"^2.4.3","body-parser":"^1.19.0","bootbox":"^5.5.2","bootstrap":"^4.5.3","clipboard":"^2.0.6","compression":"^1.7.4","connect-flash":"^0.1.1","connect-mongo":"^3.2.0","cookie-parser":"^1.4.5","datatables.net":"^1.10.23","datatables.net-buttons":"^1.6.5","datatables.net-buttons-dt":"^1.6.5","datatables.net-dt":"^1.10.23","dragula":"^3.7.3","ejs":"^3.1.5","express":"^4.17.1","express-rate-limit":"^5.2.3","express-session":"^1.17.1","font-awesome":"^4.7.0","helmet":"^4.2.0","jquery":"^3.5.1","jstree":"^3.3.11","mongo-sanitize":"^1.1.0","mongoose":"^5.11.8","morgan":"^1.10.0","npm-font-open-sans":"^1.1.0","passport":"^0.4.1","passport-google-oauth":"^2.0.0","passport-local":"^1.0.0","pkginfo":"^0.4.1","plotly.js":"^1.58.4","popper.js":"^1.16.1","uuid":"^8.3.2","winston":"^3.3.3"},"devDependencies":{"casperjs":"^1.1.4","eslint":"^7.16.0","nodemon":"^2.0.6","npm-check-updates":"^10.2.5","phantomjs-prebuilt":"^2.1.16"},"scripts":{"test":"casperjs test ./tests/main.js"},"author":{"name":"Patrick Carlson and Leif Berg"},"license":"GPL-3.0","gitHead":"374bd2c6d40fc05e32b972a3834a7d6bbf3f4ee9","_id":"@carlsonp/kort@1.0.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-HjyRKUp3If8GMSsG5s5Gytd3fA4KMANRtsJz1PrazNuri5ptMIVwnSmJ7VUks6XE+tke0NFX7vkJPM2dh2J7HQ==","shasum":"1aa8295b8eaa66423252b1952dd77adda8ac4014","tarball":"https://registry.npmjs.org/@carlsonp/kort/-/kort-1.0.1.tgz","fileCount":90,"unpackedSize":2310878,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7WdWCRA9TVsSAnZWagAA1R4P/0RAhK7Luzljcxef2874\nWbGJcm+DkQ+59eGDAfM982vuJzZ3lvTS23MUnaoIrZ5kMWmxrXM1022527pt\nFixfgdHfjwiwJ1XZfVujgRXnHfJklT93jLJx797aaniPaRa3SyeL3ZDhTvH3\nZSXhzP+wHtcigCcXBqCHjJSJrkorFnx1l/+YnEtnR7/N0Q7Fv2pnwHYkdBEN\n2xKNh449jbbk4fEN8SEOaZLIwGSAWSazL/370AEvPp/StG71VUZdrlirSLoZ\nxCAsk65cXLEjY7xN8/xxyXFgiVGGP079SUurkQf25Vjq2HX1lJ664YelTcI/\nuszTm6H4G7MUIe8lKJHU/EJfrHufjTKVHBm7gQKUFssES+mfFhPfJS0txAAV\nC6Dnyidl+uEcCqRQrcM92dxToVWgM9ujE+44RiM+N6dO1dy9ngA5CsIxCPp5\n1b03Bj/zFQjDyqt4TfRqT+s1Zsj673hwa3EedgKp210xgiFCcZEe6jJ19hwr\nFJl8Ypt/K2PFSGMizF7BRe2JZ41OdzbmYl6QDrTa2RWiXMXLFPpcz2u6pqGg\n0hvjT6jrRtXDDoBSffYkuITLK8KQYzMY/xuGRreRFXDmvuRlEvlcO5twoC+s\nrCxUe15+U3YwOh7aLgun1kMMh9Y09Z8IZz6P003E+SeeBufv5DaQUHJQTd/2\nerRp\r\n=9esd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHtnDmVGQJCnFyceJc3shm6p5KK0JW4Ks2FQI9fDMt4oAiEAu5ce4NuGPMwFzJrcWcg1oRcKlUEkp3GjZNVNuaooV80="}]},"_npmUser":{"name":"carlsonp","email":"carlson2442@gmail.com"},"directories":{},"maintainers":[{"name":"carlsonp","email":"carlson2442@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kort_1.0.1_1609394005761_0.7460009415810027"},"_hasShrinkwrap":false}},"time":{"created":"2018-12-15T08:40:36.536Z","0.9.1":"2018-12-15T08:40:36.941Z","modified":"2022-04-04T21:58:14.439Z","1.0.0":"2019-02-09T16:51:53.501Z","1.0.1":"2020-12-31T05:53:26.010Z"},"maintainers":[{"name":"carlsonp","email":"carlson2442@gmail.com"}],"description":"A web application that provides UX card sorting, tree testing, and more.","homepage":"https://github.com/carlsonp/kort","keywords":["UX","User Experience","card sort","tree testing","product reaction","system usability scale","net promoter score"],"repository":{"type":"git","url":"git+https://github.com/carlsonp/kort.git"},"author":{"name":"Patrick Carlson and Leif Berg"},"bugs":{"url":"https://github.com/carlsonp/kort/issues"},"license":"GPL-3.0","readme":"# Kort\n\n![Kort Icon](https://raw.githubusercontent.com/carlsonp/kort/master/public/images/logo-64.png)\n\n[![Actions Status](https://github.com/carlsonp/kort/workflows/github-actions/badge.svg?branch=master)](https://github.com/carlsonp/kort/actions)\n[![Releases](https://img.shields.io/github/release/carlsonp/kort.svg)](https://github.com/carlsonp/kort/releases/latest)\n[![All Downloads](https://img.shields.io/github/downloads/carlsonp/kort/total.svg)](http://www.somsubhra.com/github-release-stats/?username=carlsonp&repository=kort)\n[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Known Vulnerabilities](https://snyk.io/test/github/carlsonp/kort/badge.svg)](https://snyk.io/test/github/carlsonp/kort)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/carlsonp/kort.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/carlsonp/kort/alerts/)\n[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/carlsonp/kort.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/carlsonp/kort/context:javascript)\n\n## Table of Contents\n\n[About](#About)  \n[Screenshots](#Screenshots)  \n[Installation and Setup](#Installation)  \n[After Install](#AfterInstall)  \n[Support / Improvement / Suggestions](#Support)  \n[License](#License)\n\n<a name=\"About\"/>\n\n## About\n\nA web application supporting multiple user experience (UX) research methods.\n\n* [Card Sorting](https://en.wikipedia.org/wiki/Card_sorting)\n* [Tree Testing](https://en.wikipedia.org/wiki/Tree_testing)\n* [Product Reaction Cards](https://en.wikipedia.org/wiki/Microsoft_Reaction_Card_Method_%28Desirability_Testing%29)\n* [System Usability Scale (SUS)](https://en.wikipedia.org/wiki/System_usability_scale)\n* [Net Promoter Score (NPS)](https://www.netpromoter.com/know/)\n\nSee the [website](https://carlsonp.github.io/kort/) for more information.\n\n<a name=\"Screenshots\"/>\n\n## Screenshots\n\n<img src=\"https://raw.githubusercontent.com/carlsonp/kort/master/docs/cs.png\" width=\"250\"/>\n<img src=\"https://raw.githubusercontent.com/carlsonp/kort/master/docs/tt.png\" width=\"250\"/>\n<img src=\"https://raw.githubusercontent.com/carlsonp/kort/master/docs/prc.png\" width=\"250\"/>\n<img src=\"https://raw.githubusercontent.com/carlsonp/kort/master/docs/sus.png\" width=\"250\"/>\n<img src=\"https://raw.githubusercontent.com/carlsonp/kort/master/docs/nps.png\" width=\"250\"/>\n\n<a name=\"Installation\"/>\n\n## Installation and Setup\n\n1. Use one of the following:\n\n    1. Use [Git](https://git-scm.com/) to clone the code (`git clone https://github.com/carlsonp/kort.git`)\n    2. [Download a release archive](https://github.com/carlsonp/kort/releases) from Github\n    3. Install from the published [npm package](https://www.npmjs.com/package/@carlsonp/kort) via `npm install @carlsonp/kort`\n\n2. Edit `app.js` and optionally set the `adminUser` and set your own username.\n\n3. Edit the `adminPassword` value in `app.js`.\n\n4. Optionally set `allowUserRegistration` in `app.js` to allow users to register.  Otherwise users can only be created by accounts with 'admin' access.\n\n5. Optionally setup Google authentication.  [See the wiki for details](https://github.com/carlsonp/kort/wiki/Setting-up-Google-Authentication).\n\n6. Continue installation [via source](#ViaSource) or\n[via Docker](#ViaDocker).\n\n<a name=\"ViaSource\"/>\n\n### Via Source\n\n1. Install [Node.js](https://nodejs.org)\n\n2. Install [MongoDB](https://www.mongodb.com/) (3.0 or higher) or provide a connection to an existing server\nby editing the `app.js` file and setting the `mongoURL`.  Kort uses the Mongoose package To optionally [secure your MongoDB with a username\nand password](https://stackoverflow.com/questions/4881208/how-to-secure-mongodb-with-username-and-password/19768877),\ncreate a user for the `kort` database by doing the following:\n\n    Open a Mongo commandline shell:\n\n    ```shell\n    mongo --port 27017\n    ```\n\n    Select the database:\n\n    ```mongo\n    use kort\n    ```\n\n    Create the new user:\n\n    ```mongo\n    db.createUser(\n       {\n         user: \"kort\",\n         pwd: \"123\",\n        roles: [ { role: \"readWrite\", db: \"kort\" } ]\n       }\n    )\n    ```\n\n    Then edit `/etc/mongodb.conf` and enable `auth=true`.  Restart the service.  Make sure to set\n    the `mongoURL` with the appropriate username and password.\n\n3. Run `npm install` on the commandline.  This will install the dependencies into the `node_modules` folder.\n\n4. Run `node app.js` from the main directory.  This will start the NodeJS server\non the default port 3000.\n\n<a name=\"ViaDocker\"/>\n\n### Via Docker\n\n1. [Install Docker](https://docs.docker.com/install/)\n\n2. [Install docker-compose](https://docs.docker.com/compose/install/)\n\n3. Build the containers\n\n    ```shel\n    docker-compose build\n    ```\n\n4. Start the containers (use -d to run in detached mode)\n\n    ```shell\n    docker-compose up\n    ```\n\n5. Stop the containers (when using detached mode)\n\n    ```shell\n    docker-compose down\n    ```\n\nData from MongoDB is persisted and mounted as a Docker volume in the `./data/` folder.\n\n<a name='AfterInstall'/>\n\n### After Install\n\n1. You can connect via [http://localhost:3000](http://localhost:3000)\n\n2. The `adminUser` and `adminPassword` that is set in `app.js` is the username and password for the account that will be created upon first launch.  Use this to login.\n\n<a name=\"Support\"/>\n\n## Support / Improvement / Suggestions\n\nOpen a [Github issue](https://github.com/carlsonp/kort/issues).\n\n<a name=\"License\"/>\n\n## License\n\nKort is licensed under the [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html).\n","readmeFilename":"README.md"}