{"id":22208280,"url":"https://github.com/steenhansen/type-czech-phone-recipes","last_synced_at":"2026-04-09T08:02:39.988Z","repository":{"id":41494263,"uuid":"489510079","full_name":"steenhansen/type-czech-phone-recipes","owner":"steenhansen","description":"Online recipe book written in functional JavaScript","archived":false,"fork":false,"pushed_at":"2024-10-09T00:18:10.000Z","size":6206,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-30T04:42:37.505Z","etag":null,"topics":["mongodb","oauth2","react-hooks","redux","selenium","ssr","storybook","tailwindcss","vite-plugin-ssr"],"latest_commit_sha":null,"homepage":"https://phone-recipes.herokuapp.com/","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/steenhansen.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-06T22:35:05.000Z","updated_at":"2024-10-09T00:18:14.000Z","dependencies_parsed_at":"2024-12-02T19:17:30.623Z","dependency_job_id":"b2fb9bee-bbb0-4812-a797-738694fce2ef","html_url":"https://github.com/steenhansen/type-czech-phone-recipes","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/steenhansen%2Ftype-czech-phone-recipes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steenhansen%2Ftype-czech-phone-recipes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steenhansen%2Ftype-czech-phone-recipes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steenhansen%2Ftype-czech-phone-recipes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/steenhansen","download_url":"https://codeload.github.com/steenhansen/type-czech-phone-recipes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245401372,"owners_count":20609163,"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":["mongodb","oauth2","react-hooks","redux","selenium","ssr","storybook","tailwindcss","vite-plugin-ssr"],"created_at":"2024-12-02T19:17:20.651Z","updated_at":"2026-04-09T08:02:39.983Z","avatar_url":"https://github.com/steenhansen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"fast-start\"\u003e\u003c/a\u003e\n\u003ca name=\"s\"\u003e\u003c/a\u003e\n\n## Web \u0026 Mobile Recipes App\n\n\u003cimg src=\"pages/images/tall-phone-web.gif\" width=\"400\"\u003e\n\nPhone-Recipes, [https://phone-recipes.herokuapp.com/](https://phone-recipes.herokuapp.com/), exists to help prepare\nmultiple dishes for a meal using a phone in the kitchen. A list of my online recipes; [https://phone-recipes.herokuapp.com/steenhansen1942/gmail.com](https://phone-recipes.herokuapp.com/steenhansen1942/gmail.com).\nPhone-recipes shows mulitple dishes along with timers. Log in with a\nGoogle Account. The React components are [online with Storybook](https://www.chromatic.com/library?appId=6269af43d179dc004af9a1ec\u0026inviteToken=5fd55d68b13f4f51bc57632bcad949ba). Below are screen shots of of my\n\u003ca href='https://phone-recipes.herokuapp.com/steenhansen1942/gmail.com/Pork%20Roast/steenhansen1942/gmail.com/Rice'\u003ePork Roast with rice\u003c/a\u003e recipes.\n\n![User to kitchen](pages/images/readme-arrow.png)\n\n\n## Selenium Test Run\n\n\u003cimg src=\"https://file.garden/aFRi5x2D4TDUTvOr/selenium.webp\" width=\"400\"\u003e\n\nRescources\n\n- [vite-plugin-ssr](https://vite-plugin-ssr.com/) for Server-Side-Rending and Hot-Module-Replacement\n\n- [Passport](https://www.passportjs.org/) OAuth 2.0 authentication via Google\n\n- [React Hooks](https://reactjs.org/docs/hooks-intro.html)\n- [Storybook](https://storybook.js.org/) for React component building\n\n- [Selenuim](https://www.selenium.dev/) UI testing\n\n- [Mongoose](https://mongoosejs.com/) for MongoDB objects\n\n- [Tailwind](https://tailwindcss.com/) CSS\n\n- [Icons](https://flaticon.com/) from flaticon.com\n\n- [Type-Czech](https://github.com/steenhansen/type-czech) run time checking in development\n\nRuns On\n\n- [Heroku](https://www.heroku.com/)\n- Locally along with a MongoDB [Compass](https://www.mongodb.com/products/compass) installation\n\nCredentials Needed (examples in /sample-configs/)\n\n- Local or [MongoDB Atlas](https://www.mongodb.com/cloud/atlas/lp/try2) MongoDB URI\n- Google [OAuth 2.0](https://developers.google.com/identity/protocols/oauth2/openid-connect#appsetup) credentials\n\nPrepare Node Environment, Sqlite3 issue on Windows issue if try Node 18\n\n- nvm install 16.16.0\n\n- nvm use 16.16.0\n\n- npm install\n\nRun on Heroku\n\n    npm run start, no Proc file needed\n\nTest Heroku environment locally with Atlas DB, local MongoDB Compass must be connected also for some reason\n\n    npm run prod ../heroku-config.js\n\nLocal Dev Run\n\n    npm run dev ../dev-config.js\n\nLocal Prod Run\n\n    npm run prod ../prod-config.js\n\n\u003ca id=\"test-section\"\u003e\u003c/a\u003e\n\n### **8 Selenium** Tests\n\n- Close all FireFox windows, tests use a lot of resources. If fail try again.\n  If still fail check hard drive free space. Possibly reboot after empty trash.\n\n- terminal 1:\n\n       npm run dev /test-selenium/selenium-config.js\n\n- terminal 2:\n\n       cd test-selenium\n       node all-selenium-tests\n\n- NB, close Firefox windows after every test as gigabytes of hard\n  drive space are used\n\n### **8 Vitest** JSX tests\n\n    npx vitest /test-jsx-browser\n\n### **12 Mocha** Node.js tests\n\n    npm run test-node\n\n\u003ca id=\"show-storybook\"\u003e\u003c/a\u003e\n\nStorybook Local\n\n    npm run show-storybook\n\nUpload Storybook to Chromatic.com\n\n    npm run upload-storybook -- --project-token=your-abc123xyz-token\n\nView phone-recipes online storybook on Chromatic.com\n\n    https://www.chromatic.com/library?appId=6269af43d179dc004af9a1ec\u0026inviteToken=5fd55d68b13f4f51bc57632bcad949ba\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteenhansen%2Ftype-czech-phone-recipes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteenhansen%2Ftype-czech-phone-recipes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteenhansen%2Ftype-czech-phone-recipes/lists"}