{"id":48788500,"url":"https://github.com/tmtek/bulletinboard","last_synced_at":"2026-04-13T18:29:46.246Z","repository":{"id":57166872,"uuid":"154728004","full_name":"tmtek/bulletinboard","owner":"tmtek","description":"An application for Google Home built using convo where families have a shared board of notes and notifications.","archived":false,"fork":false,"pushed_at":"2018-11-06T01:59:17.000Z","size":27,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-08T23:22:56.258Z","etag":null,"topics":["convo","dialogflow","google-assistant","google-home"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tmtek.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-25T19:45:03.000Z","updated_at":"2018-11-06T01:59:19.000Z","dependencies_parsed_at":"2022-08-30T15:21:43.669Z","dependency_job_id":null,"html_url":"https://github.com/tmtek/bulletinboard","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/tmtek/bulletinboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmtek%2Fbulletinboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmtek%2Fbulletinboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmtek%2Fbulletinboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmtek%2Fbulletinboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmtek","download_url":"https://codeload.github.com/tmtek/bulletinboard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmtek%2Fbulletinboard/sbom","scorecard":{"id":890223,"data":{"date":"2025-08-11","repo":{"name":"github.com/tmtek/bulletinboard","commit":"b1cf2ff046934ce9bd81b04175fa5c4c228bdc19"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.1,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/11 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T11:31:41.426Z","repository_id":57166872,"created_at":"2025-08-24T11:31:41.426Z","updated_at":"2025-08-24T11:31:41.426Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31766112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["convo","dialogflow","google-assistant","google-home"],"created_at":"2026-04-13T18:29:45.521Z","updated_at":"2026-04-13T18:29:46.239Z","avatar_url":"https://github.com/tmtek.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bulletin Board\n\nBulletin Board is a Google Home application built using convo. This app allows familes to have a shred board where they can post notes and notifications for each other.\n\n## Commands\n\n\u003e \"Talk to Bulletin Board\"\n\nThis is the standard entry point into the application. It will read the first page of 5 notes, and then offer you the opportunity to speak another command. \n\n\u003e \"what's on the board?\"\n \n This command will cause the application to read all of the notes on the board, and then exit. If you want to hook Buletin Board up to your daily routines, this is the command to use to do so.\n\n\u003e \"Add bulletin\" or \"Add this is an important note everyone should be aware of.\"\n \n This command allows you to add new notes to the board. If you say \"add\" and then continue to speak, the application will take the rest of your statement and add it as the note. If you just say \"Add\", it will then prompt you for a message.\n\n\u003e \"Wipe the board\"\n\nClears the entire board of all notes.\n\n\n## List commands and selecting notes\n\nWhen you are confronted by a list of notes prsented to you in pages, you may use any of the list commands to keep digging into the data:\n\n\u003e \"next page\" or \"more\"\n\nThis will read the next page of 5 notes.\n\n\u003e \"3 more\"\n\nUse this command to go to the next page, but specify how large you want the page to be.\n\n\u003e \"previous page\"\n\nThis will read the previous page of 5 notes. \n\n\u003e \"select the first one\" of \"pick the third one\"\n \nSelects the first note in the current page you have been presented.\n\n\u003e \"next\"\n\nSelects the next items in the list.\n\n\u003e \"Previous\"\n\nSelects the previous item in the list.\n\n\u003e \"Select the one that contains {query}\"\n\nYou can use this command to select things by their contents.\n\n## Commands for selected notes\n\nWhen a note is selected, it will be read to you in detail. Aside for list navigation commands, you may also issue the following commands:\n\n\u003e \"Delete it\" or \"Wipe it\"\n\nDeletes the current selected note from the list.\n\n## Note Expiry\n\nWhen you add a new note to the board, Bulletin Board will attempt to extract an expiry time from message itself. When a note expires, it is automatically removed from the board. For example, if you were to say:\n\n\u003e \" add get milk today.\"\n\nThen Bulletin Board will mark this note to expire once the clock passes 11:59 PM this evening.\n\nIf you were to say:\n\n\u003e \"add Meet John for coffee on Thursday.\"\n\nBulletin Board will expire the note at the end of day on the next Thursday that passes. If today is Thursday it will expire tonight, If today is Monday it will expire three days from now, If Today is Friday it will expire 6 days from now.\n\nIf an expiry cannot be deduced from the message, then the note does not expire. It will have to be removed manually.\n\n## Help\n\nBulletin Board implements a help system:\n\n\u003e \"I need some help.\"\n\nWill launch the help system which will explain all features available in the application. The Help system's list navigation works using the exact same list navigation as the Bulletin Board. Select items, and return to them main list in exactly the same way.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmtek%2Fbulletinboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmtek%2Fbulletinboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmtek%2Fbulletinboard/lists"}