{"id":13341653,"url":"https://github.com/ebabel-eu/voice-book-search","last_synced_at":"2025-03-29T10:44:34.917Z","repository":{"id":46935938,"uuid":"190250094","full_name":"ebabel-eu/voice-book-search","owner":"ebabel-eu","description":"Search for books with a voice activated input","archived":false,"fork":false,"pushed_at":"2023-01-03T23:24:31.000Z","size":1115,"stargazers_count":0,"open_issues_count":12,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-04T09:33:41.138Z","etag":null,"topics":["amp-html","voice-as-an-interface","web-components"],"latest_commit_sha":null,"homepage":"https://voice-book-search.firebaseapp.com","language":"HTML","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/ebabel-eu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2019-06-04T17:37:35.000Z","updated_at":"2019-06-05T18:17:46.000Z","dependencies_parsed_at":"2023-02-01T13:31:14.967Z","dependency_job_id":null,"html_url":"https://github.com/ebabel-eu/voice-book-search","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebabel-eu%2Fvoice-book-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebabel-eu%2Fvoice-book-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebabel-eu%2Fvoice-book-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebabel-eu%2Fvoice-book-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebabel-eu","download_url":"https://codeload.github.com/ebabel-eu/voice-book-search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246174471,"owners_count":20735411,"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":["amp-html","voice-as-an-interface","web-components"],"created_at":"2024-07-29T19:25:39.607Z","updated_at":"2025-03-29T10:44:34.897Z","avatar_url":"https://github.com/ebabel-eu.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# voice-book-search\nSearch for books with a voice activated input\n\n## Development\n\n### Pre-install\nYour local environment relies on [Node.js](https://nodejs.org), and [Firebase](https://firebase.google.com/) (you may need to `sudo` on your machine):\n\n```\nnpm install -g firebase-tools\n```\n\nOnce installed, you may need to login if it's not already done:\n\n```\nfirebase login\n```\n\nIf you are in a cloud virtual machine, you might need to run a different login command, and when on another device you have authenticated, paste back into virtual machine the authorozation token:\n\n```\nfirebase login --no-localhost\n```\n\n### Install\nTo install development environment dependencies:\n\n```\nnpm install\n```\n\n### Build\nThe CSS can be minified after `npm install` has been run:\n\n```\nnpm run build\n```\n\n## Deployment\n\n### Deploy only hosting\n```\nfirebase deploy --only hosting\n```\n\n## Technical stack\nThis stack is using web native technologies for both desktop and mobile devices:\n- AMP-HTML\n- Service Workers\n- Web Components\n\n## Validate AMP\nTo check if AMP-HTML is valid, append `#development=1` to the url and check the console.\n\nhttps://voice-book-search.firebaseapp.com/#development=1\n\n## Learning resources\nThe following pages have been useful in learning how to write the code in this repository:\n\n### AMP-HTML\n- [AMP Boilerplate](https://amp.dev/boilerplate/)\n- [AMP Validation](https://amp.dev/documentation/guides-and-tutorials/learn/validation-workflow/validate_amp)\n- [AMP URL and Code Validator](https://search.google.com/test/amp)\n- [AMP Guides](https://amp.dev/documentation/guides-and-tutorials/start/create/basic_markup?format=websites)\n- [AMP YouTube channel](https://www.youtube.com/watch?v=OO9oKhs80aI\u0026list=PLXTOW_XMsIDQf5mXiTT6MhdYluziN7dwP\u0026index=4)\n- [Create a custom AMP component](https://codelabs.developers.google.com/codelabs/creating-your-first-amp-component/index.html?index=..%2F..index#1)\n\n### Web Speech\n- [Webspeech Demo](https://github.com/googlearchive/webplatform-samples/tree/master/webspeechdemo)\n\n## todo\n\n### Blockers\n- Search with voice (or plain text in input).\n- Web components (in Typescript).\n- Infinite carousel (no third party dependency, native only).\n- Stop scrolling on blur of page. See event `slideChange` triggered when slide changes. I could check if the page is in focus and allow the slide change, or return false and block the slide change if the page is on blur.\n- Display book covers (-S, -M, or -L) depending on size of viewport.\n- Load images lazily as the carousel scrolls with a small buffer of a few images.\n- Relative time of a moment when the last search query was performed should be updatedautomatically. Display the relative time in a user's preferred language (navigator.language).\n\n### Mediun priorities\n- Design\n\n### Low priorities\n- Improve build script, automatically paste custom css into html.\n- Minify the html from src to public.\n- Improve the microphone images (maybe svg).\n- Translate interface based on navigator.language\n- Offer to switch UI language with a menu.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febabel-eu%2Fvoice-book-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febabel-eu%2Fvoice-book-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febabel-eu%2Fvoice-book-search/lists"}