{"id":15049550,"url":"https://github.com/mozilla/openbadges-discovery","last_synced_at":"2025-10-04T10:31:21.765Z","repository":{"id":12301996,"uuid":"14932876","full_name":"mozilla/openbadges-discovery","owner":"mozilla","description":"INACTIVE - http://mzl.la/ghe-archive - Discovery tool for Open Badges including Pathways and Directory","archived":true,"fork":false,"pushed_at":"2019-03-28T04:22:09.000Z","size":23008,"stargazers_count":24,"open_issues_count":0,"forks_count":12,"subscribers_count":56,"default_branch":"master","last_synced_at":"2024-10-29T09:58:33.968Z","etag":null,"topics":["inactive","unmaintained"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozilla.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":"2013-12-04T19:00:52.000Z","updated_at":"2024-10-11T12:15:26.000Z","dependencies_parsed_at":"2022-09-14T19:11:15.162Z","dependency_job_id":null,"html_url":"https://github.com/mozilla/openbadges-discovery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fopenbadges-discovery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fopenbadges-discovery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fopenbadges-discovery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fopenbadges-discovery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozilla","download_url":"https://codeload.github.com/mozilla/openbadges-discovery/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235238316,"owners_count":18958076,"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":["inactive","unmaintained"],"created_at":"2024-09-24T21:21:15.326Z","updated_at":"2025-10-04T10:31:16.690Z","avatar_url":"https://github.com/mozilla.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"discovery\n=========\n\nDiscovery tool for Open Badges\n\n## Quick Start\n\nWith mongo running locally...  \n\n```bash\nnpm install\necho '{  \n  \"url\": \"http://localhost:3000\",\n  \"cookie\": {\n    \"secret\": \"macadamianuts\"\n  },\n  \"database\": {\n    \"app\": \"mongodb://127.0.0.1:27017/app\",\n    \"test\": \"mongodb://127.0.0.1:27017/test\"\n  }\n}' \u003e config.json\nDEV=1 node app\n```\n\nThen navigate to http://localhost:3000.\n\nThis app can also be [deployed to Heroku](https://devcenter.heroku.com/articles/getting-started-with-nodejs#deploy-your-application-to-heroku).\n\n## Configuration\n\n### Parameters\n\nAvailable app parameters are:\n\n* COOKIE_SECRET: **required** Should be a large, unguessable string.\n* URL: **required** The url (protocol, host, port) where your app lives. This is used as the Persona audience, and must match what you see in your browser's url bar exactly.\n* DATABASE_APP: **required** Mongo url for your app database.\n* DATABASE_TEST: *optional* Mongo url for your test database, required if you want to run tests.\n* PORT: *optional* Port the server will run on. Defaults to 3000.\n* DEV: *optional* Run in development mode. Defaults to false.\n* NEWRELIC_KEY: *optional* Your newrelic license key, if you have one. Setting this turns on New Relic logging.\n* NEWRELIC_NAME: *optional* Your app name in New Relic.\n* NEWRELIC_LOG_LEVEL: *optional* The log level to use.\n\n### Alternatives\n\nConfiguration parameters can be provided via commandline arguments, a `config.json` file, or environment variables.\n\nFor example, ```node app --cookieSecret=macadamianuts``` or adding a `config.json` with the contents:\n\n```json\n{\n  \"cookie\": {\n    \"secret\": \"macadamianuts\"\n  }\n}\n```\n\nare equivalent to setting `COOKIE_SECRET` in the environment.\n\nSee [js-config-store](https://github.com/andrewhayward/js-config-store#config-store) for more information.\n\n## Developers\n\n### Data Setup\n\n`app/fake-data.js` is currently defunct. You can run `node app/google-data` to wipe the app database and load in initial\ndata from a Google spreadsheet as detailed below.\n\n#### Google spreadsheet data\n\nThe Google data reader makes many assumptions about the format of the spreadsheet. In general to load data this way:\n\n* set the following configuration:\n    * `GOOGLE_EMAIL`: the email address of an account with read access on the spreadsheet\n    * `GOOGLE_PASSWARD`: the password for the same account\n    * `GOOGLE_KEY`: the spreadsheet key, found in the url\n        * e.g. `https://docs.google.com/spreadsheet/ccc?key={THIS IS THE KEY}\u0026usp=drive_web#gid=0` \u003csup\u003e†\u003c/sup\u003e\n* build your spreadsheet as follows\n    * define your badges using as many sheets as you would like with the following column names\n        * `Badge name`: name\n        * `Description`: description\n        * `Tags`: comma-separated list of tags\n        * `Creator`: creator\n        * `Image file`: url of badge image\n        * `Criteria`: criteria as HTML\u003csup\u003e‡\u003c/sup\u003e\n        * `Keeping`: rows with a blank cell here will be skipped\n    * define your pathways, one sheet per pathway with the following column names\n        * `Name`: name\n        * `Description`: description\n        * `Image file`: url of pathway image\n        * `Tags`: comma-separated list of tags\n        * `Creator`: creator\n        * `Badge name`: name of badge to include in pathway\n        * `X`: x position on grid, starting at 0\n        * `Y`: y position on grid, starting at 0\n        * `Core`: any value here indicates this badge is core to this pathway\n        * `Note title`: title of note\n        * `Note body`: body of note\n    * on the first line, fill out `Name` through `Creator`\n    * for each badge in the pathway, fill out `Badge name` through `Core`\n    * for each note in the pathway, fill out `X`, `Y`, `Note title`, and `Note body`\n    * make sure all pathway sheets have the word \"pathway\" in the sheet name\n\n\u003csup\u003e†\u003c/sup\u003e This is an older style of Google spreadsheet url, YMMV on the newer updated style.\n\n\u003csup\u003e‡\u003c/sup\u003e This mimics retreiving the criteria url a badge would normally provide and parsing the content there to retrieve an HTML snippet for display.\n\n### Precommit Hooks\n\nAt the moment this project is using [precommit-hook](https://github.com/nlf/precommit-hook) to run `jshint` and tests\nbefore commits. Feel free to propose changes to the jshint configuration; it is by no means final.\n\nIt also runs `bin/beautify --warn` which will report files that don't live up to formatting conventions, but currently\n*will not fail the validation step.* Run `bin/beautify -h` for a help statement.\n\n### Development Mode\n\nDevelopment mode can be enabled to rebuild CSS, recompile templates and rebuild the clientside JS, unminified, on each\nrequest. \n\nThis should **NOT** be turned on for production.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fopenbadges-discovery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozilla%2Fopenbadges-discovery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fopenbadges-discovery/lists"}